zoukankan      html  css  js  c++  java
  • 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循环不能遍历,
        }
    }
  • 相关阅读:
    while语句的使用
    Sql Server2008忘记sa登陆密码
    C# 读取Excel到DataTable两种方式对比
    读《太阳照常升起》-海明威
    年终总结-2019 混沌收获
    如何在调试状态下部署局域网网站
    HTML-文本标签
    HTML-表单
    HTML-入门
    正则表达式大全
  • 原文地址:https://www.cnblogs.com/benjamin77/p/9146178.html
Copyright © 2011-2022 走看看