0
所以我就在這裏驗證碼:想知道爲什麼下面的兩個例子給出了一個運行時錯誤和編譯錯誤之所以出現這種代碼有一個運行時錯誤VS編譯錯誤
public abstract class Person<Mate> {
public String name;
public abstract Person<?> mate(Mate m);
public static class Male extends Person<Person<?>.Female> {
public Person<?> mate(Person<?>.Female m) {
return null;
}
}
public class Female extends Person<Male> {
public Person<?> mate(Male m) {
return null;
}
}
}
誰能告訴我爲什麼這個代碼的例子給出了運行時錯誤
Person p = new Male();
p.mate(p);
而這一個給出了一個編譯錯誤
Person p<Female> = new Male();
p.mate(p); // Argument is of incorrect type.
請將**完整**編譯錯誤消息/運行時錯誤消息+堆棧跟蹤添加到您的問題中。 –