Est-ce que java.lang.Class est identique au fichier .class actuel? C'est-à-dire que le contenu est équivalent? Je voulais envoyer la socket .class, et je me demandais si au lieu d'essayer de trouver et de charger le fichier .class réel, si je pouvais simplement transmettre le java.lang.Class à la place?Java: fichier .class et java.lang.Class
Elaboration (lire si vous voulez plus d'informations)
Supposons que j'ai une classe Java appelée unObj. Lorsque ce fichier est compilé, un fichier appelé SomeObj.class sera généré.
Nous savons aussi que si je unObj comme un type, nous pourrions obtenir ce type java.lang.Class en faisant:
Class someObjClss = SomeObj.class;
Nous savons java.lang.Class implémente Serializable, il peut donc être transmis.
Alors java.lang.Class est-il essentiellement la représentation de l'objet du fichier .class réel?
MISE À JOUR:
En supposant que j'ai transmis le fichier .class à un autre hôte, que je viens d'utiliser la méthode defineClass() pour construire la classe de retour?
Lien here
MAJ2:
Ce code fait des rendements InputStream null. Comment est-ce possible?
Class clazz = String.class;
String className = clazz.getName(); System.out.println(className);
URL url = clazz.getResource(className);
if(url != null)
{
String pathName = url.getPath(); System.out.println(className);
}
InputStream inputStream = clazz.getResourceAsStream(className);
if(inputStream != null)
{
System.out.println(inputStream.available());
}
Je fais de la mobilité de code. J'ai besoin d'utiliser Reflection à l'autre bout pour charger dynamiquement la classe. – sivabudh
Vous devrez alors envoyer le .class actuel et le charger à l'autre extrémité. Vous pouvez regarder à travers ceci: http://java.sun.com/developer/technicalArticles/Networking/classloaders/ – ChssPly76
merci pour l'article. J'ai juste besoin de charger le fichier .class. Existe-t-il un moyen facile de trouver simplement le fichier .class à partir de mon application? – sivabudh