インタフェース:交差点の種類を使用する想定元本クラスは、アクセスの変更を必要とする場合、交差点の種類を使用することができませんでし
interface PublicCloneable {
Object clone();
}
interface HasPosition {
// doesn't matter
}
が試み:javac 1.8.0_60
でコンパイルする
@SuppressWarnings("unchecked")
<E extends PublicCloneable & HasPosition> E cloneAndIncrementPosition(E elem) {
final E clone = (E)elem.clone();
// rest omitted
}
試み:
$ javac xx.java
xx.java:13: error: clone() in Object cannot implement clone() in PublicCloneable
<E extends PublicCloneable & HasPosition> E cloneAndIncrementPosition(E elem) {
^
attempting to assign weaker access privileges; was public
xx.java:14: error: clone() has protected access in Object
final E clone = (E)elem.clone();
^
2 errors
なぜこの交差型はjavacでは無効ですか?
興味深いことに、 'E'から上限の' HasPosition'を削除すると、これがコンパイルされます。 – rgettman
これはEclipseでコンパイルされます... –