[英]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.