91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

平遥县| 珲春市| 孟连| 阳高县| 闻喜县| 思茅市| 沙坪坝区| 汝南县| 都昌县| 龙南县| 青河县| 凉山| 沙坪坝区| 安陆市| 喀什市| 平原县| 澳门| 新津县| 平遥县| 奈曼旗| 芦山县| 东明县| 安泽县| 汝城县| 斗六市| 巴中市| 格尔木市| 依安县| 贞丰县| 海淀区| 双鸭山市| 汶上县| 淅川县| 礼泉县| 房产| 康平县| 新泰市| 阆中市| 从化市| 烟台市| 安乡县|