CARDÁPIO

Verifique o tipo de uma variável Java com instanceof

índice

Verifique o tipo de variável

Apresentando um programa de exemplo para verificar o tipo de uma variável em Java.

Java é uma linguagem de tipo estaticamente que declara tipos explicitamente, portanto não há oportunidade de verificar tanto os tipos. Entretanto, a verificação de tipo pode ser necessária ao usar objetos herdados.

Como verificar tipos em Java instancia de Usando operadores, você pode avaliar classes e interfaces com instruções if, etc., conforme mostrado abaixo.

variável instância de classe

variável instância de interface

instancia de Um nome de classe ou nome de interface pode ser especificado no lado direito de .instancia de O valor de retorno é booleano; se verdadeiro, a variável é a classe ou interface especificada.

Bate-papo e Mensageiro é um groupware que integra chat de negócios, conferência na web, compartilhamento de arquivos, gerenciamento de agenda, gerenciamento de documentos, reserva de sala de conferência e gerenciamento de presença de maneira fácil de usar. Segurança perfeita para empresas,Disponível gratuitamente!

programa de amostra

Vamos começar com o padrão mais simples. Retorna verdadeiro se a variável i for um número inteiro, caso contrário, retorna falso.

Código de amostra

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

Resultado de saída

true

Como a variável i é um número inteiro, o resultado é verdadeiro. No entanto, isso é muito óbvio e não sei para que serve o instanceof, então vamos complicar um pouco mais.

Uso eficaz de instanceof

Um uso eficaz de instanceof é determinar a qual classe filha uma variável pertence.

Código de amostra

No código de exemplo, criamos uma classe animal Animal, uma classe Dog que herda da classe animal e uma classe Cat e, após criar uma instância, definimos variáveis no método play. instancia de A saída do console é ramificada com base no julgamento.

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("猫じゃらしで遊ぶ");
        }
    }
}

Resultado de saída

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

O ponto chave no método lúdico é que não está claro se o animal apresentado como argumento é um cachorro ou um gato.

instancia de Agora, você também pode verificar as instâncias da subclasse (Dog ou Cat) contidas na superclasse (Animal), para poder usá-la assim.

Verifique se uma interface específica está implementada

Você pode verificar se uma interface específica está implementada para a variável alvo de instanceof. Por exemplo, você pode usá-lo assim.

Código de amostra

No código de exemplo abaixo, são criadas classes para o Sr. Sato e o Sr. Suzuki, e a interface Car é implementada assumindo que apenas o Sr. Suzuki possui um carro. O método goShopping() assume o processo de ir às compras, mas implementa Car ou ramifica a saída do console com base em instanceof.

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("歩いて行く");
        }
    }
}

Resultado de saída:

歩いて行く
車で行く

Você pode ver que o processamento se ramifica dependendo se Car está implementado ou não.

  • URLをコピーしました!
índice