簡體   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