繁体   English   中英

获取传递的class的属性到参数Java

[英]Get properties of the passed class into the parameter Java

我是 Java 的新手,并试图构建一个验证器 class 进行验证。 这个概念是我想从我使用它的地方传递 class 并在验证器 class 中我需要获取 class 然后需要验证属性。 所以,我已经这样做了,但是我没有得到传递的 class 的属性以及如何将 class 传递给它?

public class Validator {
  private String Username = null;
  private String Email = null;
  private String Password = null;

  public static void validate(Class<?> Class) throws InstantiationException, IllegalAccessException {
    Validator Validator = new Validator();
    Validator.init(Class);
  }

  public void init(Class<?> Class) throws InstantiationException, IllegalAccessException {
    Object class1 = Class.newInstance();
    Username = class1.Username; // <-- How to get properties of the passed class?
  }
}

这就是我通过 Class 但它不起作用的方式:

Validator.validate(class);

最后,我找到了更好的处理方法,我使用了 HashMap ,所以我的验证方法是:

public static boolean validate(HashMap<String, String> VObject) {
  //Code goes here
}

在第二个 class 中,我必须使用它,我有:

HashMap<String, String> VObject = new HashMap<>();
VObject.put("Username", this.Username.getText());
VObject.put("Email", this.Email.getText());
VObject.put("Password", this.Password.getText());
Validator.validate(VObject)

我现在可以获取字段并在我想要的任何地方使用它,而且这个解决方案更好,而不是传递整个 class。

您需要将Class1转换为Validator类型。

public void init(Class<?> Class) throws InstantiationException, IllegalAccessException {
    Object class1 = Class.newInstance();
    // Check whether it's an instance of Validator
    if(class1 instanceof Validator){
        // Cast that to validator
        Username = ((Validator)class1).Username;
    }
}

暂无
暂无

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

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