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

问题描述 投票:2回答:2

我有一个方法接受一个字符串,并尝试使用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(","));
    // ...
}
java
2个回答
1
投票

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


0
投票

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

Set<String> names = Primitives.allPrimitiveTypes().stream().map(Class::getName).collect(toSet());
if (names.contains(returnType)) {
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.