java基础问题,请您帮忙!

[复制链接]
查看11 | 回复5 | 2010-5-20 09:35:27 | 显示全部楼层 |阅读模式
我想利用主方法的运行时参数输入:"new Person()",这就是我的args[0],然后我想将它转型,装换成Person类型,也就是说我想把双引号去掉,保留里面的内容,进而得到匿名对象,不知道如何操作,向您求助,拜托了!先谢谢~

回复

使用道具 举报

千问 | 2010-5-20 09:35:27 | 显示全部楼层
//声明对象Person person=null;//产生对象Object obj = Object obj = Class.forName(args[0].toString).newInstance();//判断对象是否为空,为空会出错if(obj!=null){
//判断对象是否为Person类型
if(obj instanceof Person){
//强制转换
person=(Person)obj;
}}
回复

使用道具 举报

千问 | 2010-5-20 09:35:27 | 显示全部楼层
这个操作是不可以的,在java中main函数中的args为String的数组对象,你不可以传入java的对象的。而且,在jvm没起来之前,你是不可以创建一个对象的。不知道你想这么做的目的是什么?或者有其他的办法可以解决。
回复

使用道具 举报

千问 | 2010-5-20 09:35:27 | 显示全部楼层
匿名对象?java里面有这种概念吗,你只是去掉"new Person()"的双引号有什么用!去掉后你得到也只是一个字符串,要想根据字符串得到一个对象,你可以考虑用下java的类加载机制也就是class.forName("****").getInstance()。这样才行!希望对你有帮助!
回复

使用道具 举报

千问 | 2010-5-20 09:35:27 | 显示全部楼层
你可以这样将Person类的带包名的名称传入比如是java.lang.String传入使用 String tt =(String)Class.forName("java.lang.String").newInstance();即得到了一个String对象换成你的Person类你就可以得到Person类的实例
回复

使用道具 举报

千问 | 2010-5-20 09:35:27 | 显示全部楼层
public ObjectgetObjectByClassName(string className){try{
Object obj = Class.forName(className).newInstance();
return obj;}catch(Exception e){
Sy
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行