gpt4 book ai didi

java - java如何知道要返回接口(interface)的哪个实现对象?

转载 作者:行者123 更新时间:2023-12-02 00:39:01 25 4
gpt4 key购买 nike

回答时请保持温柔,我不是 java 开发人员(或一般开发人员)

在尝试使用 java 解析 xml 时,我遇到了以下问题 -

NodeList nodelist = document.getElementsByTagName("item");

这里的 xml dom 对象让我根据我提供的标签名称收集所有对象,但返回类型是一个名为 - 节点列表的接口(interface)。由于接口(interface)无法实例化,这让我有点惊讶。

保持断点并调试代码,我意识到我实际上获得了实现 NodeList 接口(interface)的类 DeepNodeListImpl 的对象。

这是怎么发生的? java如何知道返回上面声明的语句中我的接口(interface)“对象”所持有的“某些实现”的对象。

还有一件事 - 在阅读 java api 时我发现 IIOMetadataNode 实现了 NodeList,但我之前的代码片段没有获得 IIOMetadataNode 类型的对象

最佳答案

很好的问题。

Java 不知道要返回对象的哪个实现。

在您的问题中,您引用了 Document 类及其 getElementsByTagName 方法。 Document 是一个接口(interface),这意味着它本身没有实现代码。

因此,实现 Document 接口(interface)的人都可以选择所有详细信息(包括从 getElementsByTagName 方法返回哪个 NodeList 实现)。

关于java - java如何知道要返回接口(interface)的哪个实现对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6854993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com