java 泛型 动态_java – 没有泛型的动态实例创建

我想了解为什么以下不起作用:

public class HelloClass {

private class MyClass

{

public MyClass()

{

System.out.println ("Oh heck this is me!");

}

}

public Object newInstance (Object o)

{

try {

// java.lang.InstantiationException here

return o.getClass().newInstance();

} catch (Exception e) {

e.printStackTrace(System.out);

return null;

}

}

public void run()

{

MyClass m = new MyClass();

Object o = newInstance(m);

}

public static void main(String[] args)

{

HelloClass hd = new HelloClass();

hd.run();

}

}

我知道通过将newInstance参数声明为Class< T>来实现此目的的正确方法,但是想要理解为什么它不能像上面那样完成.

UPD:这是我得到的例外:

java.lang.InstantiationException: HelloClass$MyClass

at java.lang.Class.newInstance0(Class.java:340)

at java.lang.Class.newInstance(Class.java:308)

at HelloClass.newInstance(HelloClass.java:14)

at HelloClass.run(HelloClass.java:24)

at HelloClass.main(HelloClass.java:30)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值