gpt4 book ai didi

java - 通用参数 'extends' 多个类

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:01 27 4
gpt4 key购买 nike

我有一个关于通用参数的问题,这是我的代码:

public <T extends Renderable, Box> void setBackBox(T bb) {
...
}

如您所见,您可以将扩展 Box & Renderable 的对象作为参数 bb。但是 Eclipse 给出了以下警告:“类型参数 Box 隐藏了类型 Box”。

我该如何解决/解决这个问题?

最佳答案

在这里,您定义了两个类型参数:

  • T extends Renderable
  • 盒子

Box 是第二个方法作用域类型参数的别名,如果你有另一个同名的(类作用域),方法作用域的类型参数将隐藏它。这就是 Eclipse 发出警告的原因。

如果你想让 T 扩展 RenderableBox,你必须这样做:

public <T extends Renderable & Box> void setBackBox(T bb)

另请注意,当您的类型参数扩展多个类型时,您可以使用一个类,它必须位于列表的第一位。例如,如果 Box 是一个类,则正确的定义是:

public <T extends Box & Renderable> void setBackBox(T bb)

关于java - 通用参数 'extends' 多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30829151/

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