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 с другими частями проекта. Затем остальная часть системы получает доступ к конфигурации через предоставленный класс вместо того, чтобы иметь дело с именами ключей, и не нужно беспокоиться о том, где происходит конфигурация. Затем вы можете заменить этот класс на макет, когда вы тестируете вызывающих, и зависимость от файловой системы исчезает. С другой стороны, очень приятно получать все записи строго типизированным способом.

Таким образом, эта проблема является проблемой генерации кода за кулисами, она не имеет никакого отношения к среде выполнения. Но генерация кода с использованием чего-то внешнего вместо аннотаций мне не показалась приятной. Хотя я не очень хорошо знаком с аннотациями, я думаю, что этого можно достичь (но я буду иметь в виду, что аннотации не могут генерировать классы как точки Макдауэлла)

Ответы на вопрос(8)

Ваш ответ на вопрос