中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java泛型類中的泛型類型參數化構建者模式

發布時間:2024-10-24 18:18:49 來源:億速云 閱讀:80 作者:小樊 欄目:編程語言

在Java中,泛型類是一種具有類型參數的類。泛型類型參數化允許我們在創建類的實例時指定具體的類型,從而提高代碼的重用性和類型安全。構建者模式是一種創建型設計模式,它允許我們以一種靈活的方式構建復雜對象。將泛型與構建者模式結合,可以讓我們在創建泛型類實例時更加靈活和方便。

下面是一個使用泛型類和構建者模式的示例:

public class GenericBox<T> {
    private T content;
    private int size;

    public GenericBox(int size) {
        this.size = size;
    }

    public void setContent(T content) {
        this.content = content;
    }

    public T getContent() {
        return content;
    }

    public int getSize() {
        return size;
    }

    public static class Builder<T> {
        private GenericBox<T> box;

        public Builder(Class<T> clazz) {
            box = new GenericBox<>(clazz);
        }

        public Builder<T> withContent(T content) {
            box.setContent(content);
            return this;
        }

        public GenericBox<T> build() {
            return box;
        }
    }
}

在這個示例中,我們創建了一個泛型類GenericBox,它有一個類型參數T,以及兩個屬性contentsize。我們還創建了一個靜態內部類Builder,它也是一個泛型類,具有與GenericBox相同的類型參數T

Builder類有一個構造函數,它接受一個Class<T>類型的參數,用于指定GenericBox實例的內容類型。這樣,我們可以在創建Builder實例時指定GenericBox的內容類型,從而在后續的方法調用中保持類型安全。

Builder類還提供了withContent方法,用于設置GenericBox的內容。這個方法返回Builder實例本身,以便我們可以使用鏈式調用的方式設置多個屬性。最后,Builder類提供了一個build方法,用于創建并返回一個GenericBox實例。

下面是如何使用這個泛型類和構建者模式的示例:

public class Main {
    public static void main(String[] args) {
        GenericBox<String> stringBox = new GenericBox.Builder<>(String.class)
                .withContent("Hello, world!")
                .build();

        System.out.println("String box content: " + stringBox.getContent());
        System.out.println("String box size: " + stringBox.getSize());

        GenericBox<Integer> intBox = new GenericBox.Builder<>(Integer.class)
                .withContent(42)
                .build();

        System.out.println("Integer box content: " + intBox.getContent());
        System.out.println("Integer box size: " + intBox.getSize());
    }
}

在這個示例中,我們創建了兩個GenericBox實例,一個用于存儲字符串,另一個用于存儲整數。我們使用Builder類來設置每個實例的內容和大小,然后打印出它們的內容和大小。通過這種方式,我們可以輕松地創建具有不同內容類型的GenericBox實例,同時保持類型安全和代碼重用性。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

冷水江市| 宁城县| 霍林郭勒市| 会理县| 甘德县| 寿阳县| 曲沃县| 翁源县| 诸城市| 曲阳县| 新野县| 军事| 巫溪县| 黔南| 富裕县| 湘阴县| 文山县| 嘉峪关市| 江源县| 新田县| 甘谷县| 石河子市| 阳城县| 扶余县| 平遥县| 静乐县| 南皮县| 略阳县| 西充县| 扶沟县| 蓬莱市| 绥滨县| 二手房| 博白县| 苍南县| 乐都县| 温州市| 会理县| 太原市| 商城县| 德庆县|