我是比较新的Java编程,我试图访问一个匿名对象的属性,这是我的目标:使用Java匿名对象的属性
Object tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow);
通过调试检查,它看起来是这样的:
我需要访问键值对“to”和“from”,没有方法,如tomorrowWeekday.get("from")
。
我将如何访问匿名对象中的这些值?
我是比较新的Java编程,我试图访问一个匿名对象的属性,这是我的目标:使用Java匿名对象的属性
Object tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow);
通过调试检查,它看起来是这样的:
我需要访问键值对“to”和“from”,没有方法,如tomorrowWeekday.get("from")
。
我将如何访问匿名对象中的这些值?
更改为
JSONObject tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow);
你声明的类型目前设定为Object
。这意味着即使实际类型为JSONObject
,您也看不到除Object
外的其他方法。使声明的类型与实际类型相同,您将能够看到所需的所有方法。
因为JSONObject
是Object
的子类(事实上每个类都是),所以您当前的代码是合法的,但这意味着您要抽取Object
中不存在的任何功能。这有时是一个有用的窍门,但除非你知道你为什么要这样做,否则不会雇用。
(作为一个方面说明,字匿名不太适合这里,是不是匿名的:它的名字是tomorrowWeekday
。)
的领域和方法,你可以在对象上访问取决于您使用的变量的类型。在上面的代码中,您使用的是变量Object
类型,该类型不具有您的nameValuePairs
属性的任何知识。您需要将参考的类型更改为更具代表性的实际对象。您的调试器说nameValuePairs
的类型为JSONObject
,因此如果您使用JSONObject
变量进行参考,则可以使用此处指定的API访问它:http://www.json.org/javadoc/org/json/JSONObject.html