public interface Expression {
}
public interface ArithmeticExpression extends Expression {
}
public class StaticMethodDemo {
public static void print(Expression e) {
System.out.println("StaticMethodDemo");
}
public static List<Expression> convert(
Collection<? extends Expression> input) {
return null;
}
}
public class StaticMethodChild extends StaticMethodDemo {
public static void print(ArithmeticExpression e) {
System.out.println("StaticMethodChild");
}
public static List<ArithmeticExpression> convert(
Collection<? extends ArithmeticExpression> input) {
return null;
}
}
上面的代碼在java 5中編譯但不在java 7中爲什麼?在Java 7中,它給出了「Name衝突:類型StaticMethodChild的方法convert(Collection)與類型爲StaticMethodDemo的convert(Collection)具有相同的擦除但不隱藏它」名稱在java 7中編譯時發生衝突編譯錯誤,但在java中運行正常5
謝謝你的解釋。目前我正在開發一個項目,在這個項目中,我們正在遷移到Java 7,並且大量的類都有這個問題。除此之外,我還面臨着具有vargs的方法的問題。 – Dragon
您應該重新初始化所有這些類,因爲這是錯誤的來源。 –