泛型问题求解 ComByLen已被定义 泛型檫除 即CombyLen<String>经过檫除后变为ComByLen 所以会出现ComByLen已定义错误 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 抱歉,我没说清楚问题;下面是源代码[code=javaimport java.util.List;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class CollectionsDemo2{ public static void main(String[] args){ demo1(); } public static void demo1(){ List<String> list=new ArrayList<String>(); list.add("ags"); list.add("edn"); list.add("afdb"); list.add("adsn"); list.add("ab"); System.out.println(list); mySort(list); //Collections.sort(list); System.out.println(list); mySort2(list,new ComByLen());//Collections.sort(list,new ComByLen()); System.out.println(list); } public static <T> void mySort2(List<T> list,Comparator<? super T> com){ for(int i=0;i<list.size()-1;i++){ for(int j=i;j<list.size();j++){ if(com.compare(list.get(i),list.get(j))>0){ T temp=list.get(i); list.set(i,list.get(j)); list.set(j,temp); } } } } public static<T extends Comparable<? super T>> void mySort(List<T> list){ for(int i=0;i<list.size()-1;i++){ for(int j=i;j<list.size();j++){ if(list.get(i).compareTo(list.get(j))>0){ T temp=list.get(i); list.set(i,list.get(j)); list.set(j,temp); } } } }}class ComByLen<String> implements Comparator<String>{ public int compare(String s1,String s2){ int temp=s1.length()-s2.length(); return temp==0?s1.compareTo(s2):temp; }}][/code]---------- JAVAC ----------CollectionsDemo2.java:52: 错误: 找不到符号 int temp=s1.length()-s2.length(); ^ 符号: 方法 length() 位置: 类型为String的变量 s1 其中, String是类型变量: String扩展已在类 ComByLen中声明的ObjectCollectionsDemo2.java:52: 错误: 找不到符号 int temp=s1.length()-s2.length(); ^ 符号: 方法 length() 位置: 类型为String的变量 s2 其中, String是类型变量: String扩展已在类 ComByLen中声明的ObjectCollectionsDemo2.java:53: 错误: 找不到符号 return temp==0?s1.compareTo(s2):temp; ^ 符号: 方法 compareTo(String) 位置: 类型为String的变量 s1 其中, String是类型变量: String扩展已在类 ComByLen中声明的Object注: CollectionsDemo2.java使用了未经检查或不安全的操作。注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。3 个错误输出完成 (耗时 1 秒) - 正常终止 import java.util.List;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class CollectionsDemo2{ public static void main(String[] args){ demo1(); } public static void demo1(){ List<String> list=new ArrayList<String>(); list.add("ags"); list.add("edn"); list.add("afdb"); list.add("adsn"); list.add("ab"); System.out.println(list); mySort(list); //Collections.sort(list); System.out.println(list); mySort2(list,new ComByLen());//Collections.sort(list,new ComByLen()); System.out.println(list); } public static <T> void mySort2(List<T> list,Comparator<? super T> com){ for(int i=0;i<list.size()-1;i++){ for(int j=i;j<list.size();j++){ if(com.compare(list.get(i),list.get(j))>0){ T temp=list.get(i); list.set(i,list.get(j)); list.set(j,temp); } } } } public static<T extends Comparable<? super T>> void mySort(List<T> list){ for(int i=0;i<list.size()-1;i++){ for(int j=i;j<list.size();j++){ if(list.get(i).compareTo(list.get(j))>0){ T temp=list.get(i); list.set(i,list.get(j)); list.set(j,temp); } } } }}class ComByLen<String> implements Comparator<String>{ public int compare(String s1,String s2){ int temp=s1.length()-s2.length(); return temp==0?s1.compareTo(s2):temp; }}---------- JAVAC ----------CollectionsDemo2.java:52: 错误: 找不到符号 int temp=s1.length()-s2.length(); ^ 符号: 方法 length() 位置: 类型为String的变量 s1 其中, String是类型变量: String扩展已在类 ComByLen中声明的ObjectCollectionsDemo2.java:52: 错误: 找不到符号 int temp=s1.length()-s2.length(); ^ 符号: 方法 length() 位置: 类型为String的变量 s2 其中, String是类型变量: String扩展已在类 ComByLen中声明的ObjectCollectionsDemo2.java:53: 错误: 找不到符号 return temp==0?s1.compareTo(s2):temp; ^ 符号: 方法 compareTo(String) 位置: 类型为String的变量 s1 其中, String是类型变量: String扩展已在类 ComByLen中声明的Object注: CollectionsDemo2.java使用了未经检查或不安全的操作。注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。3 个错误输出完成 (耗时 1 秒) - 正常终止 一个菜鸟的问题关于抽象和接口 权限框架源码 高分请教!无法显示中文名的图片. 为什么用JAVA发送邮件,只有标题,没有正文?(100分请教) 如何把JTable某一个列Render成这样的JComboBox? 抽象类和抽象方法很模糊,希望高人指点.. 一个奇怪的文件输出问题,还请高手指点!!!! applet运行问题 有关对话框的疑问???-----好心的,帮帮我 如何解决键盘输入问题 世界顶级公司PHD程序员出的面试题 jpa的事务处理,小白问题
下面是源代码
[code=javaimport java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class CollectionsDemo2
{
public static void main(String[] args){
demo1();
}
public static void demo1(){
List<String> list=new ArrayList<String>();
list.add("ags");
list.add("edn");
list.add("afdb");
list.add("adsn");
list.add("ab");
System.out.println(list);
mySort(list);
//Collections.sort(list);
System.out.println(list);
mySort2(list,new ComByLen());//Collections.sort(list,new ComByLen());
System.out.println(list);
}
public static <T> void mySort2(List<T> list,Comparator<? super T> com){
for(int i=0;i<list.size()-1;i++){
for(int j=i;j<list.size();j++){
if(com.compare(list.get(i),list.get(j))>0){
T temp=list.get(i);
list.set(i,list.get(j));
list.set(j,temp);
}
}
}
}
public static<T extends Comparable<? super T>> void mySort(List<T> list){
for(int i=0;i<list.size()-1;i++){
for(int j=i;j<list.size();j++){
if(list.get(i).compareTo(list.get(j))>0){
T temp=list.get(i);
list.set(i,list.get(j));
list.set(j,temp);
}
}
}
}
}
class ComByLen<String> implements Comparator<String>
{
public int compare(String s1,String s2){
int temp=s1.length()-s2.length();
return temp==0?s1.compareTo(s2):temp;
}
}][/code]---------- JAVAC ----------
CollectionsDemo2.java:52: 错误: 找不到符号
int temp=s1.length()-s2.length();
^
符号: 方法 length()
位置: 类型为String的变量 s1
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
CollectionsDemo2.java:52: 错误: 找不到符号
int temp=s1.length()-s2.length();
^
符号: 方法 length()
位置: 类型为String的变量 s2
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
CollectionsDemo2.java:53: 错误: 找不到符号
return temp==0?s1.compareTo(s2):temp;
^
符号: 方法 compareTo(String)
位置: 类型为String的变量 s1
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
注: CollectionsDemo2.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
3 个错误输出完成 (耗时 1 秒) - 正常终止
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class CollectionsDemo2
{
public static void main(String[] args){
demo1();
}
public static void demo1(){
List<String> list=new ArrayList<String>();
list.add("ags");
list.add("edn");
list.add("afdb");
list.add("adsn");
list.add("ab");
System.out.println(list);
mySort(list);
//Collections.sort(list);
System.out.println(list);
mySort2(list,new ComByLen());//Collections.sort(list,new ComByLen());
System.out.println(list);
}
public static <T> void mySort2(List<T> list,Comparator<? super T> com){
for(int i=0;i<list.size()-1;i++){
for(int j=i;j<list.size();j++){
if(com.compare(list.get(i),list.get(j))>0){
T temp=list.get(i);
list.set(i,list.get(j));
list.set(j,temp);
}
}
}
}
public static<T extends Comparable<? super T>> void mySort(List<T> list){
for(int i=0;i<list.size()-1;i++){
for(int j=i;j<list.size();j++){
if(list.get(i).compareTo(list.get(j))>0){
T temp=list.get(i);
list.set(i,list.get(j));
list.set(j,temp);
}
}
}
}
}
class ComByLen<String> implements Comparator<String>
{
public int compare(String s1,String s2){
int temp=s1.length()-s2.length();
return temp==0?s1.compareTo(s2):temp;
}
}
---------- JAVAC ----------
CollectionsDemo2.java:52: 错误: 找不到符号
int temp=s1.length()-s2.length();
^
符号: 方法 length()
位置: 类型为String的变量 s1
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
CollectionsDemo2.java:52: 错误: 找不到符号
int temp=s1.length()-s2.length();
^
符号: 方法 length()
位置: 类型为String的变量 s2
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
CollectionsDemo2.java:53: 错误: 找不到符号
return temp==0?s1.compareTo(s2):temp;
^
符号: 方法 compareTo(String)
位置: 类型为String的变量 s1
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
注: CollectionsDemo2.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
3 个错误输出完成 (耗时 1 秒) - 正常终止