2015-11-16 13 views
5

है मेरे पास जेएलएस 3 संस्करण, और अनुमान तंत्र के बारे में कोई प्रश्न है। यह खंड 15.12.2.7 में कहा गया है कि:जावा अनुमान: एक ऊपरी बाउंड के साथ प्रकार परिवर्तक जो एक सरणी प्रकार

एफ = यू [], जहां प्रकार यू टी जे शामिल है, तो अगर एक एक सरणी प्रकार वी [], या एक ऊपरी के साथ एक प्रकार चर बाध्य है कि एक सरणी प्रकार वी []

मैं एक सरणी प्रकार ऊपरी सीमा के साथ एक प्रकार चर बनाने की कोशिश की है, लेकिन इस संकलक द्वारा स्वीकार किया जाना प्रतीत नहीं होता है। कुछ ऐसा:

public class MyClass<T extends String []> { 
} 

मेरा प्रश्न है: क्या इस खंड में जेएलएस गलत है, या क्या मुझे कुछ याद आया? वाक्य का अंतिम भाग मेरे लिए असंतुष्ट लगता है।

धन्यवाद

+0

के लिए biziclop यदि कुछ गलत है यह संकलक, नहीं JLS होगा। – resueman

+0

तीसरा संस्करण? कृपया उस उद्धरण के लिए एक लिंक प्रदान करें। –

+0

जेएलएस कम से कम विरोधाभासी है, जैसा कि धारा 4.4 में है, यह कहा गया है कि: प्रकार चर के वैकल्पिक बाध्य, टी और 1 1 है ... मैं एन। बाध्य में या तो एक प्रकार चर, या एक वर्ग या इंटरफेस प्रकार टी –

उत्तर

2

निम्नलिखित बग में विवरण से:

https://bugs.openjdk.java.net/browse/JDK-6557960

JLS, थोड़ा बेतुका है, क्योंकि यह धारा 4.4 में कहा गया है:

प्रकार चर एक है वैकल्पिक बाध्य, टी & मैं 1 ... मैं एन। बाध्य या तो एक प्रकार चर, या एक वर्ग या इंटरफ़ेस प्रकार टी के होते हैं

प्रकार चर एक बाध्य नहीं कर सकते हैं कि एक सरणी प्रकार है, जो विरोधाभासी है साथ हिस्सा मेरे सवाल में ऊपर उल्लेख किया है (से खंड 15.12.2.7):

या एक ऊपरी बाध्य के साथ एक प्रकार चर है कि के रूप में यह संतुष्टि योग्य कभी नहीं होगा एक सरणी प्रकार वी []

यह हिस्सा बस अनदेखा किया जा सकता है।

बहुत धन्यवाद लिंक

+0

अगर मैं गलत नहीं हूं तो सरणी प्रकार ऊपरी सीमाओं का संदर्भ नवीनतम जेएलएस से भी हटा दिया गया है। – biziclop

संबंधित मुद्दे