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

溫馨提示×

溫馨提示×

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

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

泛型類在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

密山市| 云安县| 安乡县| 江西省| 双柏县| 内丘县| 科尔| 赣榆县| 伊吾县| 郑州市| 平阳县| 乡城县| 冀州市| 平罗县| 汾阳市| 汝州市| 衡东县| 特克斯县| 阳新县| 且末县| 高雄市| 新巴尔虎右旗| 个旧市| 花莲县| 镇宁| 博湖县| 尉犁县| 新兴县| 漳平市| 肇东市| 中宁县| 资讯| 北宁市| 甘泉县| 惠东县| 弥勒县| 夏津县| 通榆县| 台北县| 桦川县| 清远市|