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. 展开
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. 展开
展开全部
1. class a中print方法的参数是一个Collection,没有指定具体类型
2. print方法中的Iterator it = c.iterator();没有指定具体的类型
3. 你的错误提示怎么是 ArrayListTest类 使用了未经检查或不安全的操作???也许错误不在你提供的class a身上,呵呵。
2. print方法中的Iterator it = c.iterator();没有指定具体的类型
3. 你的错误提示怎么是 ArrayListTest类 使用了未经检查或不安全的操作???也许错误不在你提供的class a身上,呵呵。
追问
print方法中的参数是c,而c的类型是Collection的,Iterator 的参数是it,c.iterator();返回在此 collection 的元素上进行迭代的迭代器。
追答
泛型、具体类型,两个概念要分清楚。
比如你用 ArrayList a,告诉我说 “a是参数,a的类型是ArrayList,”
你说的和泛型连不上啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比较器比较器这个接口也需要泛型public interface Comparable<T>
这里Comparable<Object>
ps 注意类首字母大写
这里Comparable<Object>
ps 注意类首字母大写
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不适应该有一个public class 类名 的方法么?你这个代码的名字叫什么?还是你发的代码不全?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询