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