java - 如何通过具体类实现的接口(interface)在具体类中强制执行类型构造函数?

标签 java generics interface

让我描述一下情况,我确定我只是错误地考虑了这个问题。我有一个将实现接口(interface)的具体类。我想在契约(Contract)中强制执行该类必须具有特定类型的构造函数。例如:

interface MyInterface {}
public class MyClass implements MyInterface {
    public MyClass(HashMap<String, String> params) {

    }
}

我想确保 MyClass 是用单个 HashMap 参数实例化的,这看起来应该是这样的:

interface MyInterface<T>

除了在方法签名上使用泛型外,我从未将它们用于类或接口(interface),我真的是这方面的初学者,所以请解释解决方案中涉及的任何泛型……或者替代解决方案,如果我我错误地考虑了这一点(从架构上讲)。谢谢!

最佳答案

您不能在 Java 中使用接口(interface)对构造函数强制执行契约。您可以获得的最佳近似是通过为工厂定义一个接口(interface),使用一个采用单个 HashMap...

create() 方法

你也可以用一个构造函数需要一个HashMap的抽象类来替换接口(interface),这将强制子类给一个,但不能更多(子类不一定有一个HashMap参数)。

关于java - 如何通过具体类实现的接口(interface)在具体类中强制执行类型构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1571905/

相关文章:

java - 表示一组整数的 boolean 值数组

generics - 如何让 XStream 很好地输出 Scala 列表?我可以编写自定义转换器吗?

Java 泛型和设计模式 : not parameterizing a reference to a generic type is always a bad thing?

c# - 如何避免在服务层上引用 Entity Framework 的需要?

c# - 如何使用子泛型接口(interface)实现泛型接口(interface)

c# - 在 C# 中使用基本接口(interface)有什么好处

java - 无法使用maven插件在tomcat中启动Spring应用程序

java - Spring WebClient - 响应时记录 Uri 和方法

java - NumberFormatException 无法从文本文件解析字符串`

java - Mongo Java 驱动程序找不到接口(interface)的公共(public)构造函数