Project sample = new Project();
这意味着创建一个项目类型的变量样本,创建一个对象并将其分配给变量。
下面的代码是什么意思
Project sample = new Project() {
private void Test(){
}
}
Test 是一种方法,这段代码是什么意思,如何调用 Test() ?
谢谢
Project sample = new Project();
这意味着创建一个项目类型的变量样本,创建一个对象并将其分配给变量。
下面的代码是什么意思
Project sample = new Project() {
private void Test(){
}
}
Test 是一种方法,这段代码是什么意思,如何调用 Test() ?
谢谢
这:
Project
;Test()
(在其他情况下,这可能是覆盖,但在这里不能);sample
。Test()
是private
,调用它的唯一方法是从匿名子类的另一个方法。由于您没有其他方法,因此无法调用Test()
.
Project sample = new Project() {
private void Test(){
}
}
只需创建一个扩展 Project 的匿名类,该类返回并new
返回匿名对象。
该Test
方法要么是新定义的实例方法,要么是(如果Project
有方法则被覆盖Test
)。
除了其他答案。当您实现interface
或扩展abstract
类时,这种匿名类非常有用。例如:
public interface MyInterface {
public void doStuff();
}
这是你的实现:
MyInterface myInterface = new MyInterface() {
public void doStuff() {
//here is your implementation
}
public void doAnotherStuff() {
//Note that this method is public, but
//you're still not able to call it from outside of this class
//because it's not part of MyInterface's contract
}
};
这一行会给你一个错误:
myInterface.doAnotherStuff(); //WTF? I don't know about this method of MyInterface