gpt4 book ai didi

java - 我可以保证在参数的类和接口(interface)上输入吗?

转载 作者:搜寻专家 更新时间:2023-10-31 19:42:15 26 4
gpt4 key购买 nike

我正在使用 GWT 库。有一个名为 Widget 的基类,所有 Widget 都继承自该基类。一些 Widgets 实现了某些接口(interface)(例如 HasText),而另一些则没有。有时我希望保证作为参数传递给函数的东西属于某个类并且实现某个接口(interface)。

例如,我希望有一个接受参数 X 的函数,其中 X 是类类型 Widget 和接口(interface)类型 HasText。我希望有这种行为,因为只有 Widget 可以添加到 Layout 容器,而 HasText 指定了我实际上需要从所述 Widget 获得的完整行为集。


以伪代码的形式,它可能是:

public void fx(I_AM_A_Widget_AND_IMPLEMENT_INTERFACE_HasText x){
//do stuff with x, which is guaranteed to be a Widget AND implement HasText
}

这在 Java 中有任何可能吗?如果有多种方法,是否有首选/更好的方法?

最佳答案

您可以在这里使用通用方法:

public <T extends Widget & HasText> void fx(T x)

编译器会自动推断出 T 的类型,所以调用方法时不需要额外的语法。

关于java - 我可以保证在参数的类和接口(interface)上输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2293857/

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