[英]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.