【java】--- 反射获取Class类的4种方式

转载:https://blog.csdn.net/u010613321/article/details/72890092

1.调用运行时类本身的.class属性

Class clazz = String.class;

2.通过运行时类的对象获取

Person p = new Person();

Class clazz = p.getClass();

3.通过Class的静态方法获取:体现反射的动态性

String className = “java.util.commons”;

Class clazz = Class.forName(className);

4.通过类的加载器

String className = “java.util.commons”;

ClassLoader classLoader = this.getClass().getClassLoader();

Class clazz = classLoader.loadClass(className);

扩展:

类加载起分为三种:系统类加载器:ClassLoader.getSystemClassLoader()

   扩展类加载器:ClassLoader.getSystemClassLoader().getParent()

  引导类加载器(核心库、对象----如String,Object):无法直接获取

配置文件读取:

如在包com.test.java下有配置文件jdbc.properties

    内容为:user = root           password=pd123

   类加载器加载(指定目录如:com.test.java):

   ClassLoader classLoader = this.getClass().getClassLoader();
   InputStream is = classLoader.getResourceAsStream("com/test/java/jdbc.properties");
     Properties properties = new Properties();
   properties.load(is);
   String user = properties.getProperty("user");
   System.out.println(user);

   文件字节输入流加载(根目录:src):
//对比FileInputStream获取当前项目根目录下的文件
   FileInputStream is = new FileInputStream(new File("jdbc.properties"));

   Properties properties = new Properties();
   properties.load(is);
   String user = properties.getProperty("user");
   System.out.println(user);

得到Class 后得到对应对象的实例--------------> class.newInstance() <------- 需要对应的对象有空参的构造器以及对应的调用构造器权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值