इंटरफेस की आवश्यकता है एक चौराहे प्रकार का उपयोग करने में असमर्थ: 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
चौराहे प्रकार का उपयोग करने
interface PublicCloneable {
Object clone();
}
interface HasPosition {
// doesn't matter
}
प्रयास Javac के लिए यह चौराहे प्रकार क्यों अमान्य है?
दिलचस्प बात यह है कि यदि आप 'ई' से ऊपरी सीमा 'हैसपॉजिशन' को हटाते हैं, तो यह संकलित करता है। – rgettman
यह ग्रहण पर संकलित करता है ... –