gpt4 book ai didi

Java泛型 super 用法

转载 作者:行者123 更新时间:2023-12-02 05:55:06 27 4
gpt4 key购买 nike

我试图理解为什么以下内容无法编译。

public class AnimalHolder<T super Animal> {
T animal;
public static void main(String[] args) {
AnimalHolder<Object> objectHolder = new AnimalHolder<Object>();

}
}

据我了解,我可以使用 IS 的任何东西A AnimalAnimal 的父类(super class)型(在本例中 Object )。谁能解释一下吗?

Compiler Message:

AnimalHolder.java:15: error: > expected
public class AnimalHolder<T super Animal> {
^
AnimalHolder.java:15: error: <identifier> expected
public class AnimalHolder<T super Animal> {
^
AnimalHolder.java:17: error: illegal start of expression
public static void main(String[] args) {
^
AnimalHolder.java:17: error: illegal start of expression
public static void main(String[] args) {
^
AnimalHolder.java:17: error: ';' expected
public static void main(String[] args) {
^
AnimalHolder.java:17: error: '.class' expected
public static void main(String[] args) {
^
AnimalHolder.java:17: error: ';' expected
public static void main(String[] args) {
^
AnimalHolder.java:21: error: reached end of file while parsing
}
^
8 errors

最佳答案

问题是您无法为通用参数指定下限:

public class AnimalHolder<T super Animal> { // Can't do this

您只能指定一个上限:

public class AnimalHolder<T extends Animal> { // Must use "extends"

关于Java泛型 super 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23181612/

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