型の安全性は非常に重要です

パッケージのテスト; 

輸入java.util.HashMapを;
輸入java.util.Map;
輸入java.util.Objects。

パブリック クラステスト実装好きな{
     プライベート地図<クラス<>、オブジェクト?>お気に入り= 新しい HashMapの<> (); 

    @Override 
    公共 <T> ボイド putFavorite(クラス<T> 型、Tインスタンス){ 
        favorites.put(Objects.requireNonNull(タイプ)、type.cast(インスタンス))。
    } 

    @Override 
    公共 <T> T getFavorite(クラス<T> 型){
         戻りtype.cast(favorites.get(タイプ))。 
    } 

    公共 静的 ボイドメイン(文字列[]引数){ 
        テストテスト = 新しいテスト(); 
        test.putFavorite(文字列。クラス、 "Javaの" ); 
        test.putFavorite(整数。クラス 1111 )。

        文字列の好き = test.getFavorite(文字列。クラス); 
    } 
}

常にセキュリティ、コンパイルと実行時間の種類を検討します。

 

結論として、一般的なAPIの一般的な使用(例を設定するためのAPI)は、容器の種類ごとに固定されたパラメータの数を制限します。あなたは、この制限を回避するコンテナではなく、最大のキーを配置することによって、パラメータを入力することができます。Classオブジェクトは、異種コンテナのセキュリティキーのこのタイプとして使用することができます。このようにClassオブジェクトは、タイプ・トークンと呼ばれています。また、キータイプをカスタマイズするために使用することができます。例えば、行があるかもしれないキーとしてデータベース(容器)DatabaseRow型とジェネリック型カラム<T>を表します。

おすすめ

転載: www.cnblogs.com/CherryTab/p/11884571.html