2015-07-10 53 views
1

這是在java中使用instanceof關鍵字進行驗證的正確方法嗎?我不能使用||運算符與此關鍵字?我看到的錯誤在我寫的if條件來檢查FieldName < = 0以及我是否檢查它是否等於null或空。任何人都可以幫我用正確的方式寫下面的代碼。謝謝。如何使用instanceof關鍵字Java

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 
} 
+1

問題可能是一個語法錯誤,應該不會是'改變,如果和其他身體<=''但<=' – user140547

回答

0

爲什麼不能有兩個方法,一個需要一個整數並驗證它,另一個驗證字符串?這會更簡單嗎?

+0

爲什麼你的答案的問題? :) – Pshemo

+0

我希望通過一種單一的驗證方法來簡化它。有什麼建議麼? – zebango45

+1

哦。一種方法,完成所有。這不僅僅是面向對象的原因。 –

0

線需要被改變,以

if (((int) FieldName) <= 0) { 

當你不把周圍的投括號完全編譯器仍然會認爲這是一個對象,而不是一個整數。

+0

它仍然給我一個錯誤,指出「不能從對象轉換爲int」 – zebango45

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; 
}