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()方法吗?
谢谢你的帮助!
在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
您可以使用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并不是一种真正的面向对象的语言,但那是因为它们是狂热的狂欢:-)
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |