日期:2014-05-20  浏览次数:20583 次

如何确保调用super.XXX()
Android里面有个异常,叫SuperNotCalledException,如果子类没有通过super.XXX()调用父类的方法,则报此异常。请问如何实现类似的功能,只要能确保调用super.XXX()就行。 
------解决方案--------------------
似乎Java中还真不太容易实现这种控制。构造函数是编译时就控制了,但普通函数并没有此类约束。

需要主调程序跟父类方法之间提前做了特殊约定才有可能做到,比如父类方法被调用后置某个标志位;主调函数最后去检查该标志位啥的;但也很难防范子类通过各种手段去掩盖它。