gpt4 book ai didi

java - 抽象类中的通用实例变量

转载 作者:行者123 更新时间:2023-11-30 06:01:33 26 4
gpt4 key购买 nike

我想创建父/抽象类来强制子类声明变量。

例如我有 2 个抽象类

public abstract class Key {  <something> }
public abstract class Value { <something> }

现在为上面创建子项。

public class ChildKey extends Key { <something> }
public class ChildValue extends Value { <something> }

我想创建一个可能看起来像这样的 Result 类

public abstract class Result {
protected <T extends Key> key;
protected <T extends Value> value;
}

这样我就可以创建 Result 的子级,例如

public class ChildResult extends Result {
public ChildKey key; // this should be forcible
public ChildValue value; // Same as above
<some method>
}

我尝试了多种方法,但没有成功。

有什么想法可以实现这一目标吗?

最佳答案

你可以这样做:

public abstract class Key {
}

public abstract class Value {
}

public class ChildKey extends Key {

}
public class ChildValue extends Value {

}

public abstract class Result<K extends Key, V extends Value> {
protected final K key;
protected final V value;

protected Result(K key, V value) {
this.key = key;
this.value = value;
}
}

public class ChildResult extends Result<ChildKey, ChildValue> {

public ChildResult(ChildKey key, ChildValue value) {
super(key, value);
}
}

关于java - 抽象类中的通用实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52186975/

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