基本的にJavaコマンドプロンプトを作成しようとしています。ユーザーがユーザーからの入力として入力するとします。
new x java.util.ArrayList
ここで、xはオブジェクト名であり、java.util.ArrayListはクラスです。したがって、ユーザーが入力したこのスクリプトは、クラスjava.util.ArrayListのオブジェクトを作成することを意味します。
ここで、ユーザーが次のように入力するとします。
new x java.util.ArrayList int:5
つまり、java.util.ArrayListのオブジェクトxを作成し、そのサイズを5にします。このように、オブジェクトの作成に関連するものを入力として入力するたびに、その入力に基づいてオブジェクトとそのメソッドのクラスを作成できるようにします。ユーザーはそうします。Javaとリフレクションは初めてなので、親切に助けてください!これが私の心を使ってこれまでに考えたコードです:
public static void token_classification() throws ClassNotFoundException
{
my_hash = new HashMap();
Keep_Obj_Info = new HashMap();
if(expression_keeper[0].equalsIgnoreCase("new"))
{
my_hash.put("Object", expression_keeper[1]);
Class Obj= Class.forName(expression_keeper[2]);
Keep_Obj_Info.put("Modifier", Obj.getModifiers());
Keep_Obj_Info.put("Package",Obj.getPackage());
////????
Constructor[] constructors = Obj.getConstructors();
}
else
if(expression_keeper[0].equalsIgnoreCase("call"))
{
}
else
if(expression_keeper[0].equalsIgnoreCase("print"))
{
}
else
{
System.out.println("Invalid Script!");
}
}
ExpressionKeeperは基本的に、ユーザー入力をトークン化された形式で保持する文字列配列です。新しい場所への空白の隣にあるものを意味します。