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

如何让一个方法不允许被调用
今天接到一个编码文档,里面有个地方让我感到有点困惑。。。就是里面的一个类实现了某个接口,所以必须复写了接口里面的方法,但是当中的某个override的public方法在需求里是不允许被调用。。文档给的做法是直接抛UnsupportedOperationException:

  /*
  * this method is not allow to call.
  */
  @Override
  public void setDisabled(final boolean disable) {
  throw new UnsupportedOperationException();
  }

但是总觉得这样一被call就直接抛exception有点太暴力了。。当遇到这种必须实现接口,但是接口的某些方法对于本类是禁止调用的情况,有什么更好的处理方法??

------解决方案--------------------
可以考虑自己写个注解,然后用反射处理。当调用有这个注解方法的时候不让他invoke就可以了。当然如果这样的话你需要对该类实现代理会比较好。

或者你可以考虑@Deprecated这个注解,提示用户这个方法过时了。让他别用了