初级反射

sinat_37677711 2017-06-29 12:25:12

package fanshe;

public class Dog {
public String str="Hello";
public void Dog(){}
public void Dog (String name){
System.out.println(name);
}
}



package fanshe;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class Test {

public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {
Class clzz=Class.forName("/demon/src/fanshe/Dog");
Constructor c= clzz.getConstructor(String.class);
Dog dog=(Dog) c.newInstance("Li");
System.out.println(dog.str);

}

}


怎么控制台没显示呢,感觉没什么错啊
...全文
184 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyn584238910 2017-06-29
  • 打赏
  • 举报
回复
class.forName("包名+类名")
sinat_37677711 2017-06-29
  • 打赏
  • 举报
回复
老铁,还是不行啊。。。#24
sinat_37677711 2017-06-29
  • 打赏
  • 举报
回复


Exception in thread "main" java.lang.NoSuchMethodException: fanshe.Dog.<init>(int)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at fanshe.Reflect.main(Reflect.java:10)
天涯共明月 2017-06-29
  • 打赏
  • 举报
回复
比如 加载mysql驱动时就是: Class.forName("com.mysql.jdbc.driver");
天涯共明月 2017-06-29
  • 打赏
  • 举报
回复
 Class clzz=Class.forName("/demon/src/fanshe/Dog");
这句有错,应该写类的包全路径 如: Class clzz=Class.forName("fanshe.Dog");

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧