这是前段时间遇到的一个问题,确定是因为泛型编译导致的,但是特别详细的原因还没有深入研究过,遇到的同志可以看下哈。
@Controller
public class UserController {
@Autowired
UserManager userManager;
上面的controller中自动注入了一个UserManager,该manager是一个泛型类。
public interface UserManager extends GenericManager<User, Long> {}
public interface GenericManager<T, PK extends Serializable> {
T get(PK id);
}
泛型接口中有一个get的接口
上面该manager原始的泛型格式,因为针对用户我们有了一个分库的需求,于是本地开发进行
public interface UserManager extends GenericShardManager<User> {}
如上:本地的UserManager继承的泛型接口被改变了;
就在这时,来了一个着急上线的新的小需求,改变UserController中一个方法中的一点业务逻辑,改完编译,将编译后的UserController发布测试,报错,找不到get方法。
why?在我的UserController中只是引用了一个UserManager的接口,然后通过autowire自动将实例注入,启动时无错误,使用的时候别的method都可以正常使用,但是旧的泛型接口中的方法一律提示nomethod异常。
分享到:
相关推荐
第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果...
调优案例分析与实战 / 106 5.1 概述 / 106 5.2 案例分析 / 106 5.2.1 高性能硬件上的程序部署策略 / 106 5.2.2 集群间同步导致的内存溢出 / 109 5.2.3 堆外内存导致的溢出错误 / 110 5.2.4 外部命令导致系统...
5.6 泛型可能引起的错误 5.6.1 原始类型变量的赋值 5.6.2 原始类型带来的擦除 5.6.3 创建泛型数组的陷阱 5.7 正则表达式的陷阱 5.8 多线程的陷阱 5.8.1 不要调用run方法 5.8.2 静态的同步方法 5.8.3 静态...
Go语言有时候被描述为“C类似语言”,或者是“21世纪的C语言”。Go从C语言继承了相似的表达式语 法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有C语言一直所看中的...虽然有时候这会导致一个“无类
null与void null值用来表示数据类型未被赋予任何...null值赋给值类型将导致编译错误。 void用于方法值的返回,其本质并不是一个数据类型,它只是用于指出没有数据类型。 System.Nullable C#中null值不能赋值给值类型,
另外,缺少泛型和Rust类型系统的“ hacks”会导致清晰明了的错误,易于用户解析和修复。在运行时性能方面,紫外线从一开始就设计时就考虑到了性能。为此,我们为每种类型提供两种独立的类型,每种具有几乎相同的功能...
程序里的变量名与Sql模板里的变量经常会出现不一致,而这些错误无法在编译时发现,靠人工检查很容易造成错误泄漏。也没提供工具直接生成SQL模板和映射配置文件。 <br>第九,IBatisNet的SqlMap文件里的SQL语句以...
程序里的变量名与Sql模板里的变量经常会出现不一致,而这些错误无法在编译时发现,靠人工检查很容易造成错误泄漏。也没提供工具直接生成SQL模板和映射配置文件。 <br>第九,IBatisNet的SqlMap文件里的SQL语句以...
程序里的变量名与Sql模板里的变量经常会出现不一致,而这些错误无法在编译时发现,靠人工检查很容易造成错误泄漏。也没提供工具直接生成SQL模板和映射配置文件。 <br>第九,IBatisNet的SqlMap文件里的SQL语句以...
按照我以前的脾气,我什么软件都得要最新的稳定版,但PHP之类的软件是例外,因为版本高了,会导致很多程序不兼容,相对来说5.3兼容性算是最好的版本之一,当然5.2也可以。 强迫症实在受不了,官方说5.3.29是5.3的...
它是完全泛型的并且是类型安全的(没有强制类型转换),如果使用错误将导致编译失败,从而提高了正确率(正确性由编译器保证)。 这个库的很多模板类型推导不需要C++11的支持,这是一个大的优势(VS2010才开始支持C++11)...
Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再 被引用的对象所占据的内存空间,使得程序员不用再...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...