是否有可能将许多参数传递给Java中的varargs这样的泛型?我的意思是,我想有一个采用许多参数的泛型而不是这种模式:
//A generic class for sample
@AllArgsConstructor
@NoArgsConstructor
@Setter
@Getter
public class RequestInfo<T,D> {
private T param1;
private D param2;
}
Run Code Online (Sandbox Code Playgroud)
这里:
public class RequestInfo<T,D> {
private T param1;
private D param2;
Run Code Online (Sandbox Code Playgroud)
使用泛型类型的重点是在代码中使用它们。因此,没有真正的需要(或意义)具有未知数量的类型参数。您知道每个类型参数,因为您打算在类中更远的地方使用它。
即使生成代码,该生成器也将在生成该Java类之前知道需要多少(不同)类型。
另一方面,在运行时使用 vararg数组。您可以编写一个遍历该数组的循环,无论该数组有0、1还是500个条目。
含义:varargs是A)语法糖,B)主要是“运行时”的东西。泛型几乎与此相反。泛型添加了类型信息,供编译器使用,并且很好,大部分在运行时删除。