我是Android/Java的新手。我想編寫一個測試應用程序,其中打印了添加到(自定義)意圖的任意附加內容。 當我收到的意圖與我BroadcastReceiver
,我可以通過所有的演員作爲Bundle和他們的鑰匙:在Bundle中,如何找出給定鍵的值的類型?
Bundle bundle = intent.getExtras();
Set<String> keys = bundle.keySet();
如何找出與給定鍵關聯的值的類型?
我當時的想法是這樣的:
Object tmp = bundle.get(key);
// utilize https://stackoverflow.com/questions/709961/
但這way似乎不是最好的主意。另一種選擇似乎是這樣的:
if (bundle.getBoolean(key) == null) {
// can't determine if `null` was explicitly associated or not
} else if /* ... */
但這種方式我不能確定是否空值是否打算。 我可以創建一個自定義的默認值類,但我不確定這是否是預期的方式。編輯我剛剛意識到我需要一個相同類型的默認值,所以我甚至不能這樣做。 (但是可以仔細檢查空值和需要知道的自定義默認類型值。)
如何知道動態給定鍵的值的類型?
您可以使用「的instanceof」知道什麼樣的對象被鏈接到一個關鍵。關於最後一點,如果你得到一個關鍵字null,這意味着它是以任何其他方式完成的,它不會存在該關鍵字。 – Juangcg
也許這個答案可以幫助你:http://stackoverflow.com/a/7163619/2065418 –
@Juangcg但在getBoolean的情況下,它應該返回一個原始類型的'boolean' - 做'instanceof'工作原始類型? – n611x007