这个接口名称中的点是如何允许的,我不能用名称中的一个点创建另一个类/接口名称。Hows是否允许像Map.Entry这样的名称?我以为一个点不允许
0
A
回答
5
这是因为Entry
是Map
接口内的嵌套接口。您可以创建类似的东西,如果你想:
class MyClass {
static class Nested { }
public static void main(String[] args) {
MyClass.Nested n = new MyClass.Nested();
}
}
或者更直接地回答你的问题:
class MyClass {
static class MyEntry implements Map.Entry { }
public static void main(String[] args) {
Map.Entry n = new MyEntry();
}
interface Map {
interface Entry {}
}
}
1
正如凯文Esche评论,创建一个内部类的时候,它是完全合格的名称将成为foo.bar.Outer.Inner
。
1
Entry接口在Map接口中声明。这是一个内部界面。所以为了使用它,我们必须引用Map类,因此Map.Entry。
+1
当然这是一个公共接口,否则你不能从另一个类引用它。接口的所有成员都是自动的'public',而'Map'是一个接口,'Entry'是接口'Map'的成员,所以它也是'public'。 –
+0
@Erwin Bolwidt当然! – Zava
相关问题
- 1. GPL允许这样的修改吗?哪些许可证允许这不是?
- 2. 在Java API中是否有一个LayoutManager允许我这样做?
- 3. 是否允许使用foreach这样做?
- 4. C - 为什么我允许这样做?
- 5. 类型名称是不允许的
- 6. 我如何使不允许列允许空和允许空列不允许空
- 7. 不允许两个名称相同 - mongodb
- 8. 阵列允许不允许
- 9. 为什么我不允许有就像我被允许这样做在使用Python
- 10. HtmlPurifier - 允许名称属性
- 11. Hive允许列名称
- 12. 的EditText焦点不会允许我这样做onKeyBack
- 13. clojure是否允许线延续?如果是这样,怎么样?
- 14. Magento钩 - 请问Magento是否允许我这样做?
- 15. .htaccess允许扩展名,不允许扩展名,并允许尾随斜杠
- 16. 为什么java允许这样做?
- 17. Spring是否允许使用变量作为资源的名称?
- 18. 类型名称不允许的,从主()
- 19. Bing是否允许像Google一样的图片Sitemap?
- 20. 允许用户输入地点的名称而不是坐标
- 21. 是否允许每个App Engine应用(不是1,000)允许3,000个文件?
- 22. Toast是否允许从一个Android appWidget?
- 23. 允许样式为主题
- 24. 为什么这只允许一个类型不是两个? php
- 25. 错误:不允许类限定名称
- 26. System.Net.Mail.SmtpFailedRecipientException:邮箱名称不允许
- 27. 硒化合物类名称不允许
- 28. MySQL更新不允许标题名称?
- 29. 类型名称不允许和期望)
- 30. C++错误:类型名称不允许
因为它是您正在访问的Map接口的内部接口。 – SomeJavaGuy
供参考的链接https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html。这里有一个讨论 - > http://stackoverflow.com/questions/70324/java-inner-class-and-static-nested-class –
@KevinEsche其实它是一个接口;) – vikingsteve