nehme ich die folgende Klasse habe:Higher-kinded Generika in Java
public class FixExpr {
Expr<FixExpr> in;
}
Jetzt mag ich ein generisches Argument einzuführen, die Verwendung von Expr abstrahiert über:
public class Fix<F> {
F<Fix<F>> in;
}
Aber Eclipse-doesn‘ t wie folgt:
Der Typ F ist nicht generisch; es kann nicht < Fix <F> >
Ist das überhaupt oder habe ich etwas übersehen, dass diese bestimmte Instanz verursacht zu brechen parametrisiert mit Argumenten?
Einige Hintergrundinformationen: in Haskell ist dies eine allgemeine Möglichkeit, allgemeine Funktionen zu schreiben; Ich versuche, dies auf Java zu portieren. Das Typargument F im obigen Beispiel hat die Art * -> * anstelle der üblichen Art *. In Haskell sieht es dies wie:
newtype Fix f = In { out :: f (Fix f) }
Was ist das eigentliche Problem, das Sie versuchen, damit zu lösen? Kann es nicht einfacher mit einer Vorlage gelöst werden? – KitsuneYMG