Originariamente inviato da andbin
Come già detto da LeleFT, è corretto. E io aggiungo che in tal caso il test è molto più "stretto" rispetto a instanceof, perché confronti esattamente la classe dell'oggetto. instanceof invece si basa sul polimorfismo, in pratica il risultato è true solo se l'oggetto può essere visto come un certo tipo XYZ (quindi
è-un XYZ), non se è esattamente della classe XYZ.
Precisamente.
Un breve esempio chiarificatore:
codice:
import java.awt.*;
import javax.swing.*;
public class Istanza {
public static void main(String[] args) {
Object txt = new JTextField();
System.out.println("\n-- Test con getClass() --\n");
System.out.println("Confronto con JTextField: " + (txt.getClass() == JTextField.class));
System.out.println("Confronto con JComponent: " + (txt.getClass() == JComponent.class));
System.out.println("Confronto con Component: " + (txt.getClass() == Component.class));
System.out.println("\n\n-- Test con instanceof --\n");
System.out.println("Confronto con JTextField: " + (txt instanceof JTextField));
System.out.println("Confronto con JComponent: " + (txt instanceof JComponent));
System.out.println("Confronto con Component: " + (txt instanceof Component));
}
}
Ciao.