浏览 5397 次
锁定老帖子 主题:一个有关泛形的问题。
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-12-31
import java.util.LinkedList; import java.util.List; public class GuitarManufacturerList<String> extends LinkedList<String>{ public GuitarManufacturerList(); { super();; } public boolean add(String manufacturer); { if (manufacturer.indexOf("Guitars"); == -1); { return false; } else { super.add(manufacturer);; return true; } } public static void main(String[] args);{ GuitarManufacturerList gml=new GuitarManufacturerList();; gml.add("a");; } } [b]我得问题就是,这个程序是错的,可是我就想不明白,为什么是错的,谁能解释一下? 1。先是The type parameter String is hiding the type String 这里有个警告,只有改成GuitarManufacturerList<E>,或者GuitarManufacturerList才会消除警告。 2 第二个警告:The serializable class GuitarManufacturerList does not declare a static final serialVersionUID field of type long ,找不到原因。 3 public boolean add(String manufacturer); 这一句,为什么编译器会把参数给认成Object的了? 4public static void main(String[] args); 这一句。 Cannot make a static reference to the non-static type String,这又是什么原因?[/b] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-12-31
晕,第三点怎么是乱码?
3 。意思就是manufacturer这个String为什么会被编译器给转成Object的了? |
|
返回顶楼 | |
发表时间:2005-12-31
大过年的,还搞技术,太惨了点吧
GuitarManufacturerList gml=new GuitarManufacturerList(); 声明语句错了 |
|
返回顶楼 | |
发表时间:2005-12-31
呵呵,一寸光阴一寸金呀。
GuitarManufacturerList gml=new GuitarManufacturerList(); 这里没错吧,它提示是public static void main(String[] args)的错,就算把声明改了,也是会提示我上面所写的那些错误和警告。 |
|
返回顶楼 | |
发表时间:2006-01-02
1. 首先你这样写, 我想本身就问题.
2. 如果你要只能构造String的. 那么要么 GuitarManufacturerList extends LinkedList<String> 要么 GuitarManufacturerList<T extends String> extends LinkedList<String> 虽然下面的会有个警告. 3. 因为实现了Serializable接口. 4. 因为你申明的时候用了String. |
|
返回顶楼 | |
发表时间:2006-01-02
那为什么
GuitarManufacturerList<E> extends LinkedList<E> 这种写法就是对的。 而 GuitarManufacturerList<String> extends LinkedList<String> 这种就会有警告呢? |
|
返回顶楼 | |
发表时间:2006-01-28
GuitarManifactureList只能存String类型的,也就是限定死了,没有必要用泛型啊,泛型就是数据类型在实例化时才能确定,所有没有必要跟着个<String>,GuitarManifacture<E extends String>也没有必要,因为String是final的。当然如果不是String,那是可以的哈
|
|
返回顶楼 | |