Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中检查对象/变量类型的最佳方法_Java_Android - Fatal编程技术网

Java中检查对象/变量类型的最佳方法

Java中检查对象/变量类型的最佳方法,java,android,Java,Android,我有许多类型的活动,但如果在某一点上活动是任务合规性活动,那么我想以一种特殊的方式处理它 我可以做到: if (activity.getClass().getName() == "au.net.example.myapp.TaskComplianceActivity") 但这很难看 我尝试过这个,但没有成功: if (activity instanceof TaskComplianceActivity) 有人对我如何干净利落地做到这一点有什么建议吗?试试这个: if (activity.ge

我有许多类型的活动,但如果在某一点上
活动
任务合规性活动
,那么我想以一种特殊的方式处理它

我可以做到:

if (activity.getClass().getName() == "au.net.example.myapp.TaskComplianceActivity")
但这很难看

我尝试过这个,但没有成功:

if (activity instanceof TaskComplianceActivity)
有人对我如何干净利落地做到这一点有什么建议吗?

试试这个:

if (activity.getClass().getName().equals(TaskComplianceActivity.class.getName()))
或者这个:

if (activity.getClass().getSimpleName().equals(TaskComplianceActivity.class.getSimpleName()))
试试这个:

if (activity.getClass().getName().equals(TaskComplianceActivity.class.getName()))
或者这个:

if (activity.getClass().getSimpleName().equals(TaskComplianceActivity.class.getSimpleName()))

第二种方法是对的,你遇到了什么问题?第一种方法不起作用,因为你不会那样比较字符串。使用
instancecf
的第二种方法还将包括一个
null
检查,如果我单步查看看到的代码:不兼容的条件操作数类型活动和任务符合性活动任务符合性活动无法解析为类型测试实例在大多数情况下都是难闻的代码。如果可以在TaskComplianceActivity中正确执行特殊处理,这将是首选的解决方案-只是一个想法…“不兼容的条件操作数类型”听起来像是一个编译错误,那么如果代码没有编译,您如何“逐步处理代码”?第二种方法是正确的您遇到了什么问题?第一种方法不起作用,因为你不会那样比较字符串。使用
instancecf
的第二种方法还将包括一个
null
检查,如果我单步查看看到的代码:不兼容的条件操作数类型活动和任务符合性活动任务符合性活动无法解析为类型测试实例在大多数情况下都是难闻的代码。如果可以在TaskComplianceActivity中正确执行特殊处理,这将是首选的解决方案-只是一个想法…“不兼容的条件操作数类型”听起来像是一个编译错误,那么如果代码不编译,您如何“逐步执行代码”呢?我没有投反对票,但是很明显,因为您不会以这种方式比较字符串。当我使用
getSimpleName()
尝试第二个字符串时,会出现错误“TaskComplianceActivity无法解析为类型”。但它确实存在!我做错了什么?我没有投反对票,但很明显,因为你没有那样比较字符串。当我用
getSimpleName()
尝试你的第二个时,我得到了错误“TaskComplianceActivity无法解析为类型”。但它确实存在!我做错了什么?