Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,泛型信息被移除,仅保留原始类型(如Object或限定类型)。这导致List<String>和List<Integer>在运行时等价于List,引发反射可插入不兼容类型等问题。同时,静态成员不能使用类的泛型参数,多态与泛型擦除存在冲突,需通过桥方法解决。泛型不支持基本数据类型,且无法在运行时进行带泛型的instanceof判断。
自定义注解
本文介绍Java自定义注解的实现原理与应用,结合Spring AOP和过滤器完成日志、权限控制及登录验证。通过@Target、@Retention等元注解定义注解,并在控制器中通过拦截器解析,实现如无需登录访问等功能,提升代码可读性与复用性。(239字)
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,即泛型信息被移除,替换为原始类型(如Object或限定类型)。这导致List<String>和List<Integer>在运行时均为List,引发类型安全、多态冲突等问题。编译器通过桥方法、自动类型转换等机制解决部分问题,但静态成员不能使用类的泛型参数,且基本类型需用包装类。
FastJson:大面积故障规避案例
本文记录了一次由Kotlin语法混淆引发的FastJson反序列化故障排查过程。因误将 `{}` 赋值给Java对象字段,导致FastJson解析时触发 `kotlin_error` 静态标记位异常,进而引发全局反序列化失败。问题隐蔽且影响广泛,最终通过深入源码定位并反思多语言混编下的开发规范与框架风险,强调了对底层机制理解的重要性。(239字)
自定义注解
本文介绍Spring中自定义注解的实现,结合AOP完成日志记录,并通过@Login注解与过滤器实现登录控制,涵盖注解定义、元注解说明及实际应用场景,展示其在日志、权限等场景的扩展用途。