这是我的第一篇文章。这是针对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>


是正确的方法。

(对于其他情况,您还需要返回一个值,但我想您已经将其缩减为该问题了。)

07-24 09:18