假设我有以下课程:
public class FixExpr {
Expr<FixExpr> in;
}
Run Code Online (Sandbox Code Playgroud)
现在我想介绍一个泛型参数,抽象使用Expr:
public class Fix<F> {
F<Fix<F>> in;
}
Run Code Online (Sandbox Code Playgroud)
但Eclipse并不喜欢这样:
F型不是通用的; 它不能用参数<Fix <F >>进行参数化
这是可能的还是我忽略了导致这个特定实例破坏的东西?
一些背景信息:在Haskell中,这是编写泛型函数的常用方法; 我正在尝试将其移植到Java.上例中的类型参数F具有类型* - >*而不是通常的类型*.在Haskell中它看起来像这样:
newtype Fix f = In { out :: f (Fix f) }
Run Code Online (Sandbox Code Playgroud)