2012-02-26 4 views
1

私はかなり複雑なタイプの階層を持ち、難しいタイプのエラーに遭遇することがあります。タイプ要件が満たされているかどうかを調べるためのツールがあるかどうか疑問に思っています。例えばタイプのプロパティを評価するためのEclipseインタラクティブなデバッグツールはありますか?

私は、次の種類がある場合:

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>

スフィアinstanceof CanSpinのようなタイプのプロパティを問い合わせることができれば、それは私が実現役立つだろうが私はCanSpin属性をSphereに追加するのを忘れていました。

これは、アプリケーションが正しく構築されて実行された後、型エラーが解決されなければ、デバッガの式ビューではおそらく可能です。

このようなコンパイル時の照会を可能にするEclipseのツールやアドオンはありますか?

答えて

1

関連するタイプ階層全体を表示するには、必要なタイプを選択してF4(「ナビゲート - オープンタイプ階層」)をクリックします。私が正しいことを得れば、目標を達成するためにランタイム評価は必要ありません。

+0

これは大きな助けになりました。ありがとうございます!以前はタイプエクスプローラの存在に気がついたことがありましたが、それを試したことはありませんでした。あなたの提案でそれを再生した後、私は私が望むような型のプロパティを直接テストすることはできませんが、それはまだ何よりも優れています。ビルド時にタイプ表現をより直接的に評価できるように他の人が誰かを思いついた場合に備えて、私は少し待って答えを受け取ります。 –

関連する問題