将无穷参数作为通用输入

soh*_*ari 2 java generics

是否有可能将许多参数传递给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)

Gho*_*ica 6

这里:

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)主要是“运行时”的东西。泛型几乎与此相反。泛型添加了类型信息,供编译器使用,并且很好,大部分在运行时删除