gpt4 book ai didi

java - instanceof vs equals on defined string that identifies the Class

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:06 25 4
gpt4 key购买 nike

我可以在使用 instanceof 或获取标识类附属物的字段的程序中测试类类型。所以选择介于两者之间

if(myObjec instanceof Something){
}

if(myObjec.geClassType().equals("Something")){
}

就效率而言,什么是最好的?

geClassType() 是我正在工作的程序对象中存在的一种方法(不是标准的 Java 方法),并且是一种返回带有类名称的字符串的方法。创建对象时,名称作为字段传递

编辑我在代码的第二个示例中获得的字段并没有准确地标识类,而是一个类别,并且还用于不同的例程,但我也可以将它用于此目的,因为我为每个类别使用了一个特定的对象。所以我将其报告为 getClassType 以使我的问题更清楚。

最佳答案

instanceof 效率更高,实际有效(因为 geClassType() 不存在)并且可读性更高。

如果 instanceof 是您想要的行为(因为其他答案指出您概述的两种方法之间的行为可能不同),我不确定您为什么会考虑替代方案?

编辑:我应该重申,即使您的上下文中有一个方法确实按照您的描述进行操作,我仍然看不出这样做的充分理由。如果它不能始终按照您期望的方式工作(例如不同包中具有类似名称的类),它可能会引入错误,它可能会更慢,但更重要的是它是非标准的,因此使您的代码可读性大大降低。

简而言之,instanceof 是一个有用的关键字,它完全按照您的要求行事,可靠且可读性强,而且无需大惊小怪。你到底为什么不使用它?!

关于java - instanceof vs equals on defined string that identifies the Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257215/

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