THỰC ĐƠN

Kiểm tra loại biến Java bằng instanceof

mục lục

Kiểm tra loại biến

Giới thiệu chương trình mẫu để kiểm tra loại biến trong Java.

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

Cách kiểm tra các loại trong Java ví dụ Bằng cách sử dụng các toán tử, bạn có thể đánh giá các lớp và giao diện bằng các câu lệnh if, v.v. như minh họa bên dưới.

Biến đổi lớp instanceof

Biến đổi giao diện instanceof

ví dụ Tên lớp hoặc tên giao diện có thể được chỉ định ở bên phải của tệp .ví dụ Giá trị trả về là boolean; nếu đúng, biến đó là lớp hoặc giao diện được chỉ định.

Trò chuyện & Nhắn tin là phần mềm nhóm tích hợp trò chuyện kinh doanh, hội thảo trên web, chia sẻ tệp, quản lý lịch trình, quản lý tài liệu, đặt phòng hội nghị và quản lý điểm danh theo cách dễ sử dụng. Bảo mật hoàn hảo cho doanh nghiệp,Có sẵn miễn phí!

chương trình mẫu

Hãy bắt đầu với mẫu đơn giản nhất. Trả về true nếu biến i là Số nguyên, ngược lại là false.

mã mẫu

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

Kết quả đầu ra

true

Biến i là Số nguyên nên kết quả là đúng. Tuy nhiên, điều này quá rõ ràng và tôi không biết instanceof dùng để làm gì, vì vậy hãy làm cho nó phức tạp hơn một chút.

Sử dụng hiệu quả instanceof

Một cách sử dụng hiệu quả của instanceof là xác định biến thuộc về lớp con nào.

mã mẫu

Trong mã mẫu, chúng ta tạo một lớp động vật Animal, một lớp Dog kế thừa từ lớp động vật và một lớp Cat, sau đó tạo một phiên bản, đặt các biến trong phương thức play. ví dụ Đầu ra của bảng điều khiển được phân nhánh dựa trên phán đoán.

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 trong phương pháp chơi là không rõ con vật được đưa ra làm đối số là chó hay mèo.

ví dụ Bây giờ, bạn cũng có thể kiểm tra các phiên bản của lớp con (Chó hoặc Mèo) có trong siêu lớp (Động vật), để bạn có thể sử dụng nó như thế này.

Kiểm tra xem một giao diện cụ thể có được triển khai hay không

Bạn có thể kiểm tra xem một giao diện cụ thể có được triển khai cho biến được nhắm mục tiêu bởi instanceof hay không. Ví dụ, bạn có thể sử dụng nó như thế này.

mã mẫu

Trong mã mẫu bên dưới, các lớp dành cho ông Sato và ông Suzuki được tạo và giao diện Xe được triển khai với giả định rằng chỉ có ông Suzuki mới sở hữu một chiếc ô tô. Phương thức goShopping() giả định quá trình đi mua sắm, nhưng nó triển khai Car hoặc phân nhánh đầu ra của bảng điều khiển dựa trên 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ý tùy thuộc vào việc Car có được triển khai hay không.

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