• java通过反射获取私有的构造方法,及反射擦除泛型数据类型约束


    /*
     * 反射获取私有的构造方法运行
     * 不推荐,破坏了程序的安全性,封装性
     * 暴力私有
     */
    public class ReflectDemo4 {
        public static void main(String[] args)throws Exception {
            Class c=Class.forName("demo01.Person");
            Constructor  con=c.getDeclaredConstructor(int.class,String.class);
            
            //Constructor类,父类AccessibleObject,定义方法setAccessibile(boolean flag)
            con.setAccessible(true);
            
            Object obj=con.newInstance(18,"lisi");
            System.out.println(obj);
        }
    }
    package demo02;
    
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    
    /*
     * 定义集合类,泛型String
     * 要求向集合中添加Integer类型
     * 
     * 反射方式,获取出集合ArrayList类的class文件对象
     * 通过class文件对象,调用add方法
     * 
     * 对反射调用方法是否理解
     */
    public class ReflectTest {
        public static void main(String[] args)throws Exception {
            ArrayList<String> array=new ArrayList<>();
            array.add("a");
            
            //反射方式,获取出集合ArrayList类的class文件对象
            Class c=array.getClass();
            //获取ArrayList.class文件中的方法add
            Method method=c.getMethod("add", Object.class);
            System.out.println(method);
            //使用invoke运行ArrayList方法add
            method.invoke(array,150);
            method.invoke(array,1500);
            method.invoke(array,15000);
            System.out.println(array);
            //增强for循环不能遍历,
        }
    }
  • 相关阅读:
    Java8新特性之lambda表达式
    查询数据库存在特殊列字段的所有表的表名和字段名
    BigDecimal相关整理
    MyBatis正在爬的坑
    Java面试题整理
    qs库的使用
    配置proxy解决跨域问题
    PDF.js 使用方式
    HTML转义以及防止JS注入攻击
    jquery ajax跨域回调
  • 原文地址:https://www.cnblogs.com/benjamin77/p/9146178.html
Copyright © 2020-2023  润新知