gpt4 book ai didi

仅采用从父类(super class)继承的对象的 Java 方法

转载 作者:行者123 更新时间:2023-11-30 08:11:03 25 4
gpt4 key购买 nike

我想在 Java 类中有一个方法,它只允许我传递从父类(super class)继承的对象,例如:

我有容器父类(super class)Div:

package org.gwtbootstrap3.client.ui.html;
public class Div extends ComplexWidget {
public Div() {
setElement(Document.get().createDivElement());
}
}

我想在 NRowsXNColumns 类中使用 Div 类及其子类:

public class NRowsXNColumns extends GenericLayout {
public NRowsXNColumns(List<T extends Div> containers) {
// Do something with each container that extends Div class
for(T extends Div container: containers) {
container.display();
}
}
}

很遗憾,它无法编译。

最佳答案

您可以限制泛型中的类型,例如声明一个 List<? extends Div> , 但在声明循环变量时不能使用该表示法 container :

for (Div container : containers) {
container.display();
}

由于 containers 中的所有对象必须是 DivDiv 的子类, 它们都可以分配给一个声明为 Div 的变量.

(在通用方法中,您可以定义 <T extends Div>,然后将列表声明为 List<T extends Div>,但在这种情况下不存在 T 的此类定义。)

关于仅采用从父类(super class)继承的对象的 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31297989/

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