zoukankan      html  css  js  c++  java
  • java反射之java 泛型的本质

    1.泛型

    反射API用来生成在当前JAVA虚拟机中的类、接口或者对象的信息。
    Class类:反射的核心类,可以获取类的属性,方法等内容信息。
    Field类:Java.lang.reflect.表示类的属性,可以获取和设置类的中属性值。
    Method类:Java.lang.reflect。表示类的方法,它可以用来获取类中方法的信息或者执行方法
    Construcor类:Java.lang.reflect。表示类的构造方法。

    package com.imooc.reflect;

    import java.lang.reflect.Method;
    import java.util.ArrayList;

    public class ClassDemo4 {
    public static void main(String[] args) {
    ArrayList list = new ArrayList();
    ArrayList<String> list1 = new ArrayList<String>();
    list1.add("hello");
    Class c1 = list.getClass();
    Class c2 = list1.getClass();
    System.out.println(c1 == c2);

    /**
    * 反射的操作都是编译之后的操作
    * c1==c2 结果返回true说明编译之后集合的泛型是去泛型化的
    * java中集合的泛型,是防止错误输入的,只在编译阶段有效,
    * 绕过编译就无效了
    * 验证:我们可以通过方法的反射来操作,绕过编译
    */
    try {
    Method m = c2.getMethod("add", Object.class);
    m.invoke(list1, 100);//绕过编译操作就绕过了泛型
    System.out.println(list1.size());
    System.out.println(list1);
    /*
    for (String string : list1) {
    System.out.println(string);
    }*///现在就不能这样遍历了
    } catch (Exception e) {
    //TODO:handle exception
    e.printStackTrace();

    }
    }
    }
  • 相关阅读:
    python数据集处理,加载成list
    *和multiply
    RuntimeWarning: overflow encountered in exp
    机器学习 回归
    argsort()
    transpose()、T
    numpy、matplotlib第三方库安装
    feedparser安装
    机器学习实战错误校正
    机器学习 基于概率论的分类方法:朴素贝叶斯
  • 原文地址:https://www.cnblogs.com/gylhaut/p/8834771.html
Copyright © 2011-2022 走看看