Java 反射(3)

本文深入探讨Java反射机制的应用,包括如何通过反射获取类的gettersetter方法、访问私有变量与方法,以及如何利用反射创建和操作数组。同时,文章提供了获取类注解、方法注解和变量注解的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

特例:获取getter setter方法

public static void printGettersSetters(Class aClass){
    Method[] methods = aClass.getMethods();
  
    for(Method method : methods){

       if(isGetter(method)) 
            System.out.println("getter: " + method);
       
       if(isSetter(method)) 
            System.out.println("setter: " + method);
    }
}

public static boolean isGetter(Method method){

    if(!method.getName().startsWith("get")) 
         return false;

    if(method.getParameterTypes().length != 0) 
         return false;

    if(void.class.equals(method.getReturnType()) 
         return false;
  
    return true;

}

public static boolean isSetter(Method method){

    if(!method.getName().startsWith("set")) 
         return false;

    if(method.getParameterTypes().length != 1) 
         return false;

    return true;

}

 


 

访问私有变量

获取所有变量,包含私有:

主要方法在于getDeclearedField()

使用setAccessible方法设置可见性。

 


 

访问私有方法

 


 

创建数组

//第一个参数类型,第二是大小
int[] intArray = (int[]) Array.newInstance(int.class, 3);

 


 

读写数组

Array.get(obj, index)获取数据

使用Array.set()设置值

 


 

获取元素类型

String[] strings = new String[3];

Class stringArrayClass = strings.getClass();

Class stringArrayComponentType = stringArrayClass.getComponentType();

System.out.println(stringArrayComponentType);

 


 

获取类注解

获取所有注解:

getAnnotations()获取注解,挨个遍历获取到的注解,判断其类型。

获取指定类型的注解:

 

 


 

获取方法注解

getDeclearedAnnotations()获取定义的注解。

也可以获取指定的类型的注解:

 


 

获取方法参数上的注解

getParameterAnnotations()获取参数注解:

 


 

变量注解 

getDeclearedAnnotations()

获取指定类型的注解:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值