2017-08-19 1 views
1

Mit der Struktursuche in Intellij IDEA sollte die Suchvorlage aussehen, wenn ich alle Klassen finden möchte, die eine Schnittstelle implementieren, aber keine andere Klasse erweitern ? Die Vorlagen getrennt sind:Suchen Sie in Intellij IDEA nach Klassen, die eine Schnittstelle implementieren, aber keine andere Klasse erweitern

class $Class$ implements $Interface$ {} 

und

class $Class$ extends $Parent$ {} 

Einstellung Minimal- und Maximal 1,1 und 0,0 auf.

habe ich versucht, etwas Ähnliches zu dieser Frage ohne Erfolg:

IntelliJ Structural Search to find classes that implement A but not B

Antwort

1

Sie können die beiden Vorlagen kombinieren:

class $Class$ extends $Parent$ implements $Interface$ {} 

Mit den folgenden variablen Einstellungen

$Parent$:
Text/Regexp Excluded und ermöglichen Apply constrains in type hierarchy, min/max 0,0
$Interface$:
Text/regexp Included und ermöglichen Apply constrains in type hierarchy, min/max 1,1

Wenn ich mit diesen Einstellungen auf den folgenden Testcode zu suchen, Klassen B und E gefunden.

class Excluded {} 
interface Included {} 
class A extends Excluded implements Included {} 
class B implements Included {} 
class C extends Excluded {} 
class D extends A {} 
class E extends B {} 
class F {} 

Sie müssen natürlich Ihren eigenen Klassen- und Interface-Namen anstelle von Included und Excluded verwenden.

+0

Dies funktioniert nicht, auch wenn Sie die Min- und Max-Werte 1,1 bzw. 0,0 in Ihrem Snippet zuweisen. – gibarsin

+0

Ich habe etwas mehr Erklärung hinzugefügt. Wenn dies für Sie nicht funktioniert, welche Version von IntelliJ IDEA verwenden Sie? Vielleicht stößt du auf einen Fehler. –

Verwandte Themen