java, generics - 如何参数化一个类型为 T 的类,这两个类型都是 : extends and implements sth

标签 java generics

我想在类型 T 中键入类成员以及方法的参数,它必须是一个 Node 并实现我自己的接口(interface) Linkable。

基本上,我想将变量限制在 Node 和 Linkable 之间的继承“树”的一小部分。原因是我不想在类中进行所有转换,这取决于我是需要调用 Node 的方法还是 Linkable 的方法。

目前在我的项目中,我知道我只使用了实现可链接的节点,但这个条件并没有以任何方式强制执行。

下面的伪代码(仅用于说明):

public class MyClass <T extends ??> {

T node1;
Bounds bounds1;

bounds1 = node1.boundsInParentProperty(); //Node specific method

node1.linkableSpecificMethod(); //method defined in Linkable interface
//....
}

最佳答案

有两件事可以帮助您:

  • 泛型不区分接口(interface)和类。
  • 泛型支持用于列出多种类型的符号。

也就是说,您可能想要的是:

class YourClass<T extends Node & Linkable> {
}

关于java, generics - 如何参数化一个类型为 T 的类,这两个类型都是 : extends and implements sth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27093068/

相关文章:

java - 在java中保存字符串乘法数据

java - 为什么 List<MyType>.class 不起作用?

java - 我们是否允许在实例化期间使用通配符

generics - 如何使用流在 Java8 中返回特定类型的数组而不是泛型类型

java - Java 8 Lambda 上的反射类型推断

java - 填充和排序列表 <?扩展条款与条件>

java - 在线程池执行器中顺序处理文件

java - 使用流进行迭代时,ForeignCollection 会抛出 SQLException

java - 如何通过React Native中的 Intent 启动并接收另一个应用程序的输出?

java - spring integration中如何并行同步处理?