Java .properties файлы как строго типизированные классы
Есть ли способ получить файлы свойств в виде строго типизированных классов? Я думаю, что есть генераторы кода, но делать это с аннотациями было бы намного круче.
Я имею в виду;
foo.properties file
keyFoo = valuefoo
keyBar = valuebar
может быть с
@properties(file="foo.properties")
class foo { }
становится
class foo {
String getKeyFoo() { }
String getKeyBar() { }
}
если нет, я начну проект с открытым исходным кодом для этого?
ДОПОЛНЕНИЕ К ВОПРОСУ;
Представьте, что у нас есть файл foo.properties, скажем, более 10 записей; и думаю, что он используется в качестве простого файла конфигурации. Я считаю, что эти записи конфигурации должны быть представлены в виде класса конфигурации со связанными методами getXXX с другими частями проекта. Затем остальная часть системы получает доступ к конфигурации через предоставленный класс вместо того, чтобы иметь дело с именами ключей, и не нужно беспокоиться о том, где происходит конфигурация. Затем вы можете заменить этот класс на макет, когда вы тестируете вызывающих, и зависимость от файловой системы исчезает. С другой стороны, очень приятно получать все записи строго типизированным способом.
Таким образом, эта проблема является проблемой генерации кода за кулисами, она не имеет никакого отношения к среде выполнения. Но генерация кода с использованием чего-то внешнего вместо аннотаций мне не показалась приятной. Хотя я не очень хорошо знаком с аннотациями, я думаю, что этого можно достичь (но я буду иметь в виду, что аннотации не могут генерировать классы как точки Макдауэлла)