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

我认为这是一个简单的问题,如果已经有人问过,请原谅重复

我正在使用JUNG-2.0.1工具集编写一个图形分析工具(如果您以前没有使用过,那么它非常酷)。无论如何,我的java程序中有以下类结构

 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。