2009-10-07 7 views
5

मैं ग्रहण का उपयोग कर रहा हूं, और मैंने google-collect.1.0-rc2.jar को एक संदर्भित लाइब्रेरी के रूप में जोड़ा है। अभी तक किसी भी तरह यह अभी भी काम नहीं करता:जावा: तत्काल Google संग्रह के हैशबैप

import com.google.common.collect.HashBiMap; 

public class Odp {   
    //... 

    HashBiMap<Character, Integer> charOcc = 
     HashBiMap<Character, Integer>.create();  
} 

ग्रहण निम्न त्रुटियों देता है: इस लाइन

  • HashBiMap
  • Character.Integer हल नहीं किया जा सकता है पर

    एकाधिक मार्कर नहीं कर सकते हल हो जाएं

  • टोकन ",", "पर सिंटेक्स त्रुटि। टोकन पर उम्मीद
  • सिंटैक्स त्रुटि "।", इस टोकन
  • विधि() बनाने के वर्ग ODP

के लिए अपरिभाषित है क्या मैं गलत कर रहा हूँ हटाना चाहते हैं?

अन्य Google सामान, जैसे जॉइनर, ठीक काम करता है। (लेकिन योजक साधारण नहीं है।)

+0

क्या त्रुटि संदेश नहीं है कर रही? –

उत्तर

20

जब स्थिर सामान्य कार्यों बुला, आप प्रकार पैरामीटर पास नहीं है:

HashBiMap<Character, Integer> charOcc = HashBiMap.create(); 

इसके अलावा वास्तव में आपको चाहिए कार्यान्वयन वर्ग के लिए कोड नहीं है, तो आप कर रहे हैं बेहतर

Map<Character, Integer> charOcc = HashBiMap.create(); 

या

BiMap<Character, Integer> charOcc = HashBiMap.create(); 
+0

वहां हम जाते हैं। धन्यवाद। –

+0

क्या आप इस बारे में बता सकते हैं कि "आपको कार्यान्वयन कक्षा में कोड नहीं देना चाहिए?" –

+10

संभावना से अधिक, आपका शेष कोड केवल इस बात की परवाह करता है कि आप मानचित्र/बायमैप (जो इंटरफेस दोनों हैं) का उपयोग कर रहे हैं, न कि आप विशेष रूप से हैशबीमैप बनाम TreeBiMap (सुनिश्चित नहीं हैं कि यह मौजूद है) या कुछ अन्य BiMap कार्यान्वयन का उपयोग कर रहे हैं। इंटरफ़ेस पर कोडिंग करके और कार्यान्वयन नहीं, यदि आप कभी भी अंतर्निहित कार्यान्वयन को स्वैप करना चाहते हैं, तो आप इसका उपयोग करते हैं (मान लें कि आपको हैश मैप के बजाय ट्रीमैप का उपयोग करना चाहिए, क्योंकि आप ऑर्डर करना चाहते हैं), तो आपको केवल बनाना होगा बहुत कम स्थानों में परिवर्तन। –

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