簡體   English   中英

[JAVA]如何獲取通用類的鍵入名稱

[英][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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM