创建对象时声明方法 [英] Declaring a method when creating an object
本文介绍了创建对象时声明方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么第一种方法是正确的,但是第二种方法却不正确?
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?
推荐答案
类实例创建表达式 new Object() { public void a() {} }
会执行(1).
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屋!
查看全文