假期学习19

第19天:Java泛型 + Godot信号系统
对应章节:第9章 + Godot补充
(1)今天做了什么: 泛型在编译期做类型检查,避免运行时ClassCastException。定义泛型类class Box、泛型接口interface Dao、泛型方法public T get(T t)。类型通配符:?任意类型、? extends T上界(适合读/生产)、? super T下界(适合写/消费)——PECS原则:Producer Extends, Consumer Super。类型擦除:泛型信息只存于编译期,编译后擦除为边界类型或Object,运行时无法获取泛型具体类型。
Godot方面学习了信号(Signal)系统——节点间通信的机制。用signal关键字自定义信号,emit()发送信号,connect()连接信号到方法。实现了一个简单的计时器:每秒发出timeout信号,更新UI标签显示倒计时。
(2)明天准备做什么: 学习第10章异常处理——异常的继承体系(Throwable→Error/Exception)、Checked与Runtime异常的区别、try-catch-finally执行流程、try-with-resources自动关闭资源、throw与throws的区别、自定义异常类。练习设计登录验证系统。
(3)遇到的问题: 泛型类型擦除导致List和List在运行时类型相同,不能通过instanceof区分,也不能创建泛型数组。List<? extends Number>不能add任何元素(除null)——因为不确定具体是Integer还是Double子类型。Godot的信号connect在Godot 4中语法变了,用timer.timeout.connect(_on_timeout)替代了3.x的老写法,官方文档一定要对应版本号查询。

posted @ 2026-08-14 23:26  呱哒  阅读(12)  评论(0)    收藏  举报