java - 如何动态生成接口(interface)的实现

标签 java dynamic reflection

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

public interface ServerConfig {
    String getHostname();

    int getPort();
}

是否有任何方法可以在运行时动态创建所述接口(interface)的实现类,该实现类将从任意源(应用程序参数、系统属性、外部配置文件等)返回值?

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

hostname = localhost
port = 80

和方法

ServerConfig fromFile(String filename);

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

澄清:

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

最佳答案

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

关于java - 如何动态生成接口(interface)的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13348629/

相关文章:

dynamic - 如何在动态 Highcharts 图表的 y 轴上放置图标?

java - @ManyToMany 与 EclipseLink 2.5.2 和 Jackson 2.4.4

java - 自动将构造的每个 Class 对象添加到 ArrayList 中

java - 我需要请一名打字导师,从哪里开始?

c# - 为什么 ExpandoObject 不能按预期工作?

c++ - 关于C++中动态多维数组的结构的一个小问题

java - 从静态方法引用获取类名

java - 封闭类与声明类

java - 是否可以使用Jackson从Pojo获取值(value)

java - SQL Developer每次随机崩溃