可以与方法局部内部类一起使用的合法修饰符之一是抽象的。
例如:
public class Outer {
public void method(){
abstract class Inner{
}
}
}
有没有什么情况你会实际使用这个?
为了参加 SCJP 考试,您必须了解这一点。
原始问题中有一些无效的假设。某些东西是合法/有效的 Java 并不意味着它是您需要使用或需要了解的东西。
我不记得 SCJP 包含奇怪的极端案例问题。
我试图想出一个案例,在该案例中我会使用在方法中声明的抽象类,但一切看起来都很奇怪,而且设计得很糟糕。
然而,这是我想出的一个代码示例(恕我直言,代码设计仍然很糟糕)
public class BatchExecutor {
public static enum ResultNotification {
JMS,
MAIL
};
public Runnable createRunnable(ResultNotification type) {
abstract class Prototype implements Runnable {
public void run() {
performBusinessLogic();
publishResult();
}
abstract void publishResult();
}
switch (type) {
case JMS: {
return new Prototype() {
void publishResult() {
//Post result to JMS
}
};
}
case MAIL: {
return new Prototype() {
void publishResult() {
//Post result to MAIL
}
};
}
}
return null;
}
private void performBusinessLogic() {
//Some business logic
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)