在Java中,我可以指定任意数量的泛型类型参数吗?

Sam*_*ery 9 java generics

我希望用Java创建一个特定类型的接口(虽然这适用于常规类).这个接口需要包含一些方法,比如说invoke; 它将使用不同数量的参数调用,具体取决于提供的泛型类型参数.

举个例子:

public interface Foo<T...> {
    public void invoke(T... args);
}

// In some other class
public static Foo<Float, String, Integer> bar = new Foo<Float, String, Integer>() {
    @Override
    public void invoke(Float arg1, String arg2, Integer arg3) {
        // Do whatever
    }
};
Run Code Online (Sandbox Code Playgroud)

为了简要解释如何使用它(并提供一些上下文),请考虑一个类Delegator:该类采用不同数量的泛型类型,并且具有单个方法 - invoke使用这些参数类型.该方法将其参数传递给列表中的对象:一个实例IDelegate,它采用相同的泛型类型.这允许Delegator在几个委托方法(在内部定义IDelegate)之间进行选择,而不必为每个特定的参数类型列表创建新类.

有这样的可用吗?我已经阅读了C++中的可变参数模板,但在Java中找不到类似的东西.有这样的东西吗?如果不是,那么模拟相同数据模型的最简洁方法是什么?

Puc*_*uce 5

有这样的东西吗?我已经阅读了 C++ 中的可变参数模板,但在 Java 中找不到任何类似的内容。有没有这样的东西?

不,此功能在 Java 中不可用。