最近遇到一个Java编程的问题,很有意思。看下面两段代码,不够眼尖,不细看,你会发现一模一样。可是上面一段有错,下面一段却没错。
因为是自己照例子编一段代码,总是运行时正常却没反应,刚开始遇到这个问题时,我对了好多遍代码。最后不得不一段一段复制过来对比。结果定位到这个函数。此时我自己还看不出错误,我甚至加上了@Override。因为不加@Override,编译完全不显示错误,没有任何画线提示。
我仅是注释第二部分代码,看到第一部分提示出错。
注释第一部分时,第二部分不提示错误,而且运行正常且反映是预期的。
最后的结论是:1、Android里有一些系统自动调用的回调函数CallbackMethods,如果写的程序运行无错,但是就是没有该有的反应,那就可能是覆写回调函数时没有加@Override且函数名写错了。2、覆写的函数最好 加上@Override。3、可以在Source-> Override/Implement Methods下自动添加覆写和接口函数,可以确保函数名拼写正确。
不知道你对此还有什么高见?