是否有Eclipse交互式调试工具来评估类型属性?

时间:2012-02-26 18:46:01

标签: java eclipse generics types type-safety

我有一个相当复杂的类型层次结构,有时遇到难以调试的类型错误。我想知道是否有某种工具可以询问是否满足类型要求。

例如,如果我有以下类型:

class ShapeTypeDebugging {
   interface Shape {}
   interface CanRoll {}
   interface ShapeRoller<T extends CanRoll & Shape> {
      void Roll(T t);
   }
   interface Circle extends Shape, CanRoll {}
   interface HasThreeDimensions {}
   interface ThreeDimensionalShape extends Shape, HasThreeDimensions {}
   interface Sphere extends ThreeDimensionalShape {} // Oops, forgot Spheres CanRoll
   interface SphereRoller extends ShapeRoller<Sphere> {
      @Override void Roll(Sphere sphere);
   }
}

SphereRoller接口将导致编译器错误: Bound mismatch: The type Sphere is not a valid substitute for the bounded parameter <T extends CanRoll & Shape> of the type ShapeRoller<T>

如果可以查询类似Sphere instanceof CanSpin的类型属性,它会帮助我意识到我忘记将CanSpin属性添加到Sphere。

一旦构建并正确执行应用程序,这可能在调试器的表达式视图中有可能,但在此之前必须已经解决了类型错误。

是否有任何Eclipse工具或附件允许我进行这样的编译时类型查询?

1 个答案:

答案 0 :(得分:1)

您可以点击F4(“导航 - 打开类型层次结构”),并选择所需的类型以查看所涉及的整个类型层次结构。如果我做对了,你不需要运行时评估来实现目标。