Java使用具有不同对象的泛型类对象
我认为这是一个简单的问题,如果已经有人问过,请原谅重复 我正在使用JUNG-2.0.1工具集编写一个图形分析工具(如果您以前没有使用过,那么它非常酷)。无论如何,我的java程序中有以下类结构Java使用具有不同对象的泛型类对象,java,class,generics,inheritance,Java,Class,Generics,Inheritance,我认为这是一个简单的问题,如果已经有人问过,请原谅重复 我正在使用JUNG-2.0.1工具集编写一个图形分析工具(如果您以前没有使用过,那么它非常酷)。无论如何,我的java程序中有以下类结构 public edge() {} public vehicle() {} public car() extends vehicle {} public truck() extends vehicle {} 现在,在为graph viewer类编写代码时,头被写为 public customgr
public edge() {}
public vehicle() {}
public car() extends vehicle {}
public truck() extends vehicle {}
现在,在为graph viewer类编写代码时,头被写为
public customgraphviewer<node, edge>() {}
public customgraphviewer(){}
如果我将类标题写为
public customgraphviewer<vehicle, edge>() {}
public customgraphviewer(){}
它会接受汽车或卡车物体吗?我认为会的,因为这两个类都继承自同一个父类,并且有相同的类型。我是对的还是我应该做些别的事情
Laurence-我认为最好的方法是使用通配符参数,并将其缩小到已知的超类:
public customgraphviewer<? extends vehicle, edge>() {}
publiccustomgraphviewer您必须学习泛型类型变量声明语法。声明public class Something
将创建两个名为Vehicle
和Edge
的新类型变量。这些类型与车辆
和边缘
完全无关。此外,您提供的类结构不是Java;在Java中,构造函数使用edge()
etc,而不是类声明。另外,既然小写名称是符合JLS的类名?IFTFY-如果您使用的是某种特定于应用程序的标记,请不要将其标记为通用的“java”,否则请为您的代码使用有效的java约定。现在还不清楚你到底在问什么,也不清楚你是否对手头的主题有一点了解。我正在回滚我的更改,直到有人能向我解释这里真正要问什么。这是什么?这行代码的任何部分都不是有效的Java。