为了账号安全,请及时绑定邮箱和手机立即绑定

关于老师讲解集合泛型的本质一节

package com.imooc.Class;

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

public class Genericity {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList list = new ArrayList();
        ArrayList<String> list1 = new ArrayList<String>();
        list.add("Hello");
        //list1.add(20);
        Class c1 = list.getClass();
        Class c2 = list1.getClass();
        System.out.println(c1==c2);
        System.out.println(list1.size());
        try {
            Method m = c2.getMethod("add", Object.class);
            m.invoke(list1, 20);
            m.invoke(list1, "Hello");//老师没有这句且返回list1的size是2。我自己加上返回的是2
        } catch (Exception e) {
            e.printStackTrace();
            // TODO: handle exception
        }
        System.out.println(list1.size());

    }

}

老师不是往list1中只加了一个20么?为什么最后list1的size是2呢?

正在回答

6 回答

第12行代码写错了,应该是list1.add("hello");

1 回复 有任何疑惑可以回复我~
#1

shaoxiao64017599 提问者

是哈 我说不对呢。谢谢啦
2017-03-15 回复 有任何疑惑可以回复我~

就是啊  你加错地方了  list1只添加了一个当然长度是1了


0 回复 有任何疑惑可以回复我~

list.size()获取的是元素的个数

0 回复 有任何疑惑可以回复我~
#1

shaoxiao64017599 提问者

嗯呢 不过还是感谢互动哈
2017-03-20 回复 有任何疑惑可以回复我~

尴尬,1楼正解

0 回复 有任何疑惑可以回复我~

不好意思,回答错了,int类型应该是占四个字节,但是添加20的时候没有指定类型,是有java虚拟机自己决定的

0 回复 有任何疑惑可以回复我~

因为在java中int类型的变量占两个字节

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
反射——Java高级开发必须懂的
  • 参与学习       151467    人
  • 解答问题       335    个

反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础

进入课程

关于老师讲解集合泛型的本质一节

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信