java中的泛型问题。

importjava.util.*;classa{publicstaticvoidprint(Collectionc){Iteratorit=c.iterator();w... import java.util.*;

class a {
public static void print (Collection c) {
Iterator it = c.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}

public static void main(String[] args) {
ArrayList <student> al = new ArrayList <student> ();
student s1 = new student(1, "张三");
student s2 = new student(3, "王五");
student s3 = new student(2, "李四");

al.add(s1);
al.add(s2);
al.add(s3);
Collections.sort(al);
print(al);
}
}
class student implements Comparable {
int num;
String name;
public student (int num, String name) {
this.num = num;
this.name = name;
}
public int compareTo(Object o) {
student s = (student)o;
return num > s.num ? 1 : (num == s.num ? 0 : -1);//?
}
public String toString() {
return num + " : " + name;
}
}

我不是加了泛型了么?但是问什么编译器总提示:
--------------------Configuration: <Default>--------------------
注: D:\java\集合类\ArrayListTest.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

Process completed.
展开
 我来答
召秋梵悌p1
2012-05-12 · TA获得超过2282个赞
知道小有建树答主
回答量:616
采纳率:80%
帮助的人:683万
展开全部
1. class a中print方法的参数是一个Collection,没有指定具体类型
2. print方法中的Iterator it = c.iterator();没有指定具体的类型
3. 你的错误提示怎么是 ArrayListTest类 使用了未经检查或不安全的操作???也许错误不在你提供的class a身上,呵呵。
追问
print方法中的参数是c,而c的类型是Collection的,Iterator 的参数是it,c.iterator();返回在此 collection 的元素上进行迭代的迭代器。
追答
泛型、具体类型,两个概念要分清楚。
比如你用 ArrayList a,告诉我说 “a是参数,a的类型是ArrayList,”
你说的和泛型连不上啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
康熙转世
2012-05-12 · TA获得超过6839个赞
知道大有可为答主
回答量:4325
采纳率:85%
帮助的人:2934万
展开全部
比较器比较器这个接口也需要泛型public interface Comparable<T>
这里Comparable<Object>
ps 注意类首字母大写
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
步步高升a7a
2012-05-12 · 超过16用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:59.2万
展开全部
不适应该有一个public class 类名 的方法么?你这个代码的名字叫什么?还是你发的代码不全?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式