亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

泛型類在Java中的泛型類型參數化單例模式

發布時間:2024-10-24 17:46:48 來源:億速云 閱讀:81 作者:小樊 欄目:編程語言

在Java中,使用泛型來實現單例模式可以讓我們為不同的類型創建單獨的單例實例。泛型類允許我們在類定義時指定一個或多個類型參數,這些參數可以在類的方法和屬性中使用。下面是一個使用泛型實現的單例模式的示例:

public class Singleton<T> {
    // 使用volatile關鍵字確保多線程環境下的安全性
    private static volatile Singleton<T> instance;

    // 將類型參數T作為私有屬性,防止外部實例化
    private T data;

    // 私有構造函數,防止外部通過new關鍵字創建實例
    private Singleton() {
    }

    // 獲取單例實例的方法
    public static <U> Singleton<U> getInstance(Class<U> clazz) {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton<>();
                }
            }
        }
        // 由于Java泛型擦除,我們需要使用Class對象來獲取泛型類型
        return (Singleton<U>) instance;
    }

    // 設置單例實例的數據
    public void setData(T data) {
        this.data = data;
    }

    // 獲取單例實例的數據
    public T getData() {
        return data;
    }
}

在這個示例中,我們創建了一個名為Singleton的泛型類,它有一個類型參數T。我們還定義了一個私有的構造函數,以防止外部通過new關鍵字創建實例。getInstance方法是一個靜態方法,它接受一個Class對象作為參數,用于獲取泛型類型。由于Java泛型擦除,我們需要在運行時通過Class對象來獲取泛型類型。

要使用這個泛型單例類,你可以按照以下方式操作:

public class Main {
    public static void main(String[] args) {
        // 創建一個String類型的單例實例
        Singleton<String> stringSingleton = Singleton.getInstance(String.class);
        stringSingleton.setData("Hello, world!");
        System.out.println(stringSingleton.getData());

        // 創建一個Integer類型的單例實例
        Singleton<Integer> integerSingleton = Singleton.getInstance(Integer.class);
        integerSingleton.setData(42);
        System.out.println(integerSingleton.getData());
    }
}

這個示例將創建兩個不同類型的單例實例:一個用于存儲String類型的數據,另一個用于存儲Integer類型的數據。

向AI問一下細節

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

AI

横峰县| 冀州市| 三穗县| 山丹县| 文化| 晋中市| 玉门市| 宁阳县| 锡林浩特市| 长兴县| 加查县| 卢湾区| 佛坪县| 木兰县| 潼南县| 河东区| 金乡县| 巴彦淖尔市| 东兰县| 体育| 左云县| 马鞍山市| 兰州市| 博客| 城步| 泽库县| 绥江县| 石渠县| 比如县| 开封县| 明水县| 卓尼县| 昌平区| 虞城县| 松江区| 陇南市| 武鸣县| 秦皇岛市| 平塘县| 孙吴县| 新化县|