加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 访问匿名或本地内部类中的匿名或本地内部类

发布时间:2020-12-15 02:29:53 所属栏目:Java 来源:网络整理
导读:好的,所以我知道如何访问包含内部类的外部类,无论是匿名还是内部类. 但我的问题是,如果它本身是一个内部类,如何访问外部类?一些代码可以帮助: public final class LocationPage extends BasePage { private static final String CRITERIA_FORM_ID = "Crite
好的,所以我知道如何访问包含内部类的外部类,无论是匿名还是内部类.

但我的问题是,如果它本身是一个内部类,如何访问外部类?一些代码可以帮助:

public final class LocationPage extends BasePage {
    private static final String CRITERIA_FORM_ID = "CriteriaForm";
    protected Panel onCreateBodyPanel() {
        return new ViewBodyPanel(BasePage.BODY_PANEL_ID) {
            public void invokeMe() {
                // How do I Invoke This Method?
            }

            private Form<CriteriaBean> helpCreateCriteriaForm() {
                return new Form<CriteriaBean>(LocationPage.CRITERIA_FORM_ID) {
                    @Override
                    protected void onSubmit() {
                        LocationPage.this.ViewBodyPanel.invokeMe(); // Compile Error.
                    }
                };
            }
        };
    }
}

更新:对于那些想要看到我在这里尝试做什么的人,这里有一个完整的代码示例.这实际上是Apache Wicket,但我认为你可以得到这个想法.看一下名为onSubmit的方法.我添加了一个代码注释来帮助查明它.

更新二:使代码示例到位.对于那个很抱歉!

解决方法

您只需要指定ParentClass.this.something来消除歧义.如果您的表单没有方法invokeMe,您只需使用该名称而无需限定,编译器应该找到它:

private Form<CriteriaBean> helpCreateCriteriaForm() {
            return new Form<CriteriaBean>(LocationPage.CRITERIA_FORM_ID) {
                @Override
                protected void onSubmit() {
                    invokeMe();
                }
            };
        }

如果函数确实存在于内部内部类中,那么Java中没有任何技巧可以实现.而是将ViewBodyPanel.invokeMe方法重命名或包装成明确的内容.

public void vbpInvokeMe(){
     invokeMe();
  }
  private Form<CriteriaBean> helpCreateCriteriaForm() {
        return new Form<CriteriaBean>(LocationPage.CRITERIA_FORM_ID) {
            @Override
            protected void onSubmit() {
                vbpInvokeMe();
            }
        };
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读