在我的C:\JAVA文件夹下面有8个类,分别是:(经过编译后生成的)
a.class b.class c.class d.class e.class f.class g.class h.class
-------------------------------------------------------------------------
现在在main(String[] s)方法中,
我想从命令行接受一个变量值,(该变量值只能是a,b,c,d,e,f,g,h中的一个)
当值是哪一个就建立哪一个变量所对应的类的对象。
例如:
我从命令行接受的是d,
我就想生成d类的一个对象(类似执行d d1=new d())请问这时的java语句怎么实现?
a.class b.class c.class d.class e.class f.class g.class h.class
-------------------------------------------------------------------------
现在在main(String[] s)方法中,
我想从命令行接受一个变量值,(该变量值只能是a,b,c,d,e,f,g,h中的一个)
当值是哪一个就建立哪一个变量所对应的类的对象。
例如:
我从命令行接受的是d,
我就想生成d类的一个对象(类似执行d d1=new d())请问这时的java语句怎么实现?
{
case “a”
new a;
break;
case “b”
}
public static Object getObject(String arg){
switch(arg){
case "a": return new a();break;
case "b": return new b();break;
....
}
}
然后在main中:
Object o=getObject(args[0]);
---------------------------------------------------------------------------
回复 newmeteor(圆缘) :
如果在我的C:\JAVA文件夹下面要是有20个类,或者更多,
而且该文件夹中的类是隔一段时间就要重新更新的,(即:又多了一些新的类)
我每次执行的时候我都要先看一下里面的类名,然后再输入
类似java app d这样的语句。所以你的留言中的
new a;
这么些好象是行不通,
---------------------------------------------------------------------------
不过我还是非常感谢你,我会给你们大家加分的
谢谢!
Object o=Class.forName(args[0]).newInstance();
..
用Object o=Class.forName(args[0]).newInstance();这种方法产生的类调用方法时也得加上switch
String str=args[0];
Object o=null;
try{
o = Class.forName(str).newInstance();
}
catch(Exception e){}
}
这样好使
根据命令行得到的参数去动态装入所需的类:
Object o=Class.forName(args[0]).newInstance();
..
这个比较专业
{
String ch;
try
{
ch=System.in.read();
}catch(Exception e)
new ch;
}
刚学!!!有不对之处请指教,谢谢!!!