gpt4 book ai didi

Java动态检查对象的类型

转载 作者:行者123 更新时间:2023-12-01 20:26:50 26 4
gpt4 key购买 nike

我了解到 Java 的类型系统遵循一个被破坏的子类型规则,因为它将数组视为协变的。我在网上读到,如果要读取和修改方法的参数,唯一的类型安全选项是不变性,这是有意义的,我们可以在 Java 中提供一些简单的示例。

Java 通过动态类型检查所存储对象的类型来对此规则进行修补,在性能方面是否显着?我无法想象检查对象类型的附加指令会超过一两个。后续问题是,忽略运行时的任何性能差异,这是否相当于为数组拥有一个不间断的子类型规则?如果我的问题很简单,请原谅我!

最佳答案

我发现一篇文章似乎可以回答您的问题:

“Java提供了三种不同的方法来在运行时查找对象的类型:instanceof关键字、getClass()isInstance()方法java.lang.Class 的。在所有三个中,只有 getClass() 是准确找到对象类型的方法,而其他方法如果对象类型是 super 对象,也会返回 true类型。”

由此看来,您应该能够编写 MyObject.getClass() 并将返回对象类。或者您可以使用MyObject.isInstance(TheObject),如果MyObjectTheObject,这将返回true。第三,你应该能够:

if (MyObject instanceof TheObject) {
//your code
}

Here是网页的链接

这里还有另一个帖子的链接,可能有助于澄清:

Java isInstance vs instanceOf operator

这里还有两个指向其他类似问题的链接:

How to determine an object's class (in Java)?

java - How do I check if my object is of type of a given class?

关于Java动态检查对象的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43774681/

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