1.关于获取某个类里的参数、方法问题。
(1)如果反参类型是Objec类型,拿到的类中没有获取类的参数、方法、构造函数这些方法。
Object是所有类的根类,是具体的一个类,使用的时候可能是需要类型强制转换的,但是用T ?等这些的话,在实际用之前类型就已经确定了,不需要强制转换。
(2)使用泛型作为返回类型
关于class<T>和class<?>的区别:
? 表示不确定的java类型。
T 表示java类型。
K V 分别代表java键值中的Key Value。
E 代表Element。
2.获取某类里的属性:
(1)
@Data @Entity public class Reuser { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column private String username; @Column private String name; @Column private Integer age; @Column private BigDecimal balance; }
(2)
public class Test { public static void main(String args[]) { Reuser user = new Reuser(); // System.out.print("user对象的类是:"+user.getClass()); // Object userClass = user.getClass(); Class<? extends Reuser> userClass = user.getClass(); Field[] fields = userClass.getFields(); for(Field filed: fields) { System.out.println("user对象的属性有"+filed); } } }
运行Test,java,控制台什么也没输出,这是什么原因导致的呢?
getFields()方法正获取到用public修饰的成员变量。
参考资料:1.https://www.cnblogs.com/skyislimit/p/5665853.html