2013-04-03 61 views
0

我想在一個單獨的類中保留所有的驗證方法(電話號碼驗證,數字驗證),並讓其他類通常訪問驗證方法。如何執行此操作?請有人能幫助我。Java,將參數從一個類傳遞到其他類

class Validation { 

    public static boolean validateQty(String txt) { 

     String regx = "^0([1-9]){2}([0-9]){7}$"; 
     Pattern compile = Pattern.compile(regx, Pattern.CASE_INSENSITIVE); 
     Matcher matcher = compile.matcher(txt); 
     return matcher.find(); 
    } 

    public static boolean validateLetters(String txt) { 

     String regx = "[a-zA-Z]+\\.?"; 
     Pattern pattern = Pattern.compile(regx, Pattern.CASE_INSENSITIVE); 
     Matcher matcher = pattern.matcher(txt); 
     return matcher.find(); 
    } 

}

class ItemDetails { 

    private void addItem() { 
     boolean b = validateLetters(txtItemName.getText()); // I want to pass txtItemName value to Class Validation's validateLetters() 
     boolean c = validateQty(txtQty.getText()); 
    } 

}

+1

Validation.validateLetters(txtItemName.getText()); ??? – jsedano

回答

1

由於這些都是你可以像這樣訪問

boolean b = Validation .validateLetters(txtItemName.getText()); 
     boolean c = Validation .validateQty(txtQty.getText()); 

,或者創建驗證

的對象
Validation v=new Validation(); 

boolean b = v .validateLetters(txtItemName.getText()); 
     boolean c =v .validateQty(txtQty.getText()); 
靜態方法
+0

謝謝你的回覆。我設法修復它。 thnx很多。 – amal

2

由於這些都是靜態方法,你可以通過在前面的類名稱他們爲:

boolean b = Validation.validateLetters(txtItemName.getText()); 
    boolean c = Validation.validateQty(txtQty.getText()); 

您也可能會發現它有用到整個項目傳遞給一個validate()方法。

+0

非常感謝您的快速回復。我明白。有用。 – amal

+0

對不起,我沒有得到。你能否解釋一下如何將整個項目傳遞給一個validate()方法。請 – amal

+0

您可以定義一個新的類Item來保存一個項目的所有屬性。定義一個方法Validation.validate(Item item),爲項目執行所有必要的驗證。 –

1
boolean b = Validation .validateLetters(txtItemName.getText()); 
boolean c = Validation .validateQty(txtQty.getText()); 

由於您在Validation類方法validateLetters和validateQty中的方法是靜態的,所以可以這樣調用它。否則,您必須先創建驗證實例。像

Validation v = new Validation(); 
boolean b = v.validateLetters(txtItemName.getText()); 
boolean c = v.validateQty(txtQty.getText()); 
相關問題