【发布时间】:2013-11-10 10:02:15
【问题描述】:
为什么这个有效:
NormalChair nc = new NormalChair("a", 4);
System.out.println(nc.getName());
输出:一个
而这个没有:
Object nc_ref = Class.forName("test.NormalChair").getConstructor(String.class, Integer.class).newInstance("a",4);
Method m_get = nc_ref.getClass().getDeclaredMethod("getName");
System.out.println(m_get.invoke(nc_ref));
我明白了:
Exception in thread "main" java.lang.NoSuchMethodException: test.NormalChair.<init>(java.lang.String, java.lang.Integer)
at java.lang.Class.getConstructor0(Class.java:2800)
at java.lang.Class.getConstructor(Class.java:1708)
at test.Test.main(Test.java:37)
【问题讨论】:
-
鉴于下面的答案,您介意发布构造函数的代码吗?这将确保我们有一个完整的问题和合理的答案,这反过来可能对搜索类似问题的人非常有用。谢谢!
标签: java reflection instantiation