मैं एक आंतरिक कक्षा को लागू करने की कोशिश कर रहा हूं जिसमें सामान्य पैरामीटरयुक्त प्रकार है।मैं एक आंतरिक वर्ग में पैरामीरेटेड जेनेरिक प्रकारों का उपयोग कैसे करूं?
public class AVLTree<T extends Comparable<? super T>> implements Iterable<T> {
...
private class BinaryNode<T extends Comparable<? super T>> {
...
}
private class TreePreOrderIterator<E extends Comparable<? super E>> implements Iterator<E> {
...
}
}
यह काम नहीं करता है:
यहाँ मेरी कोड का एक लघु संस्करण है। ग्रहण/जावा मुझे चेतावनी दे रहा है कि आंतरिक वर्ग पर T
पैरामीटर सुपर क्लास के पैरामीटर को 'छुपा' है। इस पर कोई विचार कैसे मैं इसे ठीक कर सकता हूं?
संपादित करें: मैंने अन्य आंतरिक वर्ग को जोड़ा है जिसमें मुझे समस्याएं हैं: TreePreOrderIterator
। सामान्य प्रकार T
AVLTree
, BinaryNode
, और TreePreOrderIterator
के लिए समान होगा। आंतरिक कक्षाओं को AVLTree में फ़ील्ड तक पहुंचने की आवश्यकता है।
EDIT2: इसके अलावा, Iterator
BinaryNode<T>
तक पहुंचता है, जो एक संघर्ष है।
(नोट:। यह मैं एक वर्ग के लिए कर रहा हूँ बड़ा परियोजना का हिस्सा है किसी भी अन्य जानकारी की जरूरत है, के लिए कहें।)
क्या आप अपना प्रश्न संपादित कर सकते हैं कि सामान्य प्रकार के बाइनरी नोड का उपयोग कैसे किया जाता है? उदाहरण के लिए, AVLTree के समान प्रकार के पैरामीटर द्वारा बाइनरीनोड पैरामीटर किया गया है? – Carl
बस संपादित किया गया। क्या इससे आपके सवाल का जवाब मिलता है? –