Guys, J'ai un problème légèrement différent avec le chargement des classes dynamiques Java. Je dois passer un objet (disons l'objet A1 de la classe A) au constructeur d'un objet différent B1 de la classe B, afin que les détails de l'A1 soient stockés dans B1. B1 ne sait pas quel type d'objet il reçoit. Tout ce qu'il sait, c'est que A1 est un objet.Charger dynamiquement une classe dans JAVA- Anomaly
Maintenant j'ai des fonctions dans la classe B, qui acceptent l'objet C1 et vérifient s'il est égal à l'objet A1. Donc, fondamentalement, je dois vérifier
- Si l'objet C1 est de la classe de type A. (En fait, je ne suis pas passé ce point.)
- Si les valeurs à l'intérieur des objets sont les mêmes
J'ai essayé une solution:
Lorsque vous enregistrez l'A1 objet dans B1, je stocke aussi le nom de la classe « a » puisque l'objet B1 ne reçoit que l'objet A1, mais pas le nom de la classe A.
public static void testing(Object C1, String s) //testing is the function of B called by B1
{
try{
Class c = Class.forName(s);
if(C1 instanceof c) // This is throwing error stating c cannot be resolved to a type
{
//further checking
}
}catch (Exception e){ System.out.println(e);}
}
J'ai essayé un code différent pour obtenir le type de classe pour faire une comparaison instanceof() mais je n'ai pas réussi. Toute suggestion ?
J'ai même essayé cela, mais même erreur
ClassLoader classLoader = B.class.getClassLoader();
try{
Class class11 = classLoader.loadClass(s);
if (C1 instanceof class11)
{
}
}catch (Exception e){ System.out.println(e);}
Tout pointeur sur la façon de procéder serait très utile!
solution est d'utiliser: isInstance au lieu de instanceof
Il y a aussi d'autres problèmes attachés à ce problème. Laissez-moi le mettre à jour avec mon commentaire ci-dessous. Je dois maintenant comparer une valeur, disons ÂGE, à la fois dans C1 et A1, qui à l'intérieur de B1. Maintenant Comment je fais ça? Si j'essaye les fonctions ou les valeurs, je donnerai l'erreur de compilateur parce que le compilateur est encore inconscient du type de classe de l'objet C1 et A1
En outre j'aurais pu sauver X1 au lieu de A1 en premier lieu. Maintenant, je pourrais avoir à vérifier une propriété différente comme ADDRESS. Cela change radicalement la dimension du problème. L'opérateur
Pas besoin d'inclure la réponse dans votre question. Au lieu de cela, acceptez simplement la réponse qui a résolu votre problème (en cliquant sur la coche verte à gauche de la réponse). De plus, si vous avez d'autres problèmes une fois celui-ci résolu, veuillez ouvrir une nouvelle question pour chaque problème. – Grodriguez