如何动态生成接口的实现

时间:2012-11-12 17:39:24

标签: java dynamic reflection

假设我有一个为服务器提供连接属性的接口:

public interface ServerConfig {
    String getHostname();

    int getPort();
}

有没有办法在运行时动态创建所述接口的实现类,从某些任意源(应用程序参数,系统属性,外部配置文件等)返回值?

更具体地说,假设有一个.properties文件,其中包含以下内容:

hostname = localhost
port = 80

和方法

ServerConfig fromFile(String filename);

调用此方法应返回动态生成的ServerConfig实现的实例,该实现将返回.properties参数中指定的filename文件的值。

澄清:

目标是能够添加其方法将返回外部源(即.properties文件)中指定的值的其他接口,而无需每次手动实现它们。一个简单的解决方案将创建接口的实现,这些接口返回与被调用的接口方法名称相匹配的属性值,即调用getHostname()将返回hostname属性的值,从中调用getBla()其他一些接口会查找并返回bla属性的值等。

1 个答案:

答案 0 :(得分:2)

你不需要做那样的事 您可以编写一个实现接口的普通类,并将文件名作为构造函数参数。