MENÙ

Controlla il tipo di una variabile Java con exampleof

sommario

Controlla il tipo di variabile

Presentazione di un programma di esempio per verificare il tipo di una variabile in Java.

Java è un linguaggio tipizzato staticamente che dichiara i tipi in modo esplicito, quindi non c'è alcuna possibilità di controllare così tanto i tipi. Tuttavia, il controllo del tipo potrebbe essere necessario quando si utilizzano oggetti ereditati.

Come controllare i tipi in Java istanza di Usando gli operatori, puoi valutare classi e interfacce con istruzioni if, ecc. come mostrato di seguito.

variabile istanza della classe

variabile istanza dell'interfaccia

istanza di È possibile specificare un nome di classe o un nome di interfaccia sul lato destro di .istanza di Il valore restituito è booleano; se vero, la variabile è la classe o l'interfaccia specificata.

Chat e Messenger è un groupware che integra chat aziendale, conferenze web, condivisione di file, gestione della pianificazione, gestione dei documenti, prenotazione di sale conferenze e gestione delle presenze in modo facile da usare. Sicurezza perfetta per le aziende,Disponibile gratuitamente!

programma di esempio

Cominciamo con il modello più semplice. Restituisce vero se la variabile i è un intero, falso altrimenti.

Codice d'esempio

public static void integerSample() {
    Integer i = 100;
    boolean result = i instanceof Integer;
    System.out.println(result);
}

Risultato dell'output

true

La variabile i è un numero intero, quindi il risultato è vero. Tuttavia, questo è troppo ovvio e non so a cosa serva exampleof, quindi rendiamolo un po' più complicato.

Uso efficace di exampleof

Un uso efficace di exampleof è determinare a quale classe figlia appartiene una variabile.

Codice d'esempio

Nel codice di esempio creiamo una classe animale Animal, una classe Dog che eredita dalla classe Animal e una classe Cat e, dopo aver creato un'istanza, impostiamo le variabili nel metodo play. istanza di L'output della console viene ramificato in base al giudizio.

class Animal {} 
class Dog extends Animal {}
class Cat extends Animal {}

public class Main {
    public static void main(String[] args) {
        instanceofSample();
    }
    
    static void instanceofSample() {
        Animal dog = new Dog();
        play(dog);
        Animal cat = new Cat();
        play(cat);
    }
    
    static void play(Animal animal) {
        if (animal instanceof Dog) {
            System.out.println("お散歩する");
        } else {
            System.out.println("猫じゃらしで遊ぶ");
        }
    }
}

Risultato dell'output

お散歩する
猫じゃらしで遊ぶ

Il punto chiave del metodo di gioco è che non è chiaro se l'animale utilizzato come argomento sia un cane o un gatto.

istanza di Ora puoi anche controllare le istanze della sottoclasse (Cane o Gatto) contenute nella superclasse (Animale), quindi puoi usarla in questo modo.

Controlla se è implementata una particolare interfaccia

Puoi verificare se è implementata un'interfaccia specifica per la variabile presa di mira da exampleof. Ad esempio, puoi usarlo in questo modo.

Codice d'esempio

Nel codice di esempio riportato di seguito vengono create le classi per Mr. Sato e Mr. Suzuki e l'interfaccia Car viene implementata presupponendo che solo Mr. Suzuki possieda un'auto. Il metodo goShopping() presuppone il processo di acquisto, ma implementa Car o ramifica l'output della console in base a exampleof.

interface Car {}
class Sato {}
class Suzuki implements Car {}

public class Main {
    public static void main(String[] args) throws Exception {
        instanceofSample();
    }
    
    static void instanceofSample() {
        Sato sato = new Sato();
        goShopping(sato);

        Suzuki suzuki = new Suzuki();
        goShopping(suzuki);
    }
    
    static void goShopping(Object human) {
        if (human instanceof Car) {
            System.out.println("車で行く");
        } else {
            System.out.println("歩いて行く");
        }
    }
}

Risultato dell'output:

歩いて行く
車で行く

Puoi vedere che l'elaborazione si ramifica a seconda che Car sia implementato o meno.

  • URLをコピーしました!
sommario