instanceof in Generic

guguli

Bekanntes Mitglied
Hallo zusammen,

ich hab das folgende Problem:
ich möchte den Typ einer Variablen Vergleichen.
die Classe Sieht wie folgt aus:

Java:
public abstract class A <T extends CTSClass> extends Ab<T>{
private Class<T> mT;
public A( Class<T> t) {
  super(t);
  this.mT = t;
  }

@Override
  public void run() {
// hier würde ich gerne eigentlich mit instanceOf schauen ob mT vom Type CTSClass ist so:

if(mT instanceOf CTSClass){....}
}
Das geht aber nicht. ICh hab etwas gegoogelt und hab raus gefunden dass ich mit isAssignableFrom das raus finden kann.
Weiss jedoch nicht wie das funktioniert. Kann mir einer dabei helfen??


THX
 
Zuletzt bearbeitet von einem Moderator:

guguli

Bekanntes Mitglied
Hi,

Laut dem Link muss ich sowas schreiben!

CTSClass.class.isAssignableFrom(mTargetClass.getClass());

also wenn ich debugge dann ist mTargetClass vom Typ CTSClass.
Jedoch kriege ich false als antwort.

Woran kann das liegen???

Gruß
 

guguli

Bekanntes Mitglied
Hallo,
das alles hat mir bis jetzt nicht geholfen. Ich poste am Besten meine Classenhierarchie.
Java:
public abstract class Abs1 <T extends ITsClass>extends SelectionAction {
   public Abs1(AbstractTSEditor editor, Class<T> targetClass, String commandLabel) {
     super(editor);
   }
}

public abstract class Abs2<T extends ITsClass> extends Abs1<T> {
   private Class<T> mTargetclass;
   private AbstractTSEditor mEditor;
   private CreateSpecialCommand mCreateSpecialCommand;

   public Abs2(AbstractTSEditor editor, Class<T> targetClass, String commandLabel) {
     super(editor, targetClass, commandLabel);
     this.mTargetclass = targetClass;
     this.mEditor = editor;
   }

   @Override
   public void run() {
     if(mTargetclass.getClass().isAssignableFrom(CTSClass.class)){
       mCreateSpecialCommand = new CreateSpecialCommand(tSelectedSet, entryActivity, exitActivity, CTS.class, mEditor, "NewCts"); //$NON-NLS-1$
     }
     if(mTargetclass.getClass().isAssignableFrom(ScriptClass.class)){
       mCreateSpecialCommand = new CreateSpecialCommand(tSelectedSet, entryActivity, exitActivity, CTS.class, mEditor, "NewCts"); //$NON-NLS-1$
     }
   }
}

public class ExtractCtsAction extends Abs2<CTSClass> {
   public ExtractCtsAction(AbstractTSEditor editor) {
     super(editor, CTSClass.class, Messages.ExtractCtsAction_ACTION_TXT);
   }
}

public class ExtractScriptAction extends Abs2<ScriptClass> {
   public ExtractScriptAction(AbstractTSEditor editor) {
     super(editor, ScriptClass.class, Messages.ExtractScriptAction_ACTION_TXT);
   }
}

das ist meine Klassen Hierarchie, und wenn ich in der Methode run(), diese if abfrage:
if(mTargetclass.getClass().isAssignableFrom(CTSClass.class))
machen möchte dann kriege ich false zurück, obwohl mTargetclass vom Type CTSClass ist.
CIh hab das beim Debugging kontrolliert.

Gruß
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
OFFTOPIC: Bei den Code-Tags keine Leerzeichen nach den [ Klammern. Oben steht es nur mit Leerzeichen, da sonst automatisch umgewandelt wird ;)
 

CSHW89

Bekanntes Mitglied
Deine Variable 'mTargetclass' ist schon dein Class-Object, welches z.b. die Klasse CTSClass repräsentiert. Wenn du davon die Methode 'getClass()' aufrufst, bekommst du den Typ der Variablen 'mTargetclass' zurück. Das ist dann das Class-Object, welches die Standard-Java-Klasse Class repräsentiert. Lass also einfach das 'getClass()' weg: 'mTargetclass.isAssignableFrom(...)'

lg Kevin
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
J instanceof Operator Java Basics - Anfänger-Themen 3
A instanceof-if-else-Anweisungen eleganter lösen Java Basics - Anfänger-Themen 5
B instanceof Java Basics - Anfänger-Themen 9
L Best Practise - 'instanceof' oder nicht. Java Basics - Anfänger-Themen 7
Luk10 instanceof Class<T> Java Basics - Anfänger-Themen 6
I if (listenObjekt instanceof meinObjekt.class) Java Basics - Anfänger-Themen 5
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
K Polymorphie und instanceOf Operator Java Basics - Anfänger-Themen 6
M Compiler-Fehler instanceof compiler-error Java Basics - Anfänger-Themen 2
A Alternative instanceof Java Basics - Anfänger-Themen 3
0 Vererbung - instanceof Java Basics - Anfänger-Themen 20
J this instanceof Class<Object> Java Basics - Anfänger-Themen 1
D HasMap mit JComponents mit instanceof Java Basics - Anfänger-Themen 3
K Equals,Instanceof und "==" Java Basics - Anfänger-Themen 7
A Datentypen instanceof VS Class - Vergleich Java Basics - Anfänger-Themen 4
S Bessere Lösung zu häufigem instanceof Java Basics - Anfänger-Themen 25
A Besser als instanceof Java Basics - Anfänger-Themen 6
E instanceof vs class==class Java Basics - Anfänger-Themen 5
B instanceof Prüfung für generische Typen Java Basics - Anfänger-Themen 5
S instanceof Comparable...geht nicht? Java Basics - Anfänger-Themen 20
K instanceof Java Basics - Anfänger-Themen 22
A Vereinfachung instanceof Java Basics - Anfänger-Themen 12
G Mit "instanceof" sich selbst Fragen? Java Basics - Anfänger-Themen 4
S Instanceof umkehren Java Basics - Anfänger-Themen 2
E Negative Abfrage auf instanceof Java Basics - Anfänger-Themen 3
D if (event.target instanceof TextField) Java Basics - Anfänger-Themen 2
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
O Comparable Generic Java Basics - Anfänger-Themen 24
F Type safety: A generic array of.. Fehler Java Basics - Anfänger-Themen 3
Yjuq Generic Methode - Wie muss die List Definition aussehen? Java Basics - Anfänger-Themen 3
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
C Generic im Konstruktor Java Basics - Anfänger-Themen 1
O Generic - Verstädnisproblem Java Basics - Anfänger-Themen 5
N Datentypen LocalDate Generic Comparable Java Basics - Anfänger-Themen 2
P Variablen generic type variablen in object array Java Basics - Anfänger-Themen 1
M Generic Prüfungsvorbereitung Java Basics - Anfänger-Themen 4
G Generic und Listen Java Basics - Anfänger-Themen 8
J Generic - Autoboxing Java Basics - Anfänger-Themen 18
N Generic clonen => eclipse empfiehlt @SuppressWarnings("unchecked") Java Basics - Anfänger-Themen 2
S Generic Java Basics - Anfänger-Themen 9
P Java Generic Wildcard Java Basics - Anfänger-Themen 2
G Namen der Generic Klasse Java Basics - Anfänger-Themen 3
D generic extendet class Java Basics - Anfänger-Themen 10
M Generic's und Vererbung Java Basics - Anfänger-Themen 6
B Generic? Enum - So lösbar? Java Basics - Anfänger-Themen 8
capgeti Datentypen Static generic return value von Subclass? Java Basics - Anfänger-Themen 9
C Generic Tutorial Java Basics - Anfänger-Themen 12
T Generic vom Generic: Zu sehr verschachtelt? Java Basics - Anfänger-Themen 6
V libssrckdtree-j Generic k-d tree Java library - weiss nicht wo des hin soll Java Basics - Anfänger-Themen 2
L Sinn hinter Generic? Java Basics - Anfänger-Themen 5
0 Was bedeutet dieser Generic-code? Java Basics - Anfänger-Themen 3
A Generic Problem Java Basics - Anfänger-Themen 16
S Generic Methode: syntax klemmt Java Basics - Anfänger-Themen 10
S Generic: Verständnisfrage Java Basics - Anfänger-Themen 2
S generic programmierung "ne:w T[X]" Java Basics - Anfänger-Themen 2
G generic interface problem Java Basics - Anfänger-Themen 12
Safado generic array creation Java Basics - Anfänger-Themen 2
G Frage zur Generic java ? Java Basics - Anfänger-Themen 9
G eine Frage zur Generic Java ? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben