反射---获取Class类的4种方式
来源:互联网 发布:今年的网络流行语 编辑:程序博客网 时间:2024/06/04 17:49
随笔---------------------------------------获取Class类的4种方式-----------------------------------------------------------------------------------------
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() <------- 需要对应的对象有空参的构造器以及对应的调用构造器权限
- 反射---获取Class类的4种方式
- 反射:Class获取的三种方式
- java反射(二):获取Class类的四种方式
- 【类反射】类反射原理和获取Class对象的三种方式
- 【类反射】类反射原理和获取Class对象的三种方式
- java反射机制(获取class的三种方式)
- 反射获取class对象的三种方式
- Java 反射---获取Class的三种方式
- 反射中获取class对象的三种方式
- 反射概念:获取class文件对象的三种方式
- 反射应用中获取Class实例的四种方式
- java 反射之获取class对象的三种方式
- 通过反射获取Class类型的三种方式
- 反射_获取class文件对象的三种方式
- 反射-获取class文件对象的三种方式
- java反射之获取class对象的三种方式
- 反射机制获取Class对象的三种方式
- 反射机制获取Class对象的三种方式:
- u3d保存RenderTexture为Png
- 码云使用问题
- Linux-鸟菜-5-目录配置-FHS
- angular中的compile和link函数
- Android完美获取状态栏高度、标题栏高度、编辑区域高度的获取
- 反射---获取Class类的4种方式
- Java中equals方法和==的区别
- JDBC的连接步骤
- iOS-支付宝sdk支付结束跳转不了?【SDK】
- Poedu_Windows_异步IO操作(1)
- 虚拟机 VMware Workstation 12 安装 CentOS 7 图文教程
- servlet的url-pattern匹配规则详细描述
- 树莓派Python实现超声波测距+人体红外传感器+温湿度+LED灯
- BOW和LSH的一点理解