2014-10-06 63 views
1

我是比較新的Java編程,我試圖訪問一個匿名對象的屬性,這是我的目標:使用Java匿名對象的屬性

Object tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow); 

通過調試檢查,它看起來是這樣的: enter image description here

我需要訪問鍵值對「to」和「from」,沒有方法,如tomorrowWeekday.get("from")

我將如何訪問匿名對象中的這些值?

回答

2

更改爲

JSONObject tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow); 

你聲明的類型目前設定爲Object。這意味着即使實際類型爲JSONObject,您也看不到除Object外的其他方法。使聲明的類型與實際類型相同,您將能夠看到所需的所有方法。

因爲JSONObjectObject的子類(事實上每個類都是),所以您當前的代碼是合法的,但這意味着您要抽取Object中不存在的任何功能。這有時是一個有用的竅門,但除非你知道你爲什麼要這樣做,否則不會僱用。

(作爲一個方面說明,字匿名不太適合這裏,是不是匿名的:它的名字是tomorrowWeekday。)

0

的領域和方法,你可以在對象上訪問取決於您使用的變量的類型。在上面的代碼中,您使用的是變量Object類型,該類型不具有您的nameValuePairs屬性的任何知識。您需要將參考的類型更改爲更具代表性的實際對象。您的調試器說nameValuePairs的類型爲JSONObject,因此如果您使用JSONObject變量進行參考,則可以使用此處指定的API訪問它:http://www.json.org/javadoc/org/json/JSONObject.html