创建对象时声明方法 [英] Declaring a method when creating an object

查看:70
本文介绍了创建对象时声明方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么第一种方法是正确的,但是第二种方法却不正确?

Why first way is correct, but second isn't?

第一种方式:

new Object() {
    public void a() {
        /*code*/
    }
}.a();


第二种方式:


Second way:

Object object = new Object() {
    public void a() {
        /*code*/
    }
};

object.a();


在哪里可以找到有关它的更多信息?


And where can I find more information about it?

推荐答案

java.lang.Object has no a methods declared (2), while the anonymous class returned by the class instance creation expression new Object() { public void a() {} } does (1).

使用Java 10的局部变量类型推断(var)将第二个选项设置为作为第一个有效.

Use Java 10's local variable type inference (var) to make the second option as valid as the first one.

var object = new Object() {
    public void a() {}
};
object.a();

这篇关于创建对象时声明方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆