检查java中的命名约定

时间:2010-04-13 19:57:24

标签: java reflection

通过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中。

2 个答案:

答案 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?