我是 Android/Java 新手。我想编写一个测试应用程序,在其中打印我添加到(自定义)意图的任何额外内容。当我收到我的意图时BroadcastReceiver
,我可以通过以下方式获得所有额外的Bundle及其密钥:
Bundle bundle = intent.getExtras();
Set<String> keys = bundle.keySet();
如何找出与给定键关联的值的类型是什么?
我的想法是这样的:
Object tmp = bundle.get(key);
// utilize https://stackoverflow.com/questions/709961/
但这种方式似乎不是最好的主意。另一种选择似乎是这样的:
if (bundle.getBoolean(key) == null) {
// can't determine if `null` was explicitly associated or not
} else if /* ... */
但是这样我就无法确定空值是否是有意的。我可以创建一个自定义默认值类,但我不确定这是预期的方式。 编辑我刚刚意识到我需要一个相同类型的默认值,所以我什至不能这样做。(不过,可以仔细检查 null 和要知道的自定义默认类型值。)
我如何动态地知道给定键的值的类型?