Javaでリフレクションを使用したいのですが、3番目のクラスがクラスの名前をコンソールから文字列として読み取るようにしたいと考えています。クラスの名前を読み取ると、自動的かつ動的に (!) そのクラスを生成し、そのwriteout
メソッドを呼び出します。そのクラスが入力から読み取られない場合、初期化されません。
私はそのコードを書きましたが、常に " java.lang.ClassNotFoundException
" を使用しています。どうすれば修正できるかわかりません。誰でも私を助けることができますか?
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());
}
}
}