我对Java编程比较陌生,我正在尝试访问匿名对象属性,这是我的对象:
Object tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow);
通过调试器检查,它看起来像这样:
我需要访问键值对“to”和“from”,没有tomorrowWeekday.get("from")
等方法。
如何在匿名对象中访问这些值?
答案 0 :(得分:2)
更改为
JSONObject tomorowWeekday = convertedTimeForAndroid(openHours, tomorrow);
您当前正在将声明的类型设置为Object
。这意味着除了Object
公开的方法之外,您看不到任何方法,即使实际类型为JSONObject
。使声明的类型与实际类型相同,您将能够看到所需的所有方法。
因为JSONObject
是Object
的子类(实际上每个类都是),所以您当前的代码是合法的,但它意味着您抽象出{{1}中不存在的任何功能}。这有时是一个有用的技巧,但除非你知道为什么要这样做,否则不能使用它。
(作为旁注, anonymous 这个词在这里不太合适。它不是匿名的:它的名字是Object
。)
答案 1 :(得分:0)
您可以在对象上访问的字段和方法取决于您使用的变量的类型。在上面的代码中,您使用的是变量Object
类型,它不了解您的nameValuePairs
属性。您需要将引用的类型更改为更能代表实际对象的内容。您的调试器说nameValuePairs
类型为JSONObject
,因此如果您使用JSONObject
变量引用,则可以使用此处指定的api访问它:{{3 }}