学堂 学堂 学堂公众号手机端

反射与注解

lewis 1年前 (2024-04-24) 阅读数 12 #技术


目录

反射
注解

反射

java反射:可以获取正在运行的Java对象,调用该对象的属性、方法、构造器。
实现反射的类:
Class类:它表示正在运行的Java应用程序中的类和接口
Field类:提供有关类或接口的属性信息,以及对它的动态访问权限
Constructor:提供关于类的单个构造器的信息以及对它的访问权限
Method:提供关于类或接口中某个方法信息
反射的使用:


package com.collection;

public class Stu {
private String name ;
private int age;
public Stu(){

}
public Stu(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;
// }
//
package com.collection;

import java.lang.reflect.Field;

public class Test {
public static void main(String[] args) {
Stu zhangsan=new Stu();
Class<Stu> stu= Stu.class;//获得Stu类的对象,从而可以调用该类的属性、方法、构造器
try {
Field field=stu.getDeclaredField("age");//获得stu类的age属性
field.setAccessible(true);//设置不访问属性的访问修饰符
field.set(stu, 18);
field.setAccessible(false);


} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block

注意:
导包:
import java.lang.reflect.Constructor;
  import java.lang.reflect.Field;  
  import java.lang.reflect.Method;

注解

注解:Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门