繁体   English   中英

如何从另一个班级上一个班级

[英]How to call a class from another class

我在所有三个类中的java,B.java,C.java中都对特定字符串进行了相同的验证。 是否可以编写单个类并在需要时在类中作为方法调用它,下面是对我分别在以上三个类中使用的移动电话号码的验证。

A.java

mobile = (EditText) findViewById(R.id.app_mobile);

String ap_Mobile_No = mobile.getText().toString();

if (ap_Mobile_No.equals(null) || (ap_Mobile_No.length() != 10) || ap_Mobile_No.startsWith("0")){
    mobile.setError("E");

    result = false;
}

B.java

EditText mobile = (EditText) findViewById(R.id.gua_mobile);

String gu_Mobile_No = mobile.getText().toString();
if (gu_Mobile_No.equals("") || gu_Mobile_No.length() != 10 || gu_Mobile_No.startsWith("0")) {

    mobile.setError(ssbuilder);
    result = false;
}

您可以为此验证创建Class并使用Method调用该类;

public class Validation
{

   public static boolean checkValidation(arguments)
   {
       check your validation here.

        return true or false;
   }

}

是的你可以。 创建一个类可以说Validator.java创建静态方法validate,该方法根据成功和失败返回布尔值。 并在任何地方调用函数

 Validatorn.validate(<arguments>)

所以你的班级变成

public final class Validator {

   public static boolean validate(final EditText mobile) {
       boolean isSuccess = true;
       String gu_Mobile_No= mobile.getText().toString();
       if (gu_Mobile_No.equals("") || gu_Mobile_No.length() != 10 || gu_Mobile_No.startsWith("0")) {
          mobile.setError(ssbuilder);
          isSuccess = false;
       }
       return isSuccess;
   }
}

现在,类A.java成为

mobile = (EditText) findViewById(R.id.app_mobile);
if(Validator.validate(mobile)) {
    return false;
}

并且类B.java成为

EditText mobile = (EditText) findViewById(R.id.gua_mobile);
if(Validator.validate(mobile)) {
    return false;
}

是的,您可以编写单个类进行验证。 将验证器方法添加为静态方法,并从其他类中调用它。

-您可以尝试使用静态方法和静态变量创建一个class ,然后在所需的任何类中调用它。

-或者,您也可以使用Singleton Pattern

是的,一个简单的解决方案是在MobileValidator类中创建一个静态方法。 静态方法只是做到这一点的一种方法。

public class MobileValidator {


public static boolean isValid(EditText mobile) {

    String gu_Mobile_No = mobile.getText().toString();
    if (gu_Mobile_No.equals("") || gu_Mobile_No.length() != 10 || gu_Mobile_No.startsWith("0")) {
       return false;
    }
    return true;
}

}

然后在A / B类中使用它

例如

boolean valid = MobileValidator.isValid(mobile);
if(!valid) {
  // do something
}

创建一个Utility类,并实现用于手机号码验证的方法,然后在任意位置调用它。 请确保将方法标记为静态。 这样可以避免每次验证手机号码时都创建新实例

怎么样,创建一个像下面这样的类

public class Validate{
  public static boolean ValidateString(String validateString){
    return (validateString.equals("") || validateString.length() != 10 || validateString.startsWith("0"));
  }
} 

然后,在您的代码中,您可以

A.java

 mobile = (EditText) findViewById(R.id.app_mobile);

    String ap_Mobile_No = mobile.getText().toString();

    if (Validate.ValidateString(ap_Mobile_No)==false)
     {
       mobile.setError("E");
       result = false;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM