2013-04-11 66 views
0

這個問題是針對JVM規範的倡導者。根據JVMS,Java SE 7版,第5.3.3節,最後一段:什麼是Java數組類的包?

如果組件類型是引用類型,則數組類的可訪問性由其組件類型的可訪問性決定。否則,數組類的可訪問性是公共的。

因此,數組類可以具有包可見性。按照邏輯,我期望如果foo.baz.MyClass具有包可見性,那麼只有包foo.baz才能看到MyClass數組。但是我在支持這種觀點的規範中找不到任何東西。 5.3節說應該用來確定可見性約束的運行時包是由包的二進制名稱和定義的類加載器構成的。但二進制名稱來自類文件,而數組類沒有類文件。原始類(例如Boolean.TYPE)的類似問題顯然具有公開可見性,但我無法在任何地方找到有關它們的信息。

您能否在JVMS中找到一個明確定義數組/基本類的包的點(或沒有的原因)?

回答

0

這不正是該規範的報價說的是什麼?

如果組件類型是引用類型,則數組類的可訪問性由其組件類型的可訪問性決定。

如果您有一個類some.pkg.SomeClass並且想將它用作some.pkg.SomeClass [],則可訪問性由其組件類型的可訪問性決定。在這種情況下,組件類型是some.pkg.SomeClass。

另一種情況適用於本機類型,並且不能向Java添加更多本機類型。