关于泛型Collection一个弱智问题.

Rooock 2009-03-20 03:58:21
已经,如果是Collection<String> col;
那么col中存放的必须是String类型的元素..

我看API,有Collection<E>这样的写法? 这个E是代表了什么?
代表了任何Object吗?

我自己在IDE中写下这样的代码:

private List<E> list;


这时IDE不认识这个E, 我想问问,怎么让这个地方,不报错呢??
...全文
476 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
胡小来 2011-11-20
  • 打赏
  • 举报
回复
定义泛型类才用泛型名~ ABCD助记符号随便~
你使用的时候得告诉编译器你要的类型~
譬如 String

private List<String> list;
guye1986 2009-03-21
  • 打赏
  • 举报
回复
E需要自己定义
ZiSheng 2009-03-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Rooock 的回复:]
引用 4 楼 dreamhunter_lan 的回复:
E - Element (used extensively by the Java Collections Framework)
K - Key
N - Number
T - Type
V - Value
在定义一个类的时候可以用
如:
class Test <E> {

}
其他的不懂,这个东西感觉有点抽象



E K N T V 是JDK内置设置好的吗?
[/Quote]
就好像变量一样,你想取什么名字,就用什么名字,并不是java的关键字
youyilan 2009-03-21
  • 打赏
  • 举报
回复
E代表Element Sun公司建议使用单个字符作类型参数
在JDK1.5中,像LinkedList类这样定义
public class LinkedList <Element>{
boolean add(Element 0)
{
......
}

Element getFirst()
{
.......
}
}

一旦声明了某个类型名,就可以在泛型代码体内任何期望出现类型的地方使用。
qinqinhao 2009-03-21
  • 打赏
  • 举报
回复
ding
小曦子 2009-03-21
  • 打赏
  • 举报
回复
E应该要具体申明 是什么类型吧。。是一个类还是基本类型
zhyanl 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 neusoftware_20063500 的回复:]
E???E指代任意对象啊,这个E必须是存在得类,可以是J2SE得类,也可以是自定义的类,他是泛指
[/Quote]顶起
yangkaixin1226 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 neusoftware_20063500 的回复:]
E???E指代任意对象啊,这个E必须是存在得类,可以是J2SE得类,也可以是自定义的类,他是泛指
[/Quote]顶楼上的
小强提包包 2009-03-20
  • 打赏
  • 举报
回复
E???E指代任意对象啊,这个E必须是存在得类,可以是J2SE得类,也可以是自定义的类,他是泛指
chxy148 2009-03-20
  • 打赏
  • 举报
回复
将E定义成一个类,这样在声明变量的时候不会出错了~~~
oklinsong 2009-03-20
  • 打赏
  • 举报
回复
自己定义泛型类的时候用E,List是java类,所以必须用一个类型替换他。
cfan_haifeng 2009-03-20
  • 打赏
  • 举报
回复
因为你没有在类上声明泛型,即
public class 类名<随便一个符号>
KingZChina 2009-03-20
  • 打赏
  • 举报
回复
把<E>去掉 要不就在<>写上个类型
luojihaidao 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 Rooock 的帖子:]
已经,如果是Collection <String> col;
那么col中存放的必须是String类型的元素..

我看API,有Collection <E>这样的写法? 这个E是代表了什么?
代表了任何Object吗?

我自己在IDE中写下这样的代码:

Java code
private List<E> list;




这时IDE不认识这个E, 我想问问,怎么让这个地方,不报错呢??
[/Quote]

Collection <String> col 这里的是声明。

如果 在创建 一个类是就可以使用泛型。

例如: class A<T>{} class B<P,K>{} 这样的写法。

同样在类中也可以class B<P,K>{

private P p;
private K k;
}

如果 B 类写好了,我们通过 B<String,String> b = new B<String,String>(); 这样的写法

当然也可以 A<?> a = new A<?>(); ?表示泛指。
GabrieLeo 2009-03-20
  • 打赏
  • 举报
回复
E 指代任意一个object的类型
比如说Sting、Interger,当然也可以是你自己创建的object
KAKUKYOWU 2009-03-20
  • 打赏
  • 举报
回复
个人理解:
<E>就类似一枚举,
但不是用在代码中的,
只是用来阐述字面意思的。
表示对象。
不是JDK内置的,本身在代码中并没有特殊含义。
goodmrning 2009-03-20
  • 打赏
  • 举报
回复
泛型中你要可以用具体的类型如String等代替E。看一个简单的例子:
public class Box<T> {
private T t;

private void add(T t) {
this.t = t;
}

public T get() {
return t;
}

public static void main(String[] args) {
Box<Integer> boxInt = new Box<Integer>();
boxInt.add(1);
Integer intResult = boxInt.get();

Box<String> boxStr = new Box<String>();
boxStr.add("Test");
String strResult = boxStr.get();

System.out.println("Integer Result : " + intResult);
System.out.println("String Result : " + strResult);
}
}

cfan_haifeng 2009-03-20
  • 打赏
  • 举报
回复
E K N T V 是JDK内置设置好的吗?
不是
wanglongyu1 2009-03-20
  • 打赏
  • 举报
回复
你用是写E的话 你给先定义 E的类
jojoqiong 2009-03-20
  • 打赏
  • 举报
回复
这个E只是一个抽象的概念,当你去示例这个类的时候,就可以定义E的类型了。在此,E只是一个标识,在此标识后下文可以直接使用。
一旦你声明对象时给定了E的类型。那么在你定义类的地方使用到的E的类型,必须都为声明时的类型。
加载更多回复(7)

62,616

社区成员

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

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