Java编程思想之范型(1)

Java范型是在Java5.0(1.5)版本中提出的,虽然Oracle已经发布了Java 1.9,Java 12的feature也已经在讨论中,但对于很多程序员来讲,对范型的理解和运用并不好,接下来的系列文章带大家一起深入理解Java范型。该系列问题第一篇先请感兴趣的同学看一些范型相关的问题,答案随后给出。

List numbers = newArrayList();

List integers = new ArrayList();

有个方法:

问:printItem(numbers)和printItem(integers)是否有问题?

2.声明一个List objectList =new ArrayList();以下选项哪些是正确的?

1)list.add(2L);

2)list.add(1);

3)list.add(1.0);

4)list.add(null);

5)list.add(new Object());

3.声明一个list,Listlist = new ArrayList();以下语句哪些是对的?

1)list.add("a");

2)list.add(1);

3)list.add(new Object())

4)list.add(null);

4.针对上一问题,如果把list改为Listlist = new ArrayList();4个选项哪些是正确的?

5.声明一个ListextendsNumberList = new ArrayList();以下选项哪些是正确的?

1)list.add(2L);

2)list.add(1);

3)list.add(null);

6.声明一个List superNumberList= new ArrayList();以下选项哪些是正确的?

6)list.add(2L);

7)list.add(1);

8)list.add(1.0);

9)list.add(null);

10)list.add(newObject());

7.通过上述两题,请说出在范型中extends和super关键字的用法,可以通过一个具体的类来说明,例如List vs List。

8.声明一个List intList = newArrayList,以下代码片段编译、执行都正常吗:

if(intList instanceof List){

}

9.声明一个List intList = newArrayList,代码片段编译、执行都正常吗:

if(intListinstanceof List){

}

10.Java引入范型(Generics)的目的有哪些?

11.以下代码片段编译、运行是否有问题?

12.如下两个方法签名能否定义在同一个类中,为什么?

13.定义一个Listlist = Arrays.asList(5,6),调用上题中定义的两个方法打印list元素,是否有问题?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180813G0L4ZX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券