这是在java中使用instanceof关键字验证的正确方法吗?我可以不使用这个关键字的||运算符吗?我看到我正在编写if条件以检查是否FieldName <= 0,也当我检查它是否等于null或空。谁能帮我写下面这段代码的正确方法。谢谢你。
public static boolean validation(Object FieldName, String Name) {
if(FieldName instanceof Integer) {
if ((int) FieldName < = 0) {
errorCode = "EXCEPTION";
errorMsg = "Required field " + Name + " was not provided";
logger.debug(Name+ " is null ");
return true;
}
else {
}
}
else if (FieldName instanceof String) {
if(FieldName == null || FieldName.equals("")) {
errorCode = "EXCEPTION";
errorMsg = "Required field " +Name+" was not provided";
logger.debug(Name+" is null ");
return true;
}
//Here I check the fields for null or empty
}
为什么不使用两个方法,一个接受Integer并对其进行验证,另一个验证string ?那样会更简单吗?
这一行需要改为
if (((int) FieldName) <= 0) {
当你不把括号完全括起来时,编译器仍然会认为它是一个对象而不是整数。
试试这个。
public static boolean validation(Object FieldName, String Name) {
if (FieldName instanceof Integer) {
if (((Integer)FieldName) <= 0) {
//an integer <= 0
return true;
} else {
// an integer >= 0
return true;
}
} else if (FieldName instanceof String) {
if (FieldName == null || FieldName.equals("")) {
// a String empty or null
return true;
}
else {
// a String non empty
return true;
}
}
return false;
}