2012-12-06 8 views
8

संभव डुप्लिकेट:
Java import confusionक्यों कुछ जावा कोड एक ही पैकेज को फिर से आयात करते हैं?

जब मैं खेलने के चौखटे दस्तावेज़ पढ़ें, मैं इस पाया।

import play.*; 
import play.mvc.*; 

पहली पंक्ति में उन्होंने प्ले पैकेज के तहत सभी कक्षाएं आयात की हैं। फिर दूसरी पंक्ति का उपयोग क्या है। यह link देखें। 'एप्लिकेशन त्रुटि पृष्ठ प्रदान करना' अनुभाग पर जाएं।

अगर मुझे आयात अवधारणा में गलत है तो मुझे सुधारें।

+0

सभी को धन्यवाद।बुनियादी चीजों पर ध्यान केंद्रित न करने के लिए मुझ पर शर्म आती है। ग्रहण इसके लिए ज़िम्मेदार है। – Gugan

उत्तर

18

मुझे सही अगर मैं आयात अवधारणा में गलत हूँ।

आप हैं।

कुछ इस तरह:

import foo.bar.*; 

केवलfoo.bar पैकेज से प्रकार आयात करता है। यह foo.bar.baz जैसे "उपपृष्ठों" से आयात नहीं करता है। तो यह होगा

import java.util.regex.*; 

:

यह बहुत आसान है यह परीक्षण करने के लिए है:

import java.util.*; 

class Test { 
    public void foo() { 
     Pattern p = null; 
    } 
} 

संकलन नहीं होगा कि, लेकिन आप जोड़ते हैं।

जावा वास्तव में पदानुक्रम बनाने के रूप में पैकेजों के बारे में नहीं सोचता है। हम मानव के रूप में करते हैं, लेकिन जहां तक ​​जावा भाषा का संबंध है, पैकेज java.util और java.util.regex पूरी तरह से असंबंधित हैं।

2
import play.*; 

सभी प्रकार के भीतर आयात करेगा; जो उप-पैकेज के अंदर हैं उन्हें छोड़कर।

import play.mvc.*; 

mvc पैकेज है, जो play के भीतर उप-pckage है के भीतर सभी प्रकार के आयात करेगा।

आप इस सवाल का जवाब भी मददगार मिल जाएगा: Java import confusion

1

पहली पंक्ति सभी वर्गों, enums और interfaces के समान स्तर में आयात करेगा। * लेकिन कोई उपपृष्ठ नहीं। इसलिए आपको दूसरी पंक्ति की आवश्यकता है।

0

वे अलग-अलग पैकेज हैं। जावा में उप-पैकेज की कोई अवधारणा नहीं है। खेल द्वारा आयातित वर्ग। * साथ ही काम के तहत भी हो सकता है। *। जेवीएम के दृष्टिकोण से उनके पास play.mvc के तहत कक्षाओं के साथ कुछ लेना देना नहीं है। *। नामकरण सम्मेलन सिर्फ यह जानने के लिए एक सुविधा है कि संकुल संबंधित हैं, और play.mvc शायद खेल पर भारी निर्भर करता है।

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