【发布时间】:2014-09-30 13:44:42
【问题描述】:
我研究了一些有关 OCPJP 7 认证的书籍,并且在内部课程一章中有一些奇怪/不完整的信息。我试图在方法内创建接口,但似乎你不能这样做,你只能在方法内创建类。有什么理由你不能这样做还是只是缺少一个功能?
示例代码:
public class Outer {
public void method() {
class C {} // allowed
interface I {} // interface not allowed here
}
}
【问题讨论】:
-
它有什么用途?
-
我不在乎目的,我只在乎原因,因为我想了解 OCPJP 考试题目背后的逻辑。
-
OCPJP 考试题目背后的逻辑? - 祝一切顺利。也许这是一个误解,但就我目前所见,问题似乎是围绕(实际上)会以不同方式解决的场景构建的 - 并且只是为了防止相应的问题产生。在实际代码中,您永远不必怀疑
a += --a + a++;之类的结果是什么。 (并不意味着这个问题不有趣或不相关) -
@Marco13 he he,我只是想尽可能地覆盖,我不会尝试理解WTFs的语言结构,我只是想了解逻辑问题背后的逻辑:)跨度>
-
@molbdnilo 我不明白为什么我们不允许这样做。我知道答案是因为接口是隐式静态的,但为什么它们必须是静态的呢?也许我想在
method中定义多个I实现。现在我可以了,但我必须在method之外定义I。为什么如果I完全在method内定义和使用,我应该在method之外定义I。将事物定义得尽可能接近它们的使用位置似乎是一个好习惯。
标签: java methods interface scjp