Java 如何动态生成接口的实现
假设我有一个为服务器提供连接属性的接口:Java 如何动态生成接口的实现,java,dynamic,reflection,Java,Dynamic,Reflection,假设我有一个为服务器提供连接属性的接口: public interface ServerConfig { String getHostname(); int getPort(); } 是否有任何方法可以在运行时动态创建所述接口的实现类,该类将从某些任意源(应用程序参数、系统属性、外部配置文件等)返回值 更具体地说,假设有一个.properties文件,其中包含以下内容: hostname = localhost port = 80 和一种方法 ServerConfig fr
public interface ServerConfig {
String getHostname();
int getPort();
}
是否有任何方法可以在运行时动态创建所述接口的实现类,该类将从某些任意源(应用程序参数、系统属性、外部配置文件等)返回值
更具体地说,假设有一个.properties
文件,其中包含以下内容:
hostname = localhost
port = 80
和一种方法
ServerConfig fromFile(String filename);
调用此方法应返回动态生成的ServerConfig
实现的实例,该实现将从参数中指定的.properties
文件返回值
澄清:
目标是能够添加额外的接口,其方法将返回外部源(即.properties
文件)中指定的值,而无需每次手动实现。一个简单的解决方案是创建接口的实现,这些接口返回与被调用的接口方法名匹配的属性值,即调用getHostname()
将返回hostname
属性的值,调用getBla()
从其他接口查找并返回bla
属性的值,等等。您不需要执行类似操作。
您只需编写一个实现接口的普通类,并将文件名作为构造函数参数。是的,接口就是这样,在运行时您可以实例化要实现它的类。我不知道这里的实际问题是什么,你只是问如何使用接口吗?我想在运行时动态生成实现interfaceUse多态性的类?写代码?工厂?开关语句?这些要求令人困惑。请描述你为什么认为你需要这个/你的目标是什么。代码不像魔术。开发人员只需编写代码。创建一个具体的public类properties文件服务器配置实现ServerConfig
,并在调用fromFile()
时返回它的具体实例。