2

我正在使用 Java 不可变库http://immutables.github.io/ 我有 3 个不可变类,所以基本上是 3 个带有一堆参数的类。对于这些类中的每一个,我们都有一个唯一的键。

所以,我决定定义一个这样的接口:

public interface DataKey<T> {
    public T getKey();
}

现在,我希望每个 Immutable 类都实现这个接口,这里是一个例子

@Value.Immutable
public abstract class CurrencyDemo implements DataKey<String> {
    public abstract String getCode();

    @Value.Derived
    public String getKey() {
        return getCode();
    }

}

这一切正常。我之所以能够做到这一点,是因为我知道我应该为 getKey 提供一个实现,否则在构建 Immutable java 对象时我会得到一个异常。

有没有办法强制用户在定义实现 DataKey 接口的不可变类时强制开发人员提供 getKey() 的实现?

目的; 我可以在这些不可变类上编写通用代码,并保证它们都有一个名为 getKey() 的方法

4

0 回答 0