Der Compilerfehler wird in der Kommentarzeile im Codeblock unten angezeigt.
Es sieht so aus, als ob der Compiler den Typ der „o“-Eingabe in das Lambda nicht bestimmen kann. Und wenn ich o in die MyObj-Klasse umwandele, lässt sie sich einwandfrei kompilieren.
Mir ist klar, dass dies eine etwas komplizierte Situation ist (wir brauchen diese Komplexität allerdings wirklich). Und es sollte hier wirklich genügend Typinformationen geben, damit der Compiler den Typ bestimmen kann (und der integrierte Compiler in Eclipse tut dies).
Mache ich etwas falsch mit den generischen Deklarationen?
JDK ist 21.0.5
Code: Select all
public class AnotherTestClass {
public static class MyObj{
private final String arg1;
public MyObj(String arg1) {
this.arg1 = arg1;
}
public String getArg1() { return arg1; }
}
public static class MyFunctionHolder{
Function f;
public MyFunctionHolder(Function f) {
this.f = f;
}
}
public static MyFunctionHolder forCollectionOfType(Class
Mobile version