反射创建对象 喜欢ヅ旅行 2022-02-04 03:17 221阅读 0赞 # 第一步 # **将对象的路径存到properties属性集文件中** ![在这里插入图片描述][20190506193243459.png] **为了方便,建议创建一个新文件夹** ![在这里插入图片描述][20190506193450314.png] **由于resource和src是同级目录,所以resouce目录下的文件会自动更新到classpath(bin目录)路径下面。我们看看效果** ![在这里插入图片描述][20190506194402984.png] # 第二步:反射创建对象 # package wuziqi; import java.io.IOException; import java.io.InputStream; import java.util.Collection; import java.util.Properties; public class PlayGame { /* public static void main(String[] args) {//正常创建对象,硬编码 Game game=new Game(); game.playgame(); }*/ private static Properties p=new Properties(); static { //静态代码块不能抛出异常 /* * 从classpath,也就是bin目录,加载资源文件。 */ try { ClassLoader loader=PlayGame.class.getClassLoader(); //从用来加载类的搜索路径(classpanth路径)打开具有指定名称的资源,以读取该资源。 InputStream in=loader.getResourceAsStream("plugins.properties"); p.load(in);//从流里读取数据 System.out.println(p); Collection<Object> value=p.values();//从属性集中拿到所有value值 for (Object object : value) { String classname=(String) object; //System.out.println(classname); try { Class<?> clz=Class.forName(classname);//加载class字节码 Game game=(Game) clz.newInstance();//创建对象 game.playgame();//执行对象的方法 } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ## 第三步:运行PlayGame类; ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDA1NjY2_size_16_color_FFFFFF_t_70] ## 可以看出效果和硬编码new创建对象是一个效果。 ## [20190506193243459.png]: /images/20220204/ba8ba062db964077a1d96f22646106f0.png [20190506193450314.png]: /images/20220204/504ec2f9f2f848d9bd8a28135994556e.png [20190506194402984.png]: /images/20220204/0e2622e933764f81ab362eae75f4ab74.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDA1NjY2_size_16_color_FFFFFF_t_70]: /images/20220204/e437bfe196bc48c084b747ebdcb09b46.png
相关 Java基础-利用反射动态创建对象 Java基础-利用反射动态创建对象 1.反射概念 > JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够 分手后的思念是犯贱/ 2023年01月01日 13:59/ 0 赞/ 199 阅读
相关 java反射动态创建对象执行方法 User类 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nL 偏执的太偏执、/ 2022年11月28日 10:53/ 0 赞/ 118 阅读
相关 反射 创建对象及访问构造方法 package xxx; import java.lang.reflect.Constructor; import java.lang.reflect.Invocati 「爱情、让人受尽委屈。」/ 2022年08月23日 00:33/ 0 赞/ 174 阅读
相关 【C#反射-动态创建对象】 上面博客学习了使用反射查看类型的信息,以及使用反射获取特性对象。 下面使用反射来动态创建对象。首先准备一个Test类: public class TestClass 女爷i/ 2022年08月22日 00:14/ 0 赞/ 176 阅读
相关 利用反射创建对象 / 通过反射创建带参数的对象 / public Object Creatobject(String ClassPath, Object[] Param 浅浅的花香味﹌/ 2022年07月12日 17:29/ 0 赞/ 186 阅读
相关 通过类的反射机制创建对象 转载:[https://www.cnblogs.com/xingzc/p/5760166.html][https_www.cnblogs.com_xingzc_p_576016 偏执的太偏执、/ 2022年03月22日 19:16/ 0 赞/ 238 阅读
相关 反射创建对象 第一步 将对象的路径存到properties属性集文件中 ![在这里插入图片描述][20190506193243459.png] 为了方便,建议创建一个新文件夹 喜欢ヅ旅行/ 2022年02月04日 03:17/ 0 赞/ 222 阅读
相关 使用反射创建对象 一 实战 1 代码 import java.util.; import java.io.; public class ObjectPool 心已赠人/ 2021年09月29日 08:24/ 0 赞/ 316 阅读
相关 使用反射来创建对象、调用方法 使用反射来创建对象、调用方法 反射创建对象 反射调用方法 反射调用私有方法 反射调用可变参私有方法 反射调用的方法自身可以抛出异常的情形 港控/mmm°/ 2021年09月25日 11:56/ 0 赞/ 344 阅读
还没有评论,来说两句吧...