例如,命名变量或类必须遵守某些规则(例如不允许关键字或保留字作为标识符)。
我真的不想编码我自己的方法来做这样的事情。java有内置的东西吗?
我的目标是构建表达式生成器/代码生成器。它将识别用户指定的变量,这些变量必须符合java的标识符规则,或者向用户提供一个警告来重命名他的变量。
发布于 2013-09-07 21:00:39
你会想看看JavaUtils.isJavaKeyword() ..。不过,它不是Java的一部分,而是Apache轴的一部分。
发布于 2018-10-16 17:28:11
要检查单个字符/代码点:
要检查完整标识符,请执行以下操作:
SourceVersion.isIdentifier (允许关键字)SourceVersion.isName (不允许关键字;检查限定名,即com.example.Test是有效的)在Java9中添加了接受SourceVersion的过载。在处理源文件时,请记住标识符的一部分可以是unicode转义。上述方法没有考虑到这一点。
示例:
Main.java
class Main {
// Field 'foo'
private String \u0066oo;
}发布于 2013-09-07 21:18:24
我想我会借用JavaUtils代码:)
static final Collator englishCollator = Collator.getInstance(Locale.ENGLISH);
static final String keywords[] = {
"abstract", "assert", "boolean", "break", "byte", "case",
"catch", "char", "class", "const", "continue",
"default", "do", "double", "else", "extends",
"false", "final", "finally", "float", "for",
"goto", "if", "implements", "import", "instanceof",
"int", "interface", "long", "native", "new",
"null", "package", "private", "protected", "public",
"return", "short", "static", "strictfp", "super",
"switch", "synchronized", "this", "throw", "throws",
"transient", "true", "try", "void", "volatile",
"while"
};
public static boolean isJavaKeyword(String keyword) {
return (Arrays.binarySearch(keywords, keyword, englishCollator) >= 0);
} https://softwareengineering.stackexchange.com/questions/210806
复制相似问题