如何知道字符串的值是否为Java数据类型



我有一个像这样的字符串TMP: String tmp = "value";我想知道tmp的值是否是Java中的数据类型,在这种情况下不是因为"值"不同,然后是" int"或" double" ...但是,如果tmp保持" int",则是数据类型。我想知道如何检查此问题,如果数据类型的Java列举,请提及它。

java本身没有内置的原始数据类型列表(至少不是我知道(,但是幸运的是,它是一个小且封闭的列表,因此您可以只是自己创建。对于任何非重要性类,您可以尝试在其上调用Class.forName

private static final Set<String> PRIMITIVES = 
    new HashSet<>(
        Arrays.asList("byte", "char", "short", "int", "long", "float", "double", "boolean"));
public static boolean isType(String s) {
    if (PRIMITIVES.contains(s)) {
        return true;
    }
    try {
        Class.forName(s);
    } catch (ClassNotFoundException ignore) {
        retrun false;
    }
    return true;
}

最新更新