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();

    }
    }
    }
  • 相关阅读:
    Linux:看门狗watchdog.sh程序编写示例
    通用linux程序看门狗(watchdog)python版
    Linux看门狗脚本 1.4
    Qt 6中的输入事件
    使用Qt5Compat库从Qt 5移植到Qt 6
    vertical-align(mozilla的在线帮助)
    css文字如何垂直居中?
    JS-apply 、call 以及 bind
    敢放手把事情给别人做
    页面----调用本地程序
  • 原文地址:https://www.cnblogs.com/gylhaut/p/8834771.html
Copyright © 2011-2022 走看看