【问题标题】:Java Using Generic Class object with different objectsJava 使用具有不同对象的泛型类对象
【发布时间】:2015-02-11 20:44:28
【问题描述】:

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

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

 public edge() {}
 public vehicle() {}
 public car() extends vehicle {}
 public truck() extends vehicle {}

现在,在为图形查看器类编写代码时,标题被写为

 public customgraphviewer<node, edge>() {}

如果我把类头写成

 public customgraphviewer<vehicle, edge>() {}

它会接受汽车或卡车对象吗?我认为它会因为两个类都从同一个父类继承,所以它们的类型相同。我是正确的还是我应该做的其他事情。

劳伦斯-

【问题讨论】:

  • 你必须学习泛型类型变量声明语法。声明public class Something&lt;Vehicle, Edge&gt; 会创建两个新类型变量,分别命名为VehicleEdge。这些类型与您的VehicleEdge 完全无关。
  • 另外,你提供的类结构不是 Java;在 Java 中,您使用 edge() 等作为构造函数,而不是用于类声明。另外,因为小写名称何时是符合 JLS 的类名? IFTFY - 如果您使用某种特定于应用程序的标记,请不要将其标记为通用“java”,否则请为您的代码使用有效的 Java 约定。目前尚不清楚您在这里真正要问的是什么,以及您对手头的主题是否有最低限度的了解。
  • 我正在回滚我的更改,直到有人可以向我解释这里真正问的是什么

标签: java class generics inheritance


【解决方案1】:

我认为最好的方法是使用通配符参数,并将其缩小到已知的超类:

public customgraphviewer<? extends vehicle, edge>() {}

【讨论】:

  • 这是什么?该行代码的任何部分都不是有效的 Java。
猜你喜欢
  • 1970-01-01
  • 2013-01-08
  • 2010-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
相关资源
最近更新 更多