码迷,mamicode.com
首页 > 其他好文 > 详细

類型安全很重要

时间:2019-11-18 20:34:01      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:return   使用   重要   div   shm   vat   令牌   instance   rri   

package test;

import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

public class Test implements Favorite {
    private Map<Class<?>, Object> favorites = new HashMap<>();

    @Override
    public <T> void putFavorite(Class<T> type, T instance) {
        favorites.put(Objects.requireNonNull(type), type.cast(instance));
    }

    @Override
    public <T> T getFavorite(Class<T> type) {
        return type.cast(favorites.get(type));
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.putFavorite(String.class, "java");
        test.putFavorite(Integer.class, 1111);

        String favorite = test.getFavorite(String.class);
    }
}

要處處考慮類型安全,編譯時,運行時。

 

总之,泛型 API 的通常用法(以集合 API 为例)限制了每个容器的固定数量的类型参数。 你可以通过将类型参数 放在键上而不是容器上来解决此限制。 可以使用 Class 对象作为此类型安全异构容器的键。 以这种方式使用的 Class 对象称为类型令牌。 也可以使用自定义键类型。 例如,可以有一个表示数据库行(容器)的 DatabaseRow 类型和一个泛型类型 Column<T> 作为其键。

類型安全很重要

标签:return   使用   重要   div   shm   vat   令牌   instance   rri   

原文地址:https://www.cnblogs.com/CherryTab/p/11884571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!