开篇:Java 的"超能力"三件套
想象你是一个厨师。泛型就像一套万能模具,不管做蛋糕还是饼干,模具的形状保证了产品的规格;反射就像X光透视,能在运行时看穿任何对象的内部结构;注解就像食品标签,虽然不影响味道,但告诉处理系统该怎么对待这个食品。
这三个特性撑起了 Spring、MyBatis 等框架的底层魔法。理解它们,你就能看懂框架源码中那些"玄学"代码。
一、泛型:让代码更安全
1.1 没有泛型的痛苦
在 JDK 5 之前,集合里什么都能塞,取出来的时候全靠强转,错了就是运行时炸弹:
// JDK 5 之前的写法
List list = new ArrayList();
list.add("hello");
list.add(123); // 编译不报错!
String s = (String) list.get(1); // 运行时 ClassCastException
大约 14 分钟