Анализ кода: проверьте, доступен ли строковый параметр данной функции в файле *.properties.

Рассмотрим код Java:

ReadProperty.get("info")

И файл my_stettings.properties:

info=Lorem ipsum
server=computer01

Мне было интересно, можно ли использовать инструмент анализа кода (Checkstyle, FindBugs, PMD...), чтобы проверить, доступен ли параметр String моего метода get() в файле my_stettings.properties.

ReadProperty.get("servers") //should produce a warning
ReadProperty.get("server") //is OK

Есть ли у вас какие-либо сведения о том, как я могу этого добиться?


person Jmini    schedule 23.02.2012    source источник


Ответы (2)


Я не знаю ни одного существующего инструмента для этого. Однако на платформе Android используются шаблоны, которые можно использовать для решения вашей проблемы, в данном случае шаблон класса ресурсов R, который создает класс из файлов свойств. Итак, файл my_stettings.properties:

info=Lorem ipsum
server=computer01

должен привести к классу вроде

public final class R {
    public static final int info=1;
    public static final int server=1;
}

В этом случае вы использовали бы его с

ReadProperty.get(R.info);

который не будет компилироваться, если атрибут недоступен.

person ChrLipp    schedule 02.03.2012

Я не думаю, что это возможно или стоило бы развивать эту функциональность.

ReadProperty.get() должен возвращаться с null или генерировать исключение (например, IllegalArgumentException), если ключ не существует в файле свойств, а модульные тесты должны проверять, что клиенты ReadProperty работают правильно (например, правильно обрабатывают возвращаемые значения null).

person palacsint    schedule 23.02.2012