如何获取值的类型(Java)

如何获取值的类型(Java),第1张

如何获取值的类型(Java)

您有几种选择。

  1. 您可以使用反射
  2. 你可以用
    instanceof
  3. 您可以使用访客模式

对于这些示例,我们将尝试查找此变量的类型:

Object obj = new TargetType();

我们想看看被引用的对象

obj
是否为type
TargetType


反射

您可以通过以下几种方法执行此 *** 作:

if(obj == TargetType.class) {    //do something}

上面代码背后的思想是

getClass()
返回对
Class
用于实例化该对象的对象的引用。您可以比较参考。

if(TargetType.class.isInstance(obj)) {    //do something}

Class#isInstance
检查传递给方法的对象值是否是我们正在调用的类的实例
isInstance
false
如果为
obj
null,它将返回,因此不需要进行null检查。这需要强制转换以对对象执行 *** 作。


实例

这很简单:

if(obj instanceof TargetType) {    //do something}

instanceof
是语言规范的一部分。
false
如果
obj
为null,则返回。这需要强制转换以对对象执行 *** 作。


访客模式

我已经在其他答案之一中对此进行了详细说明。您将负责处理

null
。您应该更深入地研究该模式,以了解它是否适​​合您的情况,因为这可能是一个过大的选择。这不需要强制转换。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5507098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存