我想用java反射在String值中获取E类名。 例如,如果我创建在Person中键入的Node,则getClassName()必须返回“Person”
有人可以帮帮我吗?public class Node<E extends AbstractNode> {
String getClassName() {
String name = ??
}
private String alias;
public Node() {
}
}
public abstract class AbstractNode {
}
public class Person extends AbstractNode {
private String name;
private String surname;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
}
答案 0 :(得分:0)
在Node
班级
private static final Class<T> type;
并将其添加到构造函数签名
public Node(Class type) {
this.type = type;
}
最后,在getClassName
课程中创建Node
方法:
public String getClassName(){
return this.type.getName();
}
编辑:
作为旁注,你的AbstractNode
类并不是必需的(它没有做任何事情),因此extend
也不是人。