THỰC ĐƠN

Java 変数の型を instanceof で確認する

mục lục

Kiểm tra kiểu dữ liệu của biến.

Chương trình ví dụ này minh họa cách kiểm tra kiểu dữ liệu của một biến trong Java.

Java là một ngôn ngữ lập trình kiểu tĩnh, trong đó các kiểu dữ liệu được khai báo rõ ràng, vì vậy không có nhiều trường hợp cần kiểm tra kiểu. Tuy nhiên, khi sử dụng các đối tượng kế thừa, việc kiểm tra kiểu có thể trở nên cần thiết.

Cách kiểm tra kiểu dữ liệu trong Java instanceof Bạn có thể sử dụng các toán tử để đánh giá các lớp và giao diện bằng câu lệnh if, như sau:

biến đổi instanceof クラス

biến đổi instanceof インターフェース

instanceof Bạn có thể chỉ định tên lớp hoặc tên giao diện ở phía bên phải.instanceof Giá trị trả về là một giá trị boolean, và nếu giá trị đó là true, thì biến đó chính là lớp hoặc giao diện được chỉ định.

Trò chuyện & Tin nhắn Đây là một phần mềm cộng tác tích hợp, thân thiện với người dùng, kết hợp trò chuyện doanh nghiệp, hội nghị trực tuyến, chia sẻ tệp, quản lý lịch trình, quản lý tài liệu, đặt phòng họp và quản lý điểm danh. Nó cũng cung cấp bảo mật mạnh mẽ cho doanh nghiệp.Hoàn toàn miễn phí!

Chương trình mẫu

Chúng ta hãy bắt đầu với mẫu đơn giản nhất. Nếu biến i là một số nguyên, nó trả về true; ngược lại, nó trả về false.

Mã ví dụ

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

Kết quả đầu ra

true

変数 i は Integer なので、結果は true になります。しかし、これでは当たり前すぎて instanceof がなんのためにあるか分かないので、もう少し複雑にします。

instanceof の効果的な使い方

instanceof の効果的な使い方の一つに、その変数がどの子クラスなのかを判定する場合があります。

Mã ví dụ

Đoạn mã mẫu tạo ra một lớp động vật có tên là Animal, và hai lớp Dog và Cat, kế thừa từ lớp Animal. Sau khi tạo các thể hiện, phương thức `play` được sử dụng để định nghĩa các biến. instanceof Hệ thống sẽ xác định điều này và phân nhánh đầu ra của bảng điều khiển cho phù hợp.

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

Kết quả đầu ra

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

Điểm mấu chốt là trong phương pháp "chơi", không thể biết được "con vật" được dùng làm đối số là chó hay mèo.

instanceof Vì vậy, do chúng ta cũng có thể kiểm tra các trường hợp của các lớp con (Dog hoặc Cat) nằm trong lớp cha (Animal), nên chúng ta cũng có thể sử dụng nó theo cách này.

Kiểm tra xem giao diện cụ thể đó đã được triển khai hay chưa.

instanceof の対象となる変数に、ある特定のインターフェースが実装されているか確認できます。例えばこのような使い方ができます。

Mã ví dụ

次のサンプルコードでは、佐藤さん、鈴木さんクラスを作成し、鈴木さんだけが車を持っている想定で、インターフェース Car を implements しています。goShopping() メソッドは買い物に行く処理を仮定していますが、Car を implements しているか、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("歩いて行く");
        }
    }
}

Kết quả đầu ra:

歩いて行く
車で行く

Bạn có thể thấy rằng các nhánh xử lý phụ thuộc vào việc tính năng Car có được triển khai hay không.

  • URLをコピーしました!
mục lục