Esiste uno strumento di debug interattivo Eclipse per valutare le proprietà del tipo?
-
13-11-2019 - |
Domanda
Ho una gerarchia di tipi abbastanza complicata e talvolta correre in errori di tipo hard-to-debug.Mi chiedo se c'è qualche tipo di strumento per informarsi se i requisiti di tipo sono soddisfatti.
ad esempio se ho i seguenti tipi:
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);
}
}
.
L'interfaccia SphereRoller
causerà un errore del compilatore:
Bound mismatch: The type Sphere is not a valid substitute for the bounded parameter <T extends CanRoll & Shape> of the type ShapeRoller<T>
Se potrebbe informarsi su proprietà del tipo come la sfera instanceof CanSpin
, mi aiuterebbe a capire che ho dimenticato di aggiungere l'attributo CanSpin
alla sfera.
Questo è presumibilmente possibile nella visualizzazione delle espressioni di Debugger una volta che l'applicazione è stata costruita ed eseguita correttamente, ma prima di allora gli errori di tipo devono essere già risolti.
C'è qualche strumento o componente aggiuntivo per Eclipse che mi consentirà di rendere le richieste di tipo di compilazione come questa?
Soluzione
È possibile colpire F4
("Navigatura - Apri Gerarchia") con il tipo richiesto selezionato per vedere l'intera gerarchia di tipo coinvolta.Non hai bisogno di valutazione del runtime per raggiungere l'obiettivo, se avessi le cose giuste.