首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡住在Comparator<T>上

卡住在Comparator<T>上
EN

Stack Overflow用户
提问于 2013-05-25 17:08:44
回答 5查看 98关注 0票数 2

这是我的第一篇文章。这是针对Java 7的。

谁能告诉我为什么我不能访问CompareIpaddress类中的"first.a“?(我不知道为什么SOF不允许我发布这篇文章,除非我输入更多的东西...)这个填充物够了吗?

谢谢,戈登

代码语言:javascript
复制
  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;
     }
  }
EN

回答 5

Stack Overflow用户

发布于 2013-05-25 17:17:23

代码语言:javascript
复制
public class CompareIpaddress <IPaddress >implements Comparator<IPaddress>

您将IPaddress设置为CompareIpaddress的类型参数,因此它是任意类型,而不是同名的类。

由于并非每个类都有可访问的成员a,因此编译器找不到该符号。

代码语言:javascript
复制
public class CompareIpaddress implements Comparator<IPaddress>

才是正确的方式。

(对于其他情况,您也需要返回值,但我认为您在这个问题中已经减少了返回值。)

票数 5
EN

Stack Overflow用户

发布于 2013-05-25 17:17:32

删除public class CompareIpaddress <IPaddress> implements Comparator<IPaddress>中的类型参数IPaddress。通过这种方式,您可以使用一个类型参数来隐藏类名IPaddress

实际上,这里根本不需要类型参数。将其更改为public class CompareIpaddress implements Comparator<IPaddress>,一切都会正常。

票数 2
EN

Stack Overflow用户

发布于 2013-05-25 17:15:42

代码语言:javascript
复制
 public int compare (IPaddress first, IPaddress second)
 {
   if( first.a < second.a )
   {   
      return -1;
   }
 }

这段代码无法编译,因为当您声明一个返回类型为int的方法时,它必须始终返回类型为的int。目前,它只在first.a小于second.a时返回值。您应该添加一些其他情况,以涵盖所有可能发生的情况:

代码语言:javascript
复制
if(first.a < second.a) 
{
    return -1;
}
else if(first.a > second.a)
{
    return 1;
}
else
{
    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16748039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档