use*_*837 5 java generics functor
我想要像这样的仿函数类:
public class Functor<T, R> {
public R invoke(T a) { ... }
}
Run Code Online (Sandbox Code Playgroud)
另外两个论点是:
public class Functor<T1, T2, R> {
public R invoke(T1 a, T2 b) { ... }
}
Run Code Online (Sandbox Code Playgroud)
等等.
在C#我可以写:
class Functor<T> { ... }
class Functor<T1, T2> { ... }
Run Code Online (Sandbox Code Playgroud)
但在Java中,这将是一个错误:
The type Functor is already defined
Run Code Online (Sandbox Code Playgroud)
java中多参数泛型类的最佳实践是什么?
因为泛型是在Java中通过擦除类型的信息来实现(在class C<T>,T消失在编译的.class文件)没有办法让编译器知道你在运行时谈论什么课.
如果您定义F<T1>并F<T1,T2>加载它们,某些类C无法识别它想要使用的那个类.
这是很长的路要走,我认为你不能用Java做到这一点.:\
你可能想要做的只是有一个参数functor F<T>,让它T成为对象,一个Pair<T1, T2>对象,ThreeTuple<T1, T2, T3>等等.Scala这样做.
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |