【发布时间】:2020-06-03 17:51:52
【问题描述】:
我有一个 Java 类,它表示要发送给第三方的数据数组:
import java.util.List;
abstract class DataToSend<T> {
private T value;
public T getValue() { return value; }
}
public class ListToSend extends DataToSend<List> {
// ...
}
我无法更改DataToSend,并且ListToSend 必须扩展DataToSend。
第三方允许此列表包含整数、浮点数、布尔值或字符串,并允许混合这些类型。我该如何执行?
例如,我可以使用原始的 List 或 List<Object>,但这样就可以让例如将地图放在列表中 - 我不想要这个。
我也可以像这样定义一个“ListElement”类:
class ListElement {
private int a;
private float b;
private boolean c;
private String d;
}
然后说ListToSend extends DataToSend<List<ListElement>。
有更好的选择吗?
【问题讨论】:
-
ListToSend不应重新定义value和getValue()。 -
@Kayaman 啊,是的,谢谢。
-
根据您的需要,您可以让您的
ListElement持有Object,并为特定类型提供构造函数。有 4 个变量,其中 3 个始终未使用,处理起来会很复杂。