将传递的类的属性获取到参数Java中

将传递的类的属性获取到参数Java中,java,Java,我是Java新手,正在尝试为验证构建一个验证器类。概念是我想从使用它的地方传递类,在validator类中,我需要获取类,然后需要验证属性。所以,我已经完成了这项工作,但是我没有得到传递类的属性以及如何将该类传递到其中 public class Validator { private String Username = null; private String Email = null; private String Password = null; public static

我是Java新手,正在尝试为验证构建一个验证器类。概念是我想从使用它的地方传递类,在validator类中,我需要获取类,然后需要验证属性。所以,我已经完成了这项工作,但是我没有得到传递类的属性以及如何将该类传递到其中

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?
  }
}

您需要将
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;
    }
}
public void init(Class类)抛出实例化异常,IllegalAccessException{
Object class1=Class.newInstance();
//检查它是否是验证器的实例
if(验证程序的class1实例){
//将其转换为验证器
用户名=((验证程序)类别1)。用户名;
}
}

最后,我找到了一种更好的处理方法,我使用了,因此我的验证方法是:

public static boolean validate(HashMap<String, String> VObject) {
  //Code goes here
}
公共静态布尔验证(HashMap VObject){
//代码在这里
}
在第二节课上,我必须使用它,我有:

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)
HashMap VObject=newhashmap();
put(“Username”,this.Username.getText());
put(“Email”,this.Email.getText());
put(“Password”,this.Password.getText());
Validator.validate(VObject)

我现在可以获取字段并在任何地方使用它,而且这个解决方案比传递整个类要好得多。

它从不输入if condition
class
Validator.validate(class)
?传递
class
时会给我错误,所以我传递了
Object.class
你能告诉我传递什么吗?如果你把
Object
作为类传递,那么它永远不会进入里面,因为它不是验证程序的类型。我不确定你到底想实现什么。我需要传递当前的类实例,然后我想获取该类并获取传递的类的属性,然后将验证程序类属性(如Username)初始化为传递的类属性,传递的类属性也有Username。验证程序通常会验证现有对象,而不是创造它们。你根本不应该使用类对象。你能告诉我另一种方法吗?我还使用了
对象
,它也不起作用
public void validate(User User)
,假设要验证的对象类型为User。如果没有,请将其替换为您实际验证的类型。这里的类型让我感到困惑,因为我有3个类,在所有这3个类中,我需要使用
validate
方法,那么我需要做什么?接口是否可行?是的,如果三个类都有要验证的通用get方法,则可以使用接口。不要重新发明轮子,请使用诸如
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)