javaSE 反射, 泛型擦除(绕过泛型约束), 伪泛型

参考学习:https://blog.csdn.net/sinat_38259539/article/details/71799078


Demo.java:

package cn.xxx.demo;  
  
import java.lang.reflect.Method;  
import java.util.ArrayList;  
  
public class Demo {  
    public static void main(String[] args)throws Exception {  
        ArrayList<String> array  = new ArrayList<String>(); //伪泛型,泛型只在编译之前有约束。编译之后的class文件中没有泛型。   
        array.add("a");  
          
        Class c = array.getClass();  // 反射; 获取ArrayList的Class文件对象。 伪泛型,Class文件对象中并没有泛型。  
          
        Method method = c.getMethod("add",Object.class); // 获取add方法  
          
        method.invoke(array, 150);   // 调用add方法。 传递整型参数,绕过泛型约束。  一般不会这么用,只是为了练习反射  
        method.invoke(array, 1500);  
        System.out.println(array);  
          
    }  
} 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值