Aar*_*ang 10 java generics syntax variadic-functions
我想做点什么
public interface Foo<R, P...> {
public R bar(P...) {/*misc*/}
}
Run Code Online (Sandbox Code Playgroud)
获取要在绑定实现中使用的类型数组.这在Java中可行吗?
Varargs旨在让我拥有给定类的任意数量的参数.
我想使用它(或类似的东西)让我的方法接受几个参数,每个参数都是给定不同类的成员.绑定泛型时定义这些类.
我知道有解决方法,但有一种类型安全的方法吗?
既然你显然希望能够bar采用不同类型的多个参数(不使用varargs ),我建议改为使用单个参数.然后,您可以将该单个参数设置为容纳您要使用的每个"参数"的容器.
通常,最好为要使用此方法的每组参数创建一个类,以便为其包含的每个对象创建良好的名称.但是,您也可以执行诸如创建一系列元组类型(例如Pair)以用作持有者之类的操作.
这是一个例子:
public class Foo<R, P> {
/*
* Not sure how you intend to provide any kind of implementation
* here since you don't know what R or P are.
*/
public R bar(P parameters) { ... }
}
public class SomeFoo extends Foo<SomeResult, Pair<Baz, Bar>> {
public SomeResult bar(Pair<Baz, Bar> parameters) { ... }
}
SomeFoo foo = ...
SomeResult result = foo.bar(Pair.of(baz, bar));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17832 次 |
| 最近记录: |