原因:该对象变量的数据类型为接口类型,而该方法只在实现该接口的类中定义了。
解决方法:1、将该对象变量的数据类型由接口类型转换为实现该接口的类的类型;
2、在接口类中也定义该方法,并在实现该接口类的类中的此方法前面加入@override 注解
例子:public class Transfermsg implements ITransfermsg {
public sendmsg( ) { }
}
另一个类: public class Test{
@Autowired
private ITransfermsg msg; //接口类型变量
msg.sendmsg(); //报错
修改方法:1、将private ITransfermsg msg 改为private Transfermsg msg即可;
2、在接口ITransfermsg中创建一个方法sendmsg( ),并在类Transfermsg的sendmsg( ) { }前添加@override
本文讲解了当尝试通过接口类型的对象调用一个未在接口中声明的方法时可能遇到的问题及解决办法。提供了两种解决方案:一是改变对象的数据类型;二是扩展接口定义并使用@override注解。

665

被折叠的 条评论
为什么被折叠?



