Class
hat sowohl eine isInstance()-Methode und eine isAssignableFrom()-Methode zur Überprüfung solcher Sachen. Die am nächsten, was Sie suchen ist:
if (myClass.isInstance(obj)) {
Update: Von Ihrem Kommentar, möchten Sie den Namen einer Klasse in eine Methode zu übergeben und überprüfen, ob etwas zu dieser Klasse zugeordnet werden kann. Die einzige Möglichkeit besteht darin, den Klassennamen als String zu übergeben, dann die Klasse zu laden und eine der oben genannten Methoden zu verwenden. Zum Beispiel (die Ausnahmebehandlung weggelassen):
private void methodName(String className) {
Class myClass = Class.forName(className);
Object obj;
/* Complicated code to find obj in datastructure */
if (myClass.isInstance(obj)) {
/* Do stuff */
}
}
Ich glaube nicht, dass ich meine Frage klar genug formuliert - das Problem ist, dass ich möchte in der Lage sein Instanceof zu verwenden, dh I Ich möchte, dass die "Klasse", die ich überlasse, der Name einer Klasse ist. – tor
Aktualisiert. Ist das näher an dem, wonach Sie suchen? –