"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > किसी न किसी प्रकार और विरासत कोड से निपटने के लिए टिप्स

किसी न किसी प्रकार और विरासत कोड से निपटने के लिए टिप्स

2025-04-17 को पोस्ट किया गया
ब्राउज़ करें:568

]

Tipos brutos e código legado परिभाषाएँ और विशेषताएँ

सकल प्रकार: प्रकार के तर्कों को निर्दिष्ट किए बिना एक सामान्य वर्ग का उपयोग करें। उदाहरण:

जनरल रॉ = नया जीन (नया डबल (98.6)); // क्रूड प्रकार बनाया गया
संगतता:

  • सकल प्रकार के चर किसी भी सामान्य वस्तु को प्राप्त कर सकते हैं और इसके विपरीत।
  • संकलन समय में प्रकारों का कोई सत्यापन नहीं है, जिसके परिणामस्वरूप निष्पादन समय में संभावित त्रुटियां होती हैं।
Gen raw = new Gen(new Double(98.6)); // Tipo bruto criado

कोड उदाहरण

// जनरल क्लास जेनेरिक सपोर्ट के साथ क्लास जीन { टी ओबी; // टाइप टी की एक वस्तु की घोषणा करता है Gen (t o) {// कंस्ट्रक्टर Ob = o; } T getob () {// OBS ऑब्जेक्ट लौटाता है ओबी लौटें; } } // सकल प्रकारों का प्रदर्शन क्लास रावडेमो { सार्वजनिक स्थैतिक शून्य main (String [] args) { // जेनरिक का सही ढंग से उपयोग करना Gen iob = new Gen (88); जीन स्ट्रोब = नया जीन ("जेनरिक टेस्ट"); // एक सकल प्रकार बनाना जनरल रॉ = नया जीन (नया डबल (98.6)); डबल डी = (डबल) raw.getob (); // काम करता है, लेकिन प्रकार की सुरक्षा खो देता है System.out.println ("मान:" d); // सकल प्रकारों के साथ निष्पादन समय की त्रुटियां // int i = (integer) raw.getOb (); // रनिंग टाइम एरर! // जेनेरिक के लिए सकल प्रकार का असाइनमेंट Strob = कच्चा; // सही, लेकिन खतरनाक // string str = strob.getob (); // रनिंग टाइम एरर! // जेनेरिक सकल अटेंशन कच्चा = iob; // सही, लेकिन खतरनाक // d = (डबल) raw.getOb (); // रनिंग टाइम एरर! } }


सकल प्रकारों के उपयोग के जोखिम

प्रकार की सुरक्षा का अभाव:

// Classe Gen com suporte a genéricos
class Gen {
    T ob; // Declara um objeto do tipo T

    Gen(T o) { // Construtor
        ob = o;
    }

    T getob() { // Retorna o objeto ob
        return ob;
    }
}

// Demonstração de tipos brutos
class RawDemo {
    public static void main(String[] args) {
        // Usando genéricos corretamente
        Gen iOb = new Gen(88);
        Gen strOb = new Gen("Generics Test");

        // Criando um tipo bruto
        Gen raw = new Gen(new Double(98.6));
        double d = (Double) raw.getob(); // Funciona, mas perde segurança de tipos
        System.out.println("value: "   d);

        // Erros de tempo de execução com tipos brutos
        // int i = (Integer) raw.getob(); // Erro de tempo de execução!

        // Atribuição de tipo bruto para genérico
        strOb = raw; // Correto, mas perigoso
        // String str = strOb.getob(); // Erro de tempo de execução!

        // Atribuição de genérico para tipo bruto
        raw = iOb; // Correto, mas perigoso
        // d = (Double) raw.getob(); // Erro de tempo de execução!
    }
}

उदाहरण:
strob = कच्चा; // खतरनाक: रॉ में डबल होता है, लेकिन स्ट्रोब स्ट्रिंग का इंतजार करता है कच्चा = iob; // खतरनाक: रॉ में अब पूर्णांक होता है, लेकिन जबरदस्ती विफल हो सकती है

    निष्पादन समय में अपवाद:
संकलन समय में विसंगतियों का पता लगाने का कोई तरीका नहीं है।

उदाहरण:

strOb = raw; // Perigoso: raw contém Double, mas strOb espera String
raw = iOb; // Perigoso: raw agora contém Integer, mas coerção pode falhar

]

]

उदाहरण जो चेतावनी उत्पन्न करते हैं



जनरल रॉ = नया जीन (नया डबल (98.6)); // सकल प्रकार Strob = कच्चा; // असुरक्षित असाइनमेंट

Gen raw = new Gen(new Double(98.6)); // Tipo bruto criado

सिफारिशें

सकल प्रकारों का उपयोग करने से बचें:

]
  • उदाहरण:

] // सही और सुरक्षित
]

]
Gen raw = new Gen(new Double(98.6)); // Tipo bruto
strOb = raw; // Atribuição insegura

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/javaparainiciantes/tipos-brutos-e-codigo-legado-3c6m?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3