使用反射进行对象实例化

使用反射进行对象实例化
使用反射进行对象实例化,不再使用new关键字

1.第一种,使用.properties配置文件创建对象

首先需要一个实体类:

public class Phone {
    String name;
    int price;
    
    @Override
    public String toString() {
        return "Phone{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

接下来新建一个文件夹rescources,在里面创建文件phone.properties
在这里插入图片描述
在这里插入图片描述
myphone是后面getString()方法中需要用到的key,后面是test.Phone是类的实际路径

接下来新建测试类Test

public class Test {
    public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        String name = ResourceBundle.getBundle("phone").getString("myphone");
        Phone phone = (Phone) Class.forName(name).newInstance();
        System.out.println(phone);

    }

运行效果:
在这里插入图片描述

2.第二种
	   Class<?> phone1 = Class.forName("test.Phone");
       Phone phone2 = (Phone) phone1.newInstance();
       System.out.println(phone2);
3.第三种
        Class<Phone> phoneClass = Phone.class;
        Phone phone = phoneClass.newInstance();
        System.out.println(phone);
4.获取类的所有接口名称
Class<?>[] interfaces = userClass.getInterfaces();
        for (Class<?> cla:interfaces
             ) {
            System.out.println(cla.getName());
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值