我想知道是否有比其他非可见类中的静态哈希映射更有效的方法来存储接口实例(如果不能保证实现)的值(如字段)。
示例:
public interface myInterface {
public default Object getMyVariable() {
return Storage.data.get(this);
}
}
final class Storage {
static HashMap<myInterface, Object> data = new HashMap<myInterface, Object>();
}
答案 0 :(得分:0)
这一切都是不好意思-您抽象地了解实现。界面的重点是引入抽象-并获得 rigit 设计的基础。
您可以这样定义接口:
public interface MyInterface {
default Object getMyVariable() {
return getDefaultObject();
}
Object getDefaultObject()
}
您可以看到我添加了 required 方法getDefaultObject()
-所有实现都必须实现。但是,如果您已经有实现类,并且无法对其进行控制,则此方法将无效。