Je veux utiliser la réflexion dans Java, je veux faire que la troisième classe lise le nom de la classe en tant que chaîne de la console. En lisant le nom de la classe, elle générera automatiquement et dynamiquement (!) Cette classe et appellera sa méthode writeout
. Si cette classe n'est pas lue en entrée, elle ne sera pas initialisée.Création dynamique de classe à l'aide de Java Reflection, java.lang.ClassNotFoundException
J'ai écrit que les codes, mais je prends toujours à "java.lang.ClassNotFoundException
", et je ne sais pas comment je peux le réparer. Quelqu'un peut-il m'aider?
class class3 {
public Object dynamicsinif(String className, String fieldName, String value) throws Exception
{
Class cls = Class.forName(className,true,null);
Object obj = cls.newInstance();
Field fld = cls.getField(fieldName);
fld.set(obj, value);
return obj;
}
public void writeout3()
{
System.out.println("class3");
}
}
public class Main {
public static void main(String[] args) throws Exception
{
System.out.println("enter the class name : ");
BufferedReader reader= new BufferedReader(new InputStreamReader(System.in));
String line=reader.readLine();
String x="Text1";
try{
class3 trycls=new class3();
Object gelen=trycls.dynamicsinif(line, x, "rubby");
Class yeni=(Class)gelen;
System.out.println(yeni);
}catch(ClassNotFoundException ex){
System.out.print(ex.toString());
}
}
}
Indente que vous codez avec 4 espaces et supprimez les lignes vides afin qu'il soit plus facile à lire – Progman
L'utilisation du caractère "ı" pour désigner "I" une chose d'internationalisation? –