检查给定的字符串是否表示基本类型

时间:2018-02-28 09:42:21

标签: java

我有一个接受字符串并尝试使用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(","));
    // ...
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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