解决方法
好问题.答案是否你不能直接调用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'