Ich versuche, Generika in Java zu verstehen, und dieses einfache Beispiel versuchen, aber es kann nicht funktionieren; es kommt mit Fehler zurückJava-Generics, Methode base() ist nicht definiert für den Typ T
Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method base() is undefined for the type T at javaTest.Main.testShape(Main.java:21) at javaTest.Main.main(Main.java:25)
Unten ist der Code
class Shape{
int id=1;
void base(){
System.out.println("Shape.base()");
}
}
// unrelated class, but same func name
class OtherShape{
float id=1.1f;
void base(){
System.out.println("OtherShape.base()");
}
}
public class Main {
static <T>void testShape(T shape){
shape.base();
}
public static void main(String[] args) {
testShape(new Shape());
testShape(new OtherShape());
}
}
eine Idee, wie ich es Arbeit machen?
@Dijkgraaf: der ersten Zeile in gleichem Code oben: Exception in thread "main" java.lang.Error: Ungelöste compilation Problem: Verfahren base() ist nicht definiert für den Typ T bei javaTest.Main.testShape (Main.java:21) bei javaTest.Main.main (Main.java:25) – user57754