泛型 的问题,(不好描述啊)

不要迷恋_哥 2016-04-20 09:20:04
import java.util.*;
public class GenericTest02
{
public static void main(String[] args)
{
List<String> s=new ArrayList<>();
s.add("1");
s.add("www");
s.add("2");
s.add("baidu");
new GenericTest02().test(s);
}
public void test(List a)
{
for(int i=0;i<a.size();i++)
{
String x=a.get(i);///此处的a.get(i)和 (2)]处 的不一样啊?
System.out.println(x+"---->"+a.get(i).getClass().getName()); //(2)
}
}
}


上面两个有注释的语句里的value类型为啥不一样啊? 一个是Object,一个是String
...全文
179 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
不要迷恋_哥 2016-04-21
  • 打赏
  • 举报
回复
晓得了
解开者 2016-04-21
  • 打赏
  • 举报
回复
泛型是编译检查,看的是声明类型;getClass返回的是运行阶段的实际类型
qq_24198473 2016-04-21
  • 打赏
  • 举报
回复
要有一双善于发现的严眼睛
qq_31523793 2016-04-21
  • 打赏
  • 举报
回复
第一种将public void test(List a) 改为public void test(List<String> a) 第二种将String x= a.get(i);改为String x=(String) a.get(i);
fyj_style 2016-04-21
  • 打赏
  • 举报
回复
13行更改为List<String>
x060508 2016-04-20
  • 打赏
  • 举报
回复
引用 5 楼 ge00111 的回复:
[quote=引用 4 楼 x060508 的回复:] List<String> s=new ArrayList<>();你这代码就有问题好不 AraayList要指定String泛型的 因为你前面List都指定是String类型的了
List<String> s=new ArrayList<>(); java7 以后是可以省略后面的类型指定, [/quote] 原来如此学到了
不要迷恋_哥 2016-04-20
  • 打赏
  • 举报
回复
引用 4 楼 x060508 的回复:
List<String> s=new ArrayList<>();你这代码就有问题好不 AraayList要指定String泛型的 因为你前面List都指定是String类型的了
List<String> s=new ArrayList<>(); java7 以后是可以省略后面的类型指定,
x060508 2016-04-20
  • 打赏
  • 举报
回复
List<String> s=new ArrayList<>();你这代码就有问题好不 AraayList要指定String泛型的 因为你前面List都指定是String类型的了
不要迷恋_哥 2016-04-20
  • 打赏
  • 举报
回复
引用 2 楼 libingxin 的回复:
你如果不传递范型,List a 等价于 List<Object> a 欢迎光临我的博客 http://happyshome.cn
那按你说的, 注释(2) 的类型也应该是Object 类型啊??
冰心的小屋 2016-04-20
  • 打赏
  • 举报
回复
你如果不传递范型,List a 等价于 List<Object> a 欢迎光临我的博客 http://happyshome.cn
不要迷恋_哥 2016-04-20
  • 打赏
  • 举报
回复
System.out.println(x+"---->"+a.get(i).getClass().getName()); 此语句明明输出的 String 类型, 而加上 String x=a.get(i);后就提示: GenericTest02.java:17: 错误: 不兼容的类型: Object无法转换为String

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧