【问题标题】:Cannot invoke equals(long) on the primitive type long [closed]无法在原始类型 long 上调用 equals(long) [关闭]
【发布时间】:2014-04-24 02:08:59
【问题描述】:

我无法将equals 与长值一起使用:

    long a = 20; //or 20L
    long b = 20; //or 20L
    if(a.equals(b)) {
        //do
    }

错误:无法在原始类型 long 上调用 equals(long)

== 也不适用于长值。

如何检查长值是否等于?

【问题讨论】:

  • if(l1 == 2) 试试这个方法
  • 您可以检查 == 的原始数据。
  • 为什么你认为== 在比较长值时不起作用?
  • 这不是您在SO 或google 上找不到的问题。此类问题请先搜索stackoverflow.com/a/8671419/1141395

标签: java android equals equals-operator


【解决方案1】:

== 确实适用于长值。

【讨论】:

    【解决方案2】:

    == 运算符用于比较primitive 值和equals() 方法用于比较Object

    既然long 是原始类型,那么您必须对原始类型数据使用== 运算符,如下所示...

    if(a == b ) {
        //do
    }
    

    equals() 用于比较 2 个ObjectLongObject 类型的long。如果您将您的实例声明为Long 类型,那么您可以使用equals() 方法,如下所示...

    Long a = 20;
    Long b = 20;
    
    if(a.equals(b)) {
        //do
    }
    

    【讨论】:

      【解决方案3】:

      对于primitive data types,您应该使用==

      对于objects,您应该使用equals 函数。

      在你的情况下是:

      long a = 20; //or 20L
      long b = 20; //or 20L
      if(a == b) {
          //do
      }
      

      【讨论】:

        【解决方案4】:

        == 适用于long,如果你想使用equals

        Long a = new Long(20);
        Long b = new Long(20);
        if(a.equals(b)) 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多