这个布尔方法怎么了?

1 java methods boolean return equals

嗨,我有这个创建的方法.它的工作是接收一个整数A,它可以是10或30.如果值为10则返回TRUE,否则返回false.

public static boolean checkStatus(int a){
        if(a.equals(10)){
              return true;
        }
      return false;
    }
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我在if(a.equals(10))条件中得到了编译错误,该条件表示INT无法进行相应的转换.如果我没弄错的话,在这种情况下,不是.equals()方法吗?

谢谢你的帮助!

Kon*_*Kon 8

在Java中基元(int,long,float,等)不具有成员方法,因此呼叫

if (a.equals(10))
Run Code Online (Sandbox Code Playgroud)

因为你试图取消引用一个原语,所以不会编译.相反,您希望使用==运算符来比较原始值:

if (a == 10)
Run Code Online (Sandbox Code Playgroud)

并保留使用equals()非原始方法Objects


pax*_*blo 5

您可以使用equals对象,但一个int原始类型(A) ,而不是一个对象.

因此你需要这样的东西:

public static boolean checkStatus (int a) {
    if (a == 10)
        return true;
   return false;
}
Run Code Online (Sandbox Code Playgroud)

或者更短更敏感(在这种情况下):

public static boolean checkStatus (int a) {
    return (a == 10);
}
Run Code Online (Sandbox Code Playgroud)

(a)纯粹主义者会争辩说这证明Java并不是一种真正的面向对象的语言,但那是因为它们是狂热的狂欢:-)