通过java反射如何检查方法名是否在camelCase中? e.g。
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中。
答案 0 :(得分:5)
这个问题定义不明确。很容易检查一串字母是以小写字母([a-z][a-zA-z]*
)开头,还是将它们切成大写字母的位置(参见例如How do I convert CamelCase into human-readable names in Java?)并验证它们是来自某些字典的单词,以及这样的事情,但除非你被告知在哪里寻找大箱,否则几乎不可能检查一个字符串是否是一个语义上合适的骆驼案例。
bitterAFlop
是一个合适的骆驼案吗?也许它应该是bitTeraflop
?getLinenUmber
怎么样? (是的!"umber"是一个词!)答案 1 :(得分:1)
使用正则表达式检查它是否与camelCase匹配。相关回答:What Perl regex can match CamelCase words?