2

我是 Java 新手,正在尝试学习本地类的概念。我目前正在阅读官方 Java 文档 Oracle 上关于本地类的章节。我在本章中遇到了两个似乎相互矛盾的陈述。有知识的人可以帮我看看哪种说法是正确的吗?或者他们都是正确的,只是我对这个概念的理解还不存在。

  1. 本地类可以访问局部变量。但是,局部类只能访问声明为 final 的局部变量。

  2. 本地类是非静态的,因为它们可以访问封闭块的实例成员。

https://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html

4

1 回答 1

2

这些说法并不矛盾,而且都是正确的。

实例成员(在第二条语句中提到)不是局部变量(局部变量是某些方法或代码块的局部变量,而实例变量属于类的实例,并且可以从该类的任何非静态方法访问class),因此无论它们是否是最终的,它们都可以被本地类访问。

于 2016-01-05T12:39:49.850 回答