簡體   English   中英

獲取給定字符串的 Class 名稱

[英]Get Class Name for the given String

我有一個用例,我在 DB 中存儲了 Java 數據類型列表,如字節、字符、Integer、Long、BigDecimal、BigInteger、Z27226C864BAC7454A8504F8EDB1。

所以我的用例就像如果我讀取值 Long,我需要創建 Long.class,如果我讀取 String,然后是 String.class。

Class cls = Class.forName("java.lang.Long);,然后我可以將 cls 用於我自己的目的。

我可以通過使用上述數據類型的枚舉來實現這一點,只要我從數據庫中讀取值,我就會將值傳遞給枚舉以獲取 class 類型。 但我不知道它是否有效。 Java 中是否存在任何方法,對於給定的字符串(沒有完全限定的名稱),它應該返回 class 類型。

存儲對 Class object 的引用是有效的,但使用 Class object 進行反射可能會很昂貴。 如果您只是使用 Class 作為參考,那么您很好。

enum Decodable {
    BIG_INTEGER(BigInteger.class),
    INTEGER(Integer.class)
    // etc

    private final Class<?> decodableClass;

    private Decodable(Class<?> decodableClass) {
        this.decodableClass = decodableClass;
    }
}

您也可以只維護一組 Class 對象。

private static final Set<Class<?>> DECODABLE_CLASSES = ImmutableSet.of(Integer.class, BigInteger.class); //etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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