专栏首页陶士涵的菜地[javaEE] 反射-通过反射了解集合泛型本质

[javaEE] 反射-通过反射了解集合泛型本质

java中的泛型是防止错误输入的,只在编译时刻起作用

package com.tsh.reflect;

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



public class ReflectDemo {
    public static void main(String[] args) {
        ArrayList list=new ArrayList();
        ArrayList<String> list2=new ArrayList<String>();
        list.add("tsh");
        list.add(2);
        
        list2.add("tsh");
        //list2.add(2);//直接编译不通过,会报错
        
        //泛型检测只是在编译时刻才会有,绕过编译时刻,就不存在泛型了
        Class c2=list2.getClass();
        try {
            Method m=c2.getMethod("add", Object.class);
            m.invoke(list2, 2);//绕过编译时刻,此时这个泛型检查不起作用,int型也能加进去了
            System.out.println(list2.size());//2个元素
            //此时不能使用for(String str:list2)这个遍历,会报类型转换异常
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [日常] nginx与负载均衡策略

    陶士涵
  • [PHP] 深度解析Nginx下的PHP框架路由实现

    所有的框架处理业务请求时,都会处理URL的路径部分,分配到指定的代码中去处理。 实现这一功能的关键就是获取$_SERVER全局变量中对于URL部分的数据

    陶士涵
  • [PHP] php作为websocket的客户端实时读取推送日志文件

    首先要使用composer来下载一个第三方扩展就可以实现php的websocket客户端,直接在当前目录生成下composer.json文件就可以了 compo...

    陶士涵
  • leetcode-91-解码方法(动态规划和递归两种解法)

    1、这道题给定一个字符串,字符串中只含有数字,数字1可以解码为A,数字2可以解码为B……数字26可以解码为Z。

    chenjx85
  • 高频交易已经竞争到纳秒级!!!(赠送HFT的18篇论文+15本书籍+9篇研报)

    高频交易是一种更频繁地用于快速启动金融交易的方法。这种由高速发送订单组成的自动交易形式在美国过去十年中经历了强劲的增长。Tabb Group的数据显示,高频交易...

    量化投资与机器学习微信公众号
  • Python的functools模块

      元组WRAPPER_ASSIGNMENTS中是要被覆盖的属性:模块名、名称、限定名、文档、参数注解

    py3study
  • java泛型理解。代码更明了。

    在工作中,相对于现有的项目源码的数据库操作层,无论是mybatis,hibernate或者是自己封装的baseModel层,都会使用到泛型。

    陈灬大灬海
  • cmake:用add_subdirectory()添加外部项目文件夹

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10...

    用户1148648
  • 可穿戴设备:来看看水面之下的冰山

    兼具“可穿戴设备之父”和“全球七大大数据专家之一”名号的阿莱克斯•彭特兰在一个下午的THE BIG TALK给中国媒体带来一场科技的思想盛宴。尽管彭兰特所提到的...

    罗超频道
  • C++ 新特性学习(八) — 原子操作和多线程库[多工内存模型]

    分别对于两个进程而言,可观察行为确实没有变化。而这种优化在某些时候确实会有比较明显的效果。但是很显然,语义变化了。在原来的结果里不可能发生 x和y都为0的情况,...

    owent

扫码关注云+社区

领取腾讯云代金券