проверить соглашение об именах в Java - PullRequest
1 голос
/ 13 апреля 2010

через отражение 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.

Ответы [ 2 ]

5 голосов
/ 14 апреля 2010

Эта проблема плохо определена. Легко проверить, начинается ли строка букв со строчных букв ([a-z][a-zA-z]*), или разбить их там, где прописные буквы (см., Например, Как преобразовать CamelCase в понятные человеку имена в Java? ) и убедитесь, что это слова из некоторого заданного словаря и тому подобное, но если вам не сказано, где искать заглавные буквы, почти невозможно проверить, является ли строка семантически правильным верблюжьим регистром или нет.

  • Является ли bitterAFlop правильным верблюжьим чехлом? Может быть, это должно было быть bitTeraflop?
  • А как насчет getLinenUmber? (Да! "Умбер" это слово!)
  • А как насчет слов из других языков?
1 голос
/ 13 апреля 2010

Используйте регулярное выражение, чтобы проверить, соответствует ли оно camelCase. Связанные ответы: Какое регулярное выражение Perl может соответствовать словам CamelCase?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...