标签:反射 className 实例 reflect User javalearn realize
反射之实例化
基本操作
以下代码使用反射机制来实例化:
package com.javalearn.reflect.realize;
public class TestForRealize {
public static void main(String[] args) {
Class c = null;
try {
c = Class.forName("com.javalearn.reflect.realize.User"); // 获取字节码文件
Object obj = c.newInstance(); //实例化,只能调用无参构造方法
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
class User {
public User() { // 如果添加了带参数的构造方法,无参构造会消失,应该再方法重载一次
System.out.println("我实例化了");
}
}
输出结果:
我实例化了
应用
以下代码使用反射机制通过读属性文件来实例化:
package com.javalearn.reflect.realize;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Properties;
public class TestForRealize2 {
public static void main(String[] args) throws Exception {
FileReader reader = new FileReader("file1.properties"); // 文件内容为className=com.javalearn.reflect.realize.User
Properties p = new Properties();
p.load(reader); // properties使用load方法读取.properties配置文件
reader.close(); // 读完要关闭
String className = p.getProperty("className");
System.out.println(className);
Class c = Class.forName(className); // 反射机制
Object o = c.newInstance();
}
}
输出结果:
com.javalearn.reflect.realize.User
我实例化了
标签:反射,className,实例,reflect,User,javalearn,realize 来源: https://www.cnblogs.com/cxf-tech/p/15676096.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。