繁体   English   中英

检查给定的字符串是否代表原始类型

[英]Check if given string represents a primitive type

我有一个接受字符串并尝试使用Class.forName()将其转换为类的方法。 我想在调用此方法之前检查字符串是否表示原始类型。 除了运行 8 个String.equals调用之外,还有什么方法可以做到这一点吗? 代码:

public String myMethod(String returnType) {
    if(checkPrimitive(returnType))
        return returnType;
    String typeArgs = Arrays.stream(Class.forName(returnType).getTypeParameters())
                    .map(typeVar -> typeVar.getBounds()[0].getTypeName())
                    .collect(Collectors.joining(","));
    // ...
}

您可以使用ClassUtils.getClass(returnType); 来自 apache-commons。 这也考虑了原语,你会给你一个类对象。 然后,您可以在其上调用isPrimitive()

您可以使用 Guava 方法allPrimitiveTypes获取原始类型的所有类对象的列表,然后检查它们的名称:

Set<String> names = Primitives.allPrimitiveTypes().stream().map(Class::getName).collect(toSet());
if (names.contains(returnType)) {
    ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM