overrided方法编译错误

本文介绍了在实现类中Override方法出现编译错误的问题及解决办法。错误表现为方法签名相同但未正确覆盖基类方法,原因是接口引用了已删除的类。通过修正接口中的引用,实现了编译成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 问题描述:

在实现类中的某一或某几个Override方法发生编译错误如下:

Name clash: The method put(String) of type XXXServiceImpl has the same erasure as put(String) of type XXXService but does not override it

 

当去掉@Override标签之后,编译错误如下:

The method put(String) of type XXXServiceImpl must override or implement a supertype method

 

而且并非所有的重写方法会报编译错误,而且报错的方法和没报错的方法之间找不出indicated differences,非常的蛋疼。。。

 

 

  • 问题原因:

XXXService(接口)中有编译错误,引用了一个已删除的并且不需要的类。

 

  • 解决方案:

删除接口XXXService中不存在的引用,XXXServiceImpl编译成功。

 

 

这个错误犯的很脑残,但确实困扰了我一个小时,因为接口和实现类不在同一个包里,而且注意力全都集中在实现类的编译错误上,再加上编译器的报错也不太友好,所以没发现接口有问题。有时确实会有这样的遭遇,一个问题花了很长时间没法解决,其实问题并不在问题本身,而是由其他问题引发,这个时候先从当前问题跳出来看一下,往往能找到原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值