java基础知识视频教程(Java语言反射基础)

wufei123 发布于 2024-02-15 阅读(58)

原标题:Java语言反射基础

(1) 反射APIpackage model3.unit8;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;

public class Java01 {public static void main(String[] args) throws ClassNotFoundException {// (1)反射API

// 反射的理解:反射是一种看透Java的能力只需要知道(包名.类名)就可以知道类(父类、接口)中所有成员// 说明一:反射是所有Java框架实现的底层技术、开发技术的技术// 说明二:不但能看透所有代码、还可以执行调用所有的代码。

高级API// java.lang.Class 类// java.lang.reflect.Field 成员变量// java.lang.reflect.Method 成员方法// java.lang.reflect.Constructor 构造方法

// 获取类对象Class a = Class.forName("model3.unit8.Person");// 获取成员变量Field[] arr = a.getDeclaredFields();for (Field f:arr) {

System.out.println(f.getName());}// 获取成员方法Method[] brr = a.getDeclaredMethods();for (Method m:brr) {System.out.println(m.getName());

}// 获取构造方法Constructor[] crr = a.getConstructors();for (Constructor c:crr) {System.out.println(c.getName());

}// 获取父类Class father = a.getSuperclass();System.out.println(father.getName());// 获取接口Class[] x = a.getInterfaces();

for (Class k:x) {System.out.println(k.getName());}}}class Person {String name;int age;public Person() {

}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;

}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {

this.age = age;}@Overridepublic String toString() {return "Person{" +"name=" + name + \ +", age=" + age +

};}}interface A {}interface B {}(2) 反射实例化对象package model3.unit8;public class Java02 {public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {

// (2)Spring框架IOC模块使用反射创建对象的底层机制// 创建一个对象Person person1 = new Person();System.out.println(person1);// 在框架中使用注解来创建对象:例如:@Component、@Service等

// Java反射API:不但能看透Java、还能调用Java// 使用反射创建对象Class c = Class.forName("model3.unit8.Person");// 调用无参构造方法创建对象。

Person perosn2 = (Person)c.newInstance();perosn2.setName("张三");perosn2.setAge(30);System.out.println(perosn2);

}}返回搜狐,查看更多责任编辑:

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻65611