zoukankan      html  css  js  c++  java
  • 類型安全很重要

    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> 作为其键。

    一个没有高级趣味的人。 email:hushui502@gmail.com
  • 相关阅读:
    List,Set,Map初级学习
    String,StringBuffer,StringBuilder 的使用
    activity跳转
    JSON与List之间的转换
    子线程更新UI
    数据库查询关键字显示所有结果
    Java数据类型转换1
    git 操作
    MySql导出表结构
    springBoot双数据源配置
  • 原文地址:https://www.cnblogs.com/CherryTab/p/11884571.html
Copyright © 2011-2022 走看看