2014-10-06 106 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