gpt4 book ai didi

java - 强制调用父类中的特定构造函数

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

我第一次遇到以下情况:

我有following java class :

public class Values extends ArrayList<Object>{
public Values() {

}

public Values(Object... vals) {
super(vals.length);
for(Object o: vals) {
add(o);
}
}
}

我想调用following parent's constructor :

public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
}

这可能吗?我正在发送一个 int 但它被 Values 的构造函数捕获。

编辑

我最终想做的是:

Map<String,Object> document = getDocument();
List<String> indexFields = getIndexFields();
Values values = new Values(indexFields.size());
for (String field : indexFields) {
values.add(document.get(field));
}

最佳答案

如果您想调用 new Values(initialCapacity),其中 initialCapacityint,那么您应该在 Values 类中拥有这样的构造函数:

public Values(int initialCapacity) {
super(initialCapacity);
}

请注意,扩展集合类通常不是一个好主意。使用它们(委托(delegate)、组合)而不是扩展它们。

关于java - 强制调用父类中的特定构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16147967/

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