首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取给定字符串的类名

获取给定字符串的类名
EN

Stack Overflow用户
提问于 2020-05-20 22:50:02
回答 1查看 44关注 0票数 0

我有一个用例,其中我在DB中存储了Java数据类型的列表,如字节、字符、整数、长整型、BigDecimal、BigInteger、布尔型。

所以我的用例是,如果我读取值Long,我需要创建Long.class,如果我读String,则创建String.class。

Class cls = Class.forName("java.lang.Long);,那么我就可以自己使用cls了。

我可以做到这一点,通过使用上述数据类型的Enum,当我从db中读取值时,我将该值传递给enum以获取类类型。但我不知道它是否有效。对于给定的字符串(没有完全限定名),Java中是否有任何方法可以返回类类型。

EN

回答 1

Stack Overflow用户

发布于 2020-05-20 22:52:14

存储对Class对象的引用是有效的,但使用Class对象进行反射可能会耗费大量资源。如果你只是使用这个类作为参考,那就没问题了。

代码语言:javascript
运行
复制
enum Decodable {
    BIG_INTEGER(BigInteger.class),
    INTEGER(Integer.class)
    // etc

    private final Class<?> decodableClass;

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

您也可以只维护一组Class对象。

代码语言:javascript
运行
复制
private static final Set<Class<?>> DECODABLE_CLASSES = ImmutableSet.of(Integer.class, BigInteger.class); //etc
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61916136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档