我希望用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中找不到类似的东西.有这样的东西吗?如果不是,那么模拟相同数据模型的最简洁方法是什么?