use*_*400 5 java generics reflection introspection
我有通用类:
class Field<T> { }
Run Code Online (Sandbox Code Playgroud)
还有一些其他类(我只在运行时知道它的类型)有很多get方法,例如:
class A{
public Date getDate();
public String getName();
public Integer getNumber();
}
Run Code Online (Sandbox Code Playgroud)
我想Field为所有get方法创建类的实例,使用Tequals返回这些get方法的类型.在这个例子中Field<Date>,Field<String>,Field<Integer>.
有人可以帮忙吗?
您通常将反射用于仅在运行时才知道的事情。泛型信息在编译时被删除。因此,虽然在某些情况下可以将两者混合使用,但并不常见。
我想为所有 get 方法创建 Field 类的实例,其中 T 等于这些 get 方法的返回类型。对于此示例,字段、字段、字段。
从字面上回答你的问题:
Field<Date> dateField = new Field<Date>();
Field<String> nameField = new Field<String>();
Field<Integer> numberField = new Field<Integer>();
Run Code Online (Sandbox Code Playgroud)