检查 Object 是否是 String、HashMap 或 HashMap[ ] 的实例

发布于 2025-01-06 09:17:15 字数 182 浏览 1 评论 0原文

我在java中有一个对象。有没有办法在将对象实际转换为 String、HashMap 或 HashMap[ ] 之前检查它是否是 String、HashMap 或 HashMap[ ] 的实例?

如果没有,因为上面的方法似乎违反直觉,有没有办法将其转换为每个对象,并测试新转换的对象的某些内容,看看它是否实际上是它所转换的对象的类型?

I have an Object in java. Is there a way to check if an object is an instance of a String, HashMap, or HashMap[ ] before actually casting it to those objects?

If not, as it seems counterintuitive that the above would work, is there a way to cast it into each object, and test something about the newly casted object to see if its in fact the type of object into which it was casted?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

顾铮苏瑾 2025-01-13 09:17:15

是的:

 if(obj instanceof String)
 {
     String str = (String) obj;
     .
     .
     .
 }

顺便说一下,澄清一下:

[...]测试有关新铸造的对象的一些内容,看看它是否确实是它所铸造的对象的类型?

不能将某些内容转换为无效类型。如果 obj 的类型为 String,则 ((Integer)obj) 将导致在运行时引发 ClassCastException -时间。

Yes:

 if(obj instanceof String)
 {
     String str = (String) obj;
     .
     .
     .
 }

By the way, to clarify regarding this:

[…] test something about the newly casted object to see if its in fact the type of object into which it was casted?

You cannot cast something into an invalid type. If obj has type String, then ((Integer)obj) will cause a ClassCastException to be raised at run-time.

孤千羽 2025-01-13 09:17:15

您正在寻找 instanceof操作员。

instanceof 运算符将对象与指定类型进行比较。你
可以用它来测试一个对象是否是类的实例、实例
子类的实例,或者实现特定功能的类的实例
界面。

示例:"Hello" instanceof String 将返回 true,而 new Integer(5) instanceof String 将返回 false

You are looking for the instanceof operator.

The instanceof operator compares an object to a specified type. You
can use it to test if an object is an instance of a class, an instance
of a subclass, or an instance of a class that implements a particular
interface.

Example: "Hello" instanceof String would return true while new Integer(5) instanceof String would return false.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文