gpt4 book ai didi

java - 非泛型类中的 Java 泛型问题

转载 作者:行者123 更新时间:2023-12-01 23:48:43 25 4
gpt4 key购买 nike

public class method
{
private static class Foo
{
public void hello() { System.out.println("Foo"); }
}

private static class Bar
{
public void hello() { System.out.println("Bar"); }
}

private static <T> void hello(T typ)
{
typ.hello();
}

public static void main(String args[])
{
Foo foo = new Foo();
Bar bar = new Bar();
hello(foo);
hello(bar);
}
}

我已经查看了这里有关泛型的其他问题,但是尽管我在那里看到了所有内容并将其应用于我编写的代码,但我的 Java 代码仍然存在问题。我已经将遇到的问题归结为上面的代码。当我尝试编译上面的 codd 时,出现以下错误:

method.java:15: error: cannot find symbol
typ.hello();
^
symbol: method hello()
location: variable typ of type T
where T is a type-variable:
T extends Object declared in method <T>hello(T)

可能我正在尝试用泛型做一些他们不打算做的事情,但根据我对文档的理解,这应该可行。当然,我阅读文档时的想法是我可以做这样的事情,这肯定会影响我对它的理解。

谢谢

最佳答案

这是你的问题:

private static <T> void hello(T typ)

T 不会扩展任何实现名为“Hello”的方法的内容。

相反,将其替换为

 private static <T extends ClassThatHasHello> void hello(T type)

和类(class):

 public class ClassThatHasHello {
public void hello() { }
}

关于java - 非泛型类中的 Java 泛型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16617622/

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