Supongamos que tengo la clase siguiente:genéricos de mayor kinded en Java
public class FixExpr {
Expr<FixExpr> in;
}
Ahora quiero introducir un argumento genérico, haciendo abstracción sobre el uso de Expr:
public class Fix<F> {
F<Fix<F>> in;
}
Pero Eclipse doesn' t gusta esto:
El tipo F no es genérico; no puede ser parametrizada con argumentos < Fijar <F> >
Es esto posible en absoluto o que han pasado por alto algo que causa esta instancia específica para romper?
Información básica: en Haskell esta es una forma común de escribir funciones genéricas; Estoy intentando portar esto a Java. El argumento de tipo F en el ejemplo anterior tiene kind * -> * en lugar del tipo habitual *. En Haskell se ve así:
newtype Fix f = In { out :: f (Fix f) }
¿Cuál es el problema real que está tratando de resolver con esto? ¿No podría resolverse más fácilmente usando una plantilla? – KitsuneYMG