0

我想将所有验证方法(电话号码验证、数字验证)保留在一个单独的类中,并让其他类共同访问验证方法。我该怎么做?有人可以帮助我吗?

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

}

4

3 回答 3

2

由于这些是静态方法,您可以通过为类名添加前缀来调用它们:

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

您可能还会发现将整个项目传递给单个 validate() 方法很有用。

于 2013-04-03T15:14:11.900 回答
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());
于 2013-04-03T15:13:57.183 回答
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());
于 2013-04-03T15:16:46.617 回答