通过java反射如何检查方法名称是否在camelCase中?
例如
import java.lang.reflect.*;
public class TestClass {
private int simpleMethod(
Object p, int x) throws NullPointerException
{
if (p == null)
throw new NullPointerException();
return x;
}
public static void main(String args[])
{
try {
Class cls = Class.forName("method1");
Method methlist[]
= cls.getDeclaredMethods();
for (int i = 0; i < methlist.length;
i++) {
Method m = methlist[i];
System.out.println("name= " + m.getName());
}
}
catch (Throwable e) {
System.err.println(e);
}
}
}
在这里,我正在获取方法名称simpleMethod和main
我必须检查这些名称是否在camelCase中。
最佳答案
这个问题定义不明确。很容易检查一串字母是否以小写字母([a-z][a-zA-z]*
)开头,或者将它们切成大写字母(例如参见How do I convert CamelCase into human-readable names in Java?),并验证它们是否是某些给定词典中的单词,诸如此类,但是除非告诉您在哪里寻找大写字母,否则几乎不可能检查字符串在语义上是否正确。bitterAFlop
是正确的骆驼案吗?也许应该是bitTeraflop
?
那getLinenUmber
呢? (是的!"umber"是一个单词!)
那其他语言的单词呢?