这是我的第一篇文章。这是针对 Java 7 的。
有人可以告诉我为什么我无法访问 CompareIpaddress 类中的“first.a”吗? (我不确定为什么 SOF 不允许我发布此内容,除非我输入更多内容...)这是否足够填充?
谢谢, 戈登
import java.util.Comparator;
import java.util.*; // just in case i need it.
import java.util.TreeSet;
public class CompareIpaddress <IPaddress >implements Comparator<IPaddress>
{
/************************************************compare()**/
public int compare (IPaddress first, IPaddress second)
{
if( first.a < second.a )
{
return -1;
}
}
}
import java.util.Comparator;
import java.util.*;
import java.util.TreeSet;
public class IPaddress
{
public int a, b, c, d;
IPaddress (int a, int b, int c, int d)
{
this.a=a;
this.b=b;
this.c=c;
this.d=d;
}
public int getA()
{
return a;
}
}
最佳答案
public class CompareIpaddress <IPaddress >implements Comparator<IPaddress>
您使 IPaddress
成为 CompareIpaddress
的类型参数,因此它是任何类型,而不是同名的类。
因为不是每个类都有一个可访问的成员a
,所以编译器找不到这个符号。
public class CompareIpaddress implements Comparator<IPaddress>
才是正确的做法。
(您还需要为其他情况返回一个值,但我想您刚刚针对问题将其减少了。)
关于java - 停留在比较器<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16748039/