2013-11-27 5 views
5

निम्न कोड में, मुझे अंतिम पंक्ति पर कंपाइलर से एक त्रुटि मिलती है जो कहती है: 'प्रकार सूची अस्पष्ट है' (उस रेखा पर जो cgxHist सूची को परिभाषित करने का प्रयास करती है)। मैं क्या गलत कर रहा हूं?जावा में 'अस्पष्ट प्रकार' त्रुटि क्या है?

import java.awt.*; 
import javax.swing.*; 
import java.util.*; 

public class drawr extends JPanel{ 

    public static int animationSpeed=470; 
    public static int diameter = 50; 
    hBod allHBods[]; 
    List<String> cgxHist = new ArrayList<String>(); 

मैं वास्तव में सूची पूर्णांकों शामिल करना चाहता था, लेकिन जब मैं <int> साथ <String> की जगह करने के लिए इस तरह के रूप सूची 'डाली', कोशिश, कि लाइन पर त्रुटि टोकन "पूर्णांक" पर 'सिंटेक्स त्रुटि हो जाता है, इस टोकन के बाद अपेक्षित आयाम '। सलाह कृपया

+1

आप उपयोग नहीं कर सकते '' (जैसा कि आपको वास्तव में जरूरत आयात) नहीं होना चाहिए के रूप में जेनरिक डॉन आदिम प्रकार का समर्थन नहीं करते हैं। उदाहरण के लिए, [इस सवाल] (http://stackoverflow.com/questions/2721546/why-dont-java-generics-support-primitive-types) अधिक जानकारी के लिए देखें। – Mac

+0

यह भी देखें http://stackoverflow.com/questions/36325277/why-does-system-out-printlnnull-give-the-method-printlnchar-is-ambiguo –

उत्तर

5
java.awt.List 

java.util.List 

इनमें से दोनों मौजूद हैं। आप सामने नाम स्थान को जोड़ने के लिए एक का उपयोग करना होगा:

java.util.List<String> cgxHist = new ArrayList<String>(); 

आप नहीं है, यह List<T> व्याख्या करने के लिए कैसे पता नहीं है करते हैं: यह awt एक या util है? Ergo: संदिग्ध।

+0

सहायता के लिए धन्यवाद। – user2671186

12

समस्या दोनों java.awt में एक List वर्ग और java.util पैकेज है, और जैसा कि आप उन पैकेज में सभी वर्गों के आयात कर रहे हैं, संकलक पता नहीं है जो एक तुम मतलब है।

तो आप या तो तारांकन एक ही समय में सभी वर्गों के आयात करने के लिए, का उपयोग करें या बजाय List लिखने java.util.List<String> cgxHist = new ArrayList<String>();

+0

बहुत बहुत धन्यवाद। मैं सीख रहा हूं, लेकिन यह एक बहुत ही धीमी प्रक्रिया है। – user2671186

+0

यह केवल आधे प्रश्न का उत्तर देता है। दूसरी समस्या यह है कि प्राइमेटिव का उपयोग जेनेरिक के साथ नहीं किया जा सकता - ओपी को '' के बजाय '' का उपयोग करना होगा। – Mac

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