是否可以像 java 中的 varargs 一样将许多参数传递给泛型? 我的意思是,我想要一个带有很多参数的泛型,而不是这种模式:
//A generic class for sample
@AllArgsConstructor
@NoArgsConstructor
@Setter
@Getter
public class RequestInfo<T,D> {
private T param1;
private D param2;
}
最佳答案
这里:
public class RequestInfo<T,D> {
private T param1;
private D param2;
使用通用类型的要点是……在您的代码中使用它们。因此,没有真正需要(或感觉)具有未知 数量的类型参数)。您知道每个类型参数,因为您打算在类中的某个地方使用它。
即使您生成代码,该生成器也会知道在生成该 java 类之前需要多少(不同)类型。
另一方面,可变参数数组在运行时使用。您可以编写一个遍历该数组的循环,无论该数组是否具有 0、1 或 500 个条目。
含义:可变参数是 A) 语法糖和 B) 主要是“运行时”的东西。泛型几乎与此相反。泛型添加类型 信息,供编译器使用,而且大部分在运行时删除。
关于java - 将无穷大参数作为输入传递给泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58434950/