访问Java匿名对象属性

时间:2014-10-06 22:04:48

标签: java android

我对Java编程比较陌生,我正在尝试访问匿名对象属性,这是我的对象:

Object tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow);

通过调试器检查,它看起来像这样: enter image description here

我需要访问键值对“to”和“from”,没有tomorrowWeekday.get("from")等方法。

如何在匿名对象中访问这些值?

2 个答案:

答案 0 :(得分:2)

更改为

JSONObject tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow);

您当前正在将声明的类型设置为Object。这意味着除了Object公开的方法之外,您看不到任何方法,即使实际类型为JSONObject。使声明的类型与实际类型相同,您将能够看到所需的所有方法。

因为JSONObjectObject的子类(实际上每个类都是),所以您当前的代码是合法的,但它意味着您抽象出{{1}中不存在的任何功能}。这有时是一个有用的技巧,但除非你知道为什么要这样做,否则不能使用它。

(作为旁注, anonymous 这个词在这里不太合适。它不是匿名的:它的名字是Object。)

答案 1 :(得分:0)

您可以在对象上访问的字段和方法取决于您使用的变量的类型。在上面的代码中,您使用的是变量Object类型,它不了解您的nameValuePairs属性。您需要将引用的类型更改为更能代表实际对象的内容。您的调试器说nameValuePairs类型为JSONObject,因此如果您使用JSONObject变量引用,则可以使用此处指定的api访问它:{{3 }}

相关问题