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

java – 从匿名类调用新定义的方法

发布时间:2020-12-14 05:24:16 所属栏目:Java 来源:网络整理
导读:我实例化了一个我添加了一个新方法的匿名类的对象. Date date = new Date() { public void someMethod() { } } 我想知道是否可以从外部调用这种方法类似于: date.someMethod(); 解决方法 好问题.答案是否你不能直接调用date.someMethod(); 我们先来了解这是
我实例化了一个我添加了一个新方法的匿名类的对象.
Date date = new Date() {

      public void someMethod() { }

    }

我想知道是否可以从外部调用这种方法类似于:

date.someMethod();

解决方法

好问题.答案是否你不能直接调用date.someMethod();
我们先来了解这是什么.
Date date = new Date()  { ... };

以上是延续Date类的匿名(没有名称)子类.

当你看到代码,

Runnable r = new Runnable() {

        public void run() {

        }

    };

这意味着您已经定义了正在实现(不扩展)Runnable接口的匿名(没有名称)类.

所以当你调用date.someMethod()它将无法调用,因为someMethod没有在超类中定义.在上面的例子中,超类是Date类.它遵循简单的首要规则.

但是如果你想调用someMethod,那么以下是步骤.
Fisrt方式>参考变量’date’
.date.getClass()getMethod( “的someMethod”)调用(日期).

第二种方式>
用新建的Date类的匿名子类的对象.

new Date() 
{
    public void someMethod() {
          System.out.println("Hello");
    }
}.someMethod();   //this should be without reference 'date'

(编辑:李大同)

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

    推荐文章
      热点阅读