gpt4 book ai didi

java:带有getName() 方法的标准接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 05:54:25 25 4
gpt4 key购买 nike

是否有一个标准的 Java 接口(interface)带有返回字符串的 getName() 方法?我一直发现我必须自己做:

/** objects which know their own names, 
* e.g. that are indexed in a Map by their name
*/
interface NamedObject
{
public String getName()
}

但如果有标准的,我宁愿使用它。


编辑一个例子——我认为这对我的问题有点转移注意力,所以我特别想要建议针对以下情况的替代方案的答案。 (我已经多次遇到对 NamedObject 接口(interface)的需求,所以我希望它是标准库中的东西。)

但是由于您要求提供一些背景信息,这里是:

@Override public void stateChanged(ChangeEvent e) {
Object obj = e.getSource();
if (obj instanceof NamedObject)
{
String name = ((NamedObject)obj).getName();
/* do something based on object's name */
}
}

在我当前的项目中,我有一个包含三个元素的系统:源、传输方法和接收器。我想从源获得一些信息到接收者,我控制两者的实现。不幸的是,传输方法在使用支持 ChangeListener 的对象时卡住了,因此所有接收方都会得到一个 ChangeEvent,我可以用它来获取源对象。

所以我必须在我的源和接收者之间使用隐含的共享语义,即有一个共同的理解,即在 ChangeEvent 中传递的源对象属于 X 类,我可以在其中选择 X 类。在这种情况下,我真正关心的是about 是名称,我可以从中获取更多数据。我可以定义自己的接口(interface),我只是希望能够使用标准接口(interface),因为源和接收器位于不同的 .jar 文件中...

最佳答案

据我所知,Java SE API 中没有。

通用的 NamedObject 是否值得商榷界面有意义。考虑例如 Person类和一个UnixNamedPipe类(class)。两者可以共享相同的 NamedObject接口(interface),但它们的名称实际上具有截然不同的语义。例如,我看不到 Collection<NamedObject> 有意义的情况与Person s 和 UnixNamedPipe秒。

如果你有 PetCat 定义这样一个接口(interface)是有意义的, PetDog也许PetRock类。但是你可能会有一个 Pet已经定义 getName() 的父类(super class)适用于所有宠物。在这种情况下,“名称”的概念不会因一只宠物而改变。

关于java:带有getName() 方法的标准接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9380724/

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