Java .properties文件为强类型类

yus*_*suf 8 java annotations properties

有没有办法将属性文件作为强类型类?我想有代码生成器,但使用注释做它会更酷.

我的意思是;

foo.properties file
keyFoo = valuefoo
keyBar = valuebar
Run Code Online (Sandbox Code Playgroud)

也许有

@properties(file="foo.properties")
class foo { }
Run Code Online (Sandbox Code Playgroud)

class foo {
  String getKeyFoo() { }
  String getKeyBar() { }
}
Run Code Online (Sandbox Code Playgroud)

如果不是,我会为此启动一个开源项目吗?

对问题的补充;

认为我们有一个foo.properties文件,可以说超过10个条目; 并认为它被用作一个简单的配置文件.我认为这个配置条目应作为配置类提供,并将相关的getXXX方法提供给设计的其他部分.然后系统的其余部分通过提供的类访问配置,而不是处理密钥名称,并且不需要打扰配置的来源.然后,当您测试调用者并且对文件系统的依赖性消失时,您可以使用模拟替换此类.另一方面,以强类型方式获取所有条目真的很不错.

所以这个问题是幕后的代码生成问题,它与运行时无关.但是使用外部代码而不是注释生成代码对我来说似乎并不好.虽然我不太熟悉注释,但我想这可以实现(但我会记住,注释不能像McDowell那样生成类)

Avi*_*Avi 2

有一个有点类似的项目用于作为静态类型文件进行配置。它需要声明一个接口,但它填充实现本身:

public interface AppConfig extends Config {
    long getTimeout ();
    URL getURL ();
    Class getHandlerClass ();
}
Run Code Online (Sandbox Code Playgroud)