OpenJDK 8 - RMIClassLoaderSpi

कक्षा RMIClassLoaderSpi




openjdk

कक्षा RMIClassLoaderSpi

public abstract class RMIClassLoaderSpi
extends Object

RMIClassLoaderSpi के लिए सेवा प्रदाता इंटरफ़ेस है। विशेष रूप से, RMIClassLoaderSpi उदाहरण RMIClassLoaderSpi के निम्नलिखित स्थिर तरीकों का कार्यान्वयन प्रदान करता है:

जब उन तरीकों में से एक को लागू किया जाता है, तो इसका व्यवहार इस वर्ग के उदाहरण पर एक संबंधित विधि को सौंपना है। प्रत्येक विधि के लिए प्रलेखन में प्रदाता विधि के लिए प्रत्येक विधि कैसे निर्दिष्ट करती है, इसका विवरण दिया गया है। एक प्रदाता का उदाहरण कैसे चुना जाता है, इसके विवरण के लिए RMIClassLoader लिए प्रलेखन देखें।

जबसे:
1.4
यह भी देखें:
RMIClassLoader

कंस्ट्रक्टर्स

RMIClassLoaderSpi

public RMIClassLoaderSpi()

तरीके

loadClass

public abstract Class<?> loadClass(String codebase,
                                   String name,
                                   ClassLoader defaultLoader)
                            throws MalformedURLException,
                                   ClassNotFoundException

RMIClassLoader.loadClass(URL,String) , RMIClassLoader.loadClass(String,String) , और RMIClassLoader.loadClass(String,String,ClassLoader) लिए कार्यान्वयन प्रदान करता है। कोडबेस URL पथ से एक वर्ग लोड करता है, वैकल्पिक रूप से आपूर्ति लोडर का उपयोग कर। आमतौर पर, एक प्रदाता कार्यान्वयन दिए गए defaultLoader का उपयोग करके नामित वर्ग को हल करने का प्रयास करेगा, यदि निर्दिष्ट किया गया है, तो कोडबेस URL पथ से वर्ग को हल करने का प्रयास करने से पहले।

इस पद्धति का कार्यान्वयन या तो दिए गए नाम के साथ एक वर्ग को वापस करना चाहिए या एक अपवाद फेंकना चाहिए।

पैरामीटर:
codebase - URL की सूची (रिक्त स्थान से अलग) को कक्षा से या null से लोड करने के लिए
name - लोड करने के लिए वर्ग का नाम
defaultLoader - अतिरिक्त प्रासंगिक वर्ग लोडर का उपयोग करने के लिए, या null
यह दिखाता है:
लोड की गई कक्षा का प्रतिनिधित्व करने वाली Class वस्तु
फेंकता:
MalformedURLException - यदि codebase गैर- null और इसमें एक अमान्य URL है, या यदि codebase null और एक प्रदाता-विशिष्ट URL जो कक्षाओं को लोड करने के लिए उपयोग किया जाता है, तो अमान्य है
ClassNotFoundException - यदि वर्ग के लिए परिभाषा निर्दिष्ट स्थान पर नहीं मिली

loadProxyClass

public abstract Class<?> loadProxyClass(String codebase,
                                        String[] interfaces,
                                        ClassLoader defaultLoader)
                                 throws MalformedURLException,
                                        ClassNotFoundException

RMIClassLoader.loadProxyClass(String,String[],ClassLoader) लिए कार्यान्वयन प्रदान करता है। डायनेमिक प्रॉक्सी क्लास लोड करता है ( Proxy देखें जो कोडबेस URL पथ से दिए गए नामों के साथ इंटरफेस का एक सेट लागू करता है, वैकल्पिक रूप से आपूर्ति किए गए लोडर का उपयोग करके।

इस पद्धति का कार्यान्वयन या तो एक प्रॉक्सी वर्ग को वापस करना होगा जो नामित इंटरफेस को लागू करता है या एक अपवाद को फेंक देता है।

पैरामीटर:
codebase - URL की सूची (स्पेस-सेपरेटेड) को कक्षाओं से या null से लोड करने के लिए
interfaces - प्रॉक्सी क्लास को लागू करने के लिए इंटरफेस का नाम
defaultLoader - अतिरिक्त प्रासंगिक वर्ग लोडर का उपयोग करने के लिए, या null
यह दिखाता है:
एक गतिशील प्रॉक्सी वर्ग जो नामित इंटरफेस को लागू करता है
फेंकता:
MalformedURLException - यदि codebase गैर- null और इसमें एक अमान्य URL है, या यदि codebase null और एक प्रदाता-विशिष्ट URL जो कक्षाओं को लोड करने के लिए उपयोग किया जाता है, तो अमान्य है
ClassNotFoundException - यदि नामित स्थानों में से एक के लिए परिभाषा निर्दिष्ट स्थान पर नहीं पाई जा सकती है, या यदि गतिशील प्रॉक्सी वर्ग का निर्माण विफल रहा है (जैसे कि Proxy दिए गए के लिए IllegalArgumentException फेंक देगा। इंटरफ़ेस सूची)

getClassLoader

public abstract ClassLoader getClassLoader(String codebase)
                                    throws MalformedURLException

RMIClassLoader.getClassLoader(String) लिए कार्यान्वयन प्रदान करता है। एक क्लास लोडर देता है जो दिए गए कोडबेस URL पथ से कक्षाएं लोड करता है।

यदि कोई सुरक्षा checkPermission , तो इसकी checkPermission विधि को RuntimePermission("getClassLoader") अनुमति के साथ लागू किया जाएगा; यह एक SecurityException में परिणाम हो सकता है। इस विधि के कार्यान्वयन से यह सत्यापित करने के लिए आगे की सुरक्षा जांच भी हो सकती है कि कॉलिंग संदर्भ को कोडबेस URL पथ के सभी URL से कनेक्ट करने की अनुमति है।

पैरामीटर:
codebase - URL की सूची (स्पेस-सेपरेटेड) जिसमें से लौटा क्लास लोडर, या null से कक्षाओं को लोड करेगा
यह दिखाता है:
एक क्लास लोडर जो दिए गए कोडबेस URL पथ से कक्षाएं लोड करता है
फेंकता:
MalformedURLException - यदि codebase गैर- null और इसमें एक अमान्य URL है, या यदि codebase null और एक प्रदाता-विशिष्ट URL जो क्लास लोडर की पहचान करने के लिए उपयोग किया जाता है, तो अमान्य है
SecurityException - अगर कोई सुरक्षा प्रबंधक है और उसके checkPermission विधि का आह्वान विफल रहता है, या यदि कॉलर को कोडबेस URL पथ के सभी URL से कनेक्ट करने की अनुमति नहीं है

getClassAnnotation

public abstract String getClassAnnotation(Class<?> cl)

RMIClassLoader.getClassAnnotation(Class) लिए कार्यान्वयन प्रदान करता है। एनोटेशन स्ट्रिंग लौटाता है (वर्ग परिभाषा के लिए एक स्थान का प्रतिनिधित्व करता है) जो आरएमआई क्लास डिस्क्रिप्टर को एनोटेट करने के लिए उपयोग करेगा जब दिए गए वर्ग की वस्तुओं को मार्शेल करते हैं।

पैरामीटर:
cl - वर्ग के लिए एनोटेशन प्राप्त करने के लिए
यह दिखाता है:
दिए गए वर्ग को एनारोट करने के लिए एक स्ट्रिंग का उपयोग किया जाता है जब यह मार्शल्ड, या null हो जाता है
फेंकता:
NullPointerException - अगर cl null