Hi,
ich komme mit der Bedeutung von JavaDoc zu der Methode getClassLoader() in der Klasse class nicht ganz zurecht, hier das Original:
If a security manager is present, and the caller's class loader is not null and the caller's class loader is not the same as or an ancestor of the class loader for the class whose class loader is requested, then this method calls the security manager's checkPermission method with a RuntimePermission("getClassLoader") permission to ensure it's ok to access the class loader for the class.
Nehmen wir mal folgendes Statement an:
myObj.getClass().getClassLoader();
ist dann der caller class loader derjenige, der die Klasse zum Klassenobjekt zurückgegeben von getClass() geladen hat? Und was genau ist dann der requested class loader? Ist das der, der ursprünglich beauftragt wurde, die Klasse zu laden?
Ich stell mir das im Moment so vor: Es gibt einen selbstdefinierten class loader myCL. Wenn ich myCL.loadClass("someClass", true) aufrufe, ist myCL der requested class loader. Weil der request aber delgiert werden kann, ist der caller class loader der, der die Klasse tatsächlich geladen hat. Kommt man an den caller class loader irgendwie ran? Ich bekomme nämlich eine security exception beim Aufruf von getClassLoader() und weiß nicht genau, wer der caller class loader genau "ist".
Schalte ich den Security Manager aus, bekomme ich über
System.out.println(myObj.getClass().getClassLoader());
zumindest einige Infos über den requested class loader., zumindest denke ich dass das der requested class loader ist.
Grüße,
Matthias
ich komme mit der Bedeutung von JavaDoc zu der Methode getClassLoader() in der Klasse class nicht ganz zurecht, hier das Original:
If a security manager is present, and the caller's class loader is not null and the caller's class loader is not the same as or an ancestor of the class loader for the class whose class loader is requested, then this method calls the security manager's checkPermission method with a RuntimePermission("getClassLoader") permission to ensure it's ok to access the class loader for the class.
Nehmen wir mal folgendes Statement an:
myObj.getClass().getClassLoader();
ist dann der caller class loader derjenige, der die Klasse zum Klassenobjekt zurückgegeben von getClass() geladen hat? Und was genau ist dann der requested class loader? Ist das der, der ursprünglich beauftragt wurde, die Klasse zu laden?
Ich stell mir das im Moment so vor: Es gibt einen selbstdefinierten class loader myCL. Wenn ich myCL.loadClass("someClass", true) aufrufe, ist myCL der requested class loader. Weil der request aber delgiert werden kann, ist der caller class loader der, der die Klasse tatsächlich geladen hat. Kommt man an den caller class loader irgendwie ran? Ich bekomme nämlich eine security exception beim Aufruf von getClassLoader() und weiß nicht genau, wer der caller class loader genau "ist".
Schalte ich den Security Manager aus, bekomme ich über
System.out.println(myObj.getClass().getClassLoader());
zumindest einige Infos über den requested class loader., zumindest denke ich dass das der requested class loader ist.
Grüße,
Matthias