我有一个如下所示的布尔方法
public boolean validID(String personalNumber) { .... }
我想根据布尔值是true还是false来打印字符串“有效”或“无效”。
问题是如何在布尔方法中打印出字符串。即使if陈述为true,下面的代码也始终返回false。
if (sum % 10 == 0) {
return Boolean.parseBoolean("is valid");
} else {
return false;
}
答案 0 :(得分:2)
您只有两个选择:
一种boolean
方法:
public boolean validID(String personalNumber) {
// ... code to compute 'sum'
return sum % 10 == 0;
}
一种String
方法:
public String validID(String personalNumber) {
// ... code to compute 'sum'
if (sum % 10 == 0) {
return personalNumber + " is valid";
} else {
return personalNumber + " is not valid";
}
}
或者将两者结合在一起的选择,将String
称为boolean
之一:
public boolean isValidId(String personalNumber) {
// ... code to compute 'sum'
return sum % 10 == 0;
}
public String validID(String personalNumber) {
if (isValidId(personalNumber)) {
return personalNumber + " is valid";
} else {
return personalNumber + " is not valid";
}
}
我建议采用boolean
,最好是让该方法找到personalNumber
的有效性,并让调用它的代码处理结果以打印消息,因为您可以再次使用此方法,这一次您需要布尔结果以不同的方式处理它
String id = "fs6d7f6sd";
if(this.validID(id))
System.out.println("ID is valid");
else
System.out.println("ID is not valid");
答案 1 :(得分:0)
我建议使用bean Result
。
检查我的代码。
class Result {
private boolean value;
private String message;
public Result(boolean value, String message) {
this.value = value;
this.message = message;
}
// getter & setter
}
public Result validID(String number) {
// ... code to compute 'sum'
return sum % 10 == 0 ?
new Result(true, "valid") :
new Result(false, "invalid");
}