【问题标题】:When to create a method inside anonymous class何时在匿名类中创建方法
【发布时间】:2015-11-16 21:42:57
【问题描述】:

在下面的代码中,我创建了按钮侦听器,当我尝试创建方法 on() 时,eclipse 建议将其创建为 OnClickListener 的一部分或 mainClass 的一部分。

在这两种情况下创建方法 on() 有什么区别,为什么应该是 protected

代码

private OnClickListener btnListenerOn = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        on();
    }
};
@Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    Log.w(TAG, "@onStart.");
}

protected void on() {
    // TODO Auto-generated method stub

}

【问题讨论】:

    标签: java android class onclicklistener protected


    【解决方案1】:

    Encapsulation 是一个概念,可以引导您了解该方法的放置位置。封装可帮助您将实现细节隐藏在最有限的范围内,例如,当您需要更改实现时,您可以阻止 ripple effect

    在您的情况下,由于您可能不需要从您的OnClickListener 以外的任何其他地方调用on() 方法,因此这是放置它的正确位置。

    在这种情况下,on() 方法应该是私有的,因为您永远不会扩展匿名 OnClickListener 类。如果您的侦听器不是匿名的,您可能需要声明方法 protected 以便您可以覆盖子类中的实现

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多