`

java动态类型安全

 
阅读更多
当想集合中插入一个组数据的时候,除了可以明确的指定类型(如List<Integer>)外,还可以使用java.util.Collections提供的方法来检查尅性。包括的静态方法有

checkedCollection(Collection<E> c, Class<E> type) 
checkedList(List<E> list, Class<E> type) 
checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType) 
checkedSet(Set<E> s, Class<E> type) 
checkedSortedMap(SortedMap<K,V> m, Class<K> keyType, Class<V> valueType) 
checkedSortedSet(SortedSet<E> s, Class<E> type) 


   这些方法的每一个都会将你希望动态检查的容器当做第一个参数接受,将你希望强制要求的类型作为第二个参数。
    在你试图插入不正确的类型的时候就会产生类型转化异常(ClassCastException),例如

List<Dog> dogs2=Collections.checkedList(new ArrayList<Dog>(), Dog.class);
dog2.add(new Cat());


    当你试图防止Dog的类中插入Cat时候就会报异常。但是将导出类放置到容器里里面可以正常运行

    我的疑问:
他的实现原理是什么样的呢,没找到JDK中对应的实现。
分享到:
评论

相关推荐

    JAVA 2平台安全技术-结构,API设计和实现

    2.3 字节代码验证和类型安全 14 2.4 签名应用小程序 15 2.5 关于安全错误及其修复的简要历史 16 第3章 JDK1.2安全结构 19 3.1 起源 19 3.2 为什么需要一个新型的安全结构 19 3.2.1 关于applet的沙盒模型的局限性 19 ...

    Java 2平台安全技术-结构,API设计和实现

    2.3 字节代码验证和类型安全 14 2.4 签名应用小程序 15 2.5 关于安全错误及其修复的简要历史 16 第3章 JDK1.2安全结构 19 3.1 起源 19 3.2 为什么需要一个新型的安全结构 19 3.2.1 关于applet的沙盒模型的局限性 19 ...

    JPA_2.0_中的动态类型安全查询

    如果编译器能够对查询执行语法正确性检查,那么对于Java 对象而言该查询就是类型安全的。 Java™Persistence API (JPA) 的2.0 版本引入了Criteria API,这个API 首次将类型安全查询引入到Java 应用程序 中,并为在...

    java手册中英文java8,java9手册

    在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多...

    konf,一个用于kotlin/java的类型安全级联配置库,支持大多数配置格式.zip

    Kotlin/Java的类型安全级联配置库,支持大多数配置格式。

    2022年Java语言的接口与类型安全Java教程.docx

    2022年Java语言的接口与类型安全Java教程.docx

    Android-YAVI-基于lambda的Java类型安全验证

    YAVI - 基于lambda的Java类型安全验证

    深入理解:Java是类型安全的语言,而C++是非类型安全的语言

    一个函数即使是bool类型的,但是我们还是可以返回int类型的,并且自动将0转换成false,非零转换成true。代码实例如下: 代码如下:#include #include using namespace std; bool fun()//函数返回类型是bool,但是...

    JAVA_API1.6文档(中文)

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...

    java深度历险

    动态编译JAVA源文件 4 JAVA字节代码增强 6 JAVALANGINSTRUMENT 8 总结 9 参考资料 10 JAVA类的加载、链接和初始化 11 JAVA类的加载 11 JAVA类的链接 12 JAVA类的初始化 13 创建自己的类加载器 14 参考资料 15 JAVA...

    konf,支持大多数配置格式的KTILI/Java类型安全级联配置库.zip

    支持大多数配置格式的KTILI/Java类型安全级联配置库。

    NotRetrofit, 为Android和Java类型的安全REST客户端.zip

    NotRetrofit, 为Android和Java类型的安全REST客户端 NotRetrofit ( 实验)贡献者。NotRetrofit将你的REST API 转换为Java接口。广场/翻新是一个伟大的项目。 那么为什么要重新发明轮子? NotRetrofit是第一个用生成的...

    Java 1.6 API 中文 New

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...

    querydslJava类型安全的统一查询

    querydsl:Java类型安全的统一查询

    JAVA上百实例源码以及开源项目

     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

    JAVA上百实例源码以及开源项目源代码

     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

Global site tag (gtag.js) - Google Analytics