gpt4 book ai didi

java - 获取Android中对象的所有数据

转载 作者:行者123 更新时间:2023-12-01 11:49:33 25 4
gpt4 key购买 nike

我有一个 Java 对象,其中包含数据,我想收集所有数据。以下是我的传入数据的示例:

Can find my Object data here

            Object[] ret=(Object[])res;
Map<String, Object> map1 = (Map<String, Object>) ret[0];
for (Map.Entry<String, Object> entry : map1.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}

但是这个entry.getValue返回给我'java.lang.Object.....'但是我怎样才能获得有值(value)的数据呢?这样我就可以使用“M.DEWEER & ...”以及数字 228 和 229?

最佳答案

通过转换值。如果所有值都具有相同类型,例如Integer,则

Map<String, Integer> map1 = (Map<String, Integer>) ret[0];
for (Map.Entry<String, Integer> entry : map1.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}

但是,根据您链接的图片,您的值是不同的(并非全部相同):

enter image description here

与这些键关联的值是对象,但它们是从不同类构建的对象。要获得对它们的完全访问权限,您需要根据该类来转换每个:

  • “Id”是一个整数
  • “partner_id”是带有IntegerString的东西
  • “section_id”是带有IntegerString的东西
  • “invoice_line”是带有两个Integer的东西

我不知道这些类(class)是什么,因为您没有提供足够的信息。

如果您只想显示这些类中包含的信息,您可以坚持使用Object并使用.toString()。如果每个类都有一个显示内容的 .toString() 实现,那么您自己发布的代码将适用于此。如果他们不这样做,请更新它们,以便他们这样做。

如果您可以控制要使用的集合,那么可能值得考虑使用 A type-safe heterogeneous container "Effective Java Second Edition" by Joshua Bloch

这都是为了避免使用 instanceOf 来检测类型和基于此的切换行为。这在面向对象编程中被认为是不好的做法,因为它往往会使代码不灵活且难以维护。

关于java - 获取Android中对象的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28905043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com