[英][JAVA]How to get generic class typed name
我想用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;
}
}
將字段添加到您的Node
類
private static final Class<T> type;
並將其添加到您的構造函數簽名中
public Node(Class type) {
this.type = type;
}
最后,在您的Node
類中創建getClassName
方法:
public String getClassName(){
return this.type.getName();
}
編輯:作為一個旁注,您的AbstractNode
類並不是真正必需的(它不執行任何操作),因此Person中的extend
也不是。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.