java - "आयात" के बाद "स्थैतिक" संशोधक क्या है?




modifier static-import (6)

"आयात स्थैतिक com.showboy.Myclass" और "आयात com.showboy.Myclass" के बीच का अंतर?

सबसे पहले एक कंपाइलर त्रुटि उत्पन्न करनी चाहिए क्योंकि स्थैतिक आयात केवल फ़ील्ड या सदस्य प्रकारों के आयात के लिए काम करता है। (मानते हुए MyClass एक आंतरिक वर्ग या शोबॉय से सदस्य नहीं है)

मुझे लगता है तुम्हारा मतलब है

import static com.showboy.MyClass.*;

जो सभी संकलित फ़ील्ड और सदस्यों को क्वालिफ़ाई करने के बिना वास्तविक संकलन इकाई में उपलब्ध MyClass से उपलब्ध बनाता है ... जैसा ऊपर बताया गया है

इस तरह इस्तेमाल करते समय:

import static com.showboy.Myclass;

public class Anotherclass{}

import static com.showboy.Myclass import com.showboy.Myclass और import static com.showboy.Myclass बीच क्या अंतर है?


आपके द्वारा बताए गए दो आयातों के बीच कोई अंतर नहीं है। हालांकि, आप अन्य वर्गों के स्थिर सदस्यों को अयोग्य पहुंच की अनुमति देने के लिए स्थिर आयात का उपयोग कर सकते हैं। जहां मुझे यह करना होता था:

import org.apache.commons.lang.StringUtils;
      .
      .
      .
if (StringUtils.isBlank(aString)) {
      .
      .
      .

मे यह कर सकती हु:

import static org.apache.commons.lang.StringUtils.isBlank;
      .
      .
      .
if (isBlank(aString)) {
      .
      .
      .

स्थिर आयात का उपयोग कक्षा के स्थिर फ़ील्ड / विधि को आयात करने के लिए किया जाता है:

package test;

import org.example.Foo;

class A {

 B b = Foo.B_INSTANCE;

}

तुम लिख सकते हो :

package test;

import static org.example.Foo.B_INSTANCE;

class A {

 B b = B_INSTANCE;

}

यह उपयोगी है यदि आप अक्सर अपने कोड में किसी अन्य वर्ग से निरंतर उपयोग करते हैं और यदि स्थिर आयात संदिग्ध नहीं है।

बीटीडब्ल्यू, आपके उदाहरण में "आयात स्थिर org.example.Myclass;" काम नहीं करेगा: आयात कक्षा के लिए है, एक वर्ग के स्थिर सदस्यों के लिए आयात स्थैतिक है।


स्थैतिक आयात का मूल विचार यह है कि जब भी आप एक स्थिर वर्ग, स्थिर चर या enum का उपयोग कर रहे हैं, तो आप उन्हें आयात कर सकते हैं और स्वयं को कुछ टाइपिंग से बचा सकते हैं।

उदाहरण के साथ मैं अपने बिंदु को विस्तारित करूंगा।

import java.lang.Math;

class WithoutStaticImports {

 public static void main(String [] args) {
  System.out.println("round " + Math.round(1032.897));
  System.out.println("min " + Math.min(60,102));
 }
}

स्थिर आयात के साथ वही कोड:

import static java.lang.System.out;
import static java.lang.Math.*;

class WithStaticImports {
  public static void main(String [] args) {
    out.println("round " + round(1032.897));
    out.println("min " + min(60,102));
  }
}

नोट : स्थैतिक आयात आपके कोड को पढ़ने में भ्रमित कर सकता है।


import जावा प्रोग्रामर को पैकेज योग्यता के बिना पैकेज के वर्गों तक पहुंचने की अनुमति देता है।

static import सुविधा वर्ग योग्यता के बिना कक्षा के स्थिर सदस्यों तक पहुंचने की अनुमति देती है।

import कक्षाओं और इंटरफ़ेस तक पहुंच प्रदान करता है जबकि static import कक्षा के स्थिर सदस्यों तक पहुंच प्रदान करता है।

उदाहरण :

आयात के साथ

import java.lang.System.*;    
class StaticImportExample{  
    public static void main(String args[]){  

       System.out.println("Hello");
       System.out.println("Java");  

  }   
} 

स्थिर आयात के साथ

import static java.lang.System.*;    
class StaticImportExample{  
  public static void main(String args[]){  

   out.println("Hello");//Now no need of System.out  
   out.println("Java");  

 }   
} 

यह भी देखें: जावा 5 में स्थिर आयात क्या है


import बाद static संशोधक एक वर्ग के स्थिर क्षेत्रों को पुनः प्राप्त / उपयोग करने के लिए है। एक क्षेत्र जिसमें मैं import static का उपयोग करता हूं वह कक्षा से स्थिरांक को पुनर्प्राप्त करने के लिए है। हम स्थैतिक तरीकों पर import static भी लागू कर सकते हैं। import static टाइप import static सुनिश्चित करें क्योंकि static import गलत है।

जावा में static import क्या है - JavaRevisited - import static बारे में अधिक जानने के लिए एक बहुत अच्छा संसाधन।





static-import