2011-12-05 13 views
16

मेरे पास दो पैकेज हैं। जिस वर्ग को मैं पहले पैकेज से आयात करना चाहता हूं उसे सार्वजनिक के रूप में घोषित किया गया है। बावजूद, जब मैं दूसरे पैकेज से फ़ाइल का परीक्षण करता हूं तो यह मुझे संकलन त्रुटियों को दिखाता है:कक्षाओं को बाहरी पैकेज से एक्सेस नहीं किया जा सकता

पब्लिकक्लास मेरे पैकेज में सार्वजनिक नहीं है; बाहरी पैकेज से उपयोग नहीं किया जा सकता

मैंने पहले पैकेज से कक्षा में एक सार्वजनिक कन्स्ट्रक्टर जोड़ने की कोशिश की, लेकिन इससे कोई फर्क नहीं पड़ता।

क्या आपके पास कोई विचार है? मैं का उपयोग Netbeans 7.

पहले पैकेज से वर्ग लग रहा है नीचे की तरह:

public class PUBLICclass extends AbstractClass { public PUBLICclass() { } } 
+3

आप (कंस्ट्रक्टर्स के साथ एक साथ वर्ग XYZ) वर्ग घोषणा को जोड़ सकते हैं सार्वजनिक जोड़ सकता हूँ? –

+0

साथ ही, सुनिश्चित करें कि कीवर्ड "सार्वजनिक" (इसे कैपिटल करने की आवश्यकता नहीं है) और कक्षा का नाम के बीच एक जगह है। – andri

+2

क्या आप किसी भी मौके से जावा फ़ाइल में 'PUBLICclass'' आयात करना भूल गए हैं जो * इसका उपयोग करता है *? (पैकेज के बाहर जहां 'PUBLICclass' स्थित है।) – user268396

उत्तर

31

मुझे लगता है कि

वर्ग PUBLICClass का आपका प्रारंभिक घोषणा सार्वजनिक नहीं था, तो आप इसके `सार्वजनिक 'बनाया है, आप को साफ करने और अपनी परियोजना के पुनर्निर्माण के लिए कोशिश कर सकते हैं?

+1

एलओएल मैंने अभी परियोजना को साफ और पुनर्निर्मित कर दिया है और अब कोई समस्या नहीं है। – deem

+0

यह कभी-कभी होता है;) – mprabhat

+1

मेरे मामले में, आईडीई को पुनरारंभ करना (मैं एंड्रॉइड स्टूडियो का उपयोग कर रहा हूं) ने मदद की। –

0

किसी भी संयोग से आप क्या अपनी परियोजना है, जहां एक सार्वजनिक (जिनमें से एक तुम्हें तैनात है में दो PUBLICclass श्रेणियां होती हैं यहां हस्ताक्षर), और दूसरा पैकेज जो दृश्यमान है, और आप अपने कोड में गलत आयात करते हैं?

1

डिफ़ॉल्ट सुपरक्लास के निर्माता को चेक करें। इसे सार्वजनिक या संरक्षित होना चाहिए।

5
public SmartSaverCals(Context context) 
{ 
    this.context= context; 
} 

आपका प्रश्न करने के लिए मेरे मामले समस्या constructor.in के हल से

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