gpt4 book ai didi

java - 通过接口(interface)导入 map key

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:34 25 4
gpt4 key购买 nike

假设我有一个带有 HashMap 数据结构的类:

import java.util.HashMap;
import java.util.Map;

import org.openqa.selenium.By;

public abstract class Data {
protected Map<String, By> identifiers = new HashMap<>();

public By getSelector(String key) {
return identifiers.get(key);
}
}

继承它的3个子类:

public class DataSpecific1 extends Data {
}

public class DataSpecific2 extends Data implements KeysForDataSpecific23 {
}

public class DataSpecific3 extends Data implements KeysForDataSpecific23 {
}

现在我想定义一个接口(interface),仅将 HashMap 键添加到这些子类中的 2 个:

import org.openqa.selenium.By;

public interface KeysForDataSpecific23 {
identifiers.put("key", By.cssSelector("#something"));
}

显然,这会导致编译错误,因为接口(interface)不能从 Data 类继承,并且变量标识符也没有定义。

有什么方法可以在没有冗余的情况下做到这一点,例如在两个受影响的类中添加 put() 行?

最佳答案

现在,您可以在java 8中在界面中使用默认方法

有了这个,您可以执行以下操作:

public interface KeysForDataSpecific23 {
default void setKeys(){
identifiers.put("key", By.cssSelector("something"));
}
}

默认方法可以为接口(interface)提供初始行为。

关于java - 通过接口(interface)导入 map key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com