【问题标题】:How to add data to type List<List<Object>>如何将数据添加到类型 List<List<Object>>
【发布时间】:2018-08-13 18:10:56
【问题描述】:

我正在尝试使用 android studio 创建一个 android 应用程序,并且我希望能够将用户输入的数据上传到 google 表格。

我查看了 google sheet API,我相信我已经正确设置了所有必要的依赖项。我遇到的问题是使用内置方法 setValues() 将数据添加到数据类型 ValueRange。

文档说 ValueRange 有以下 setValues 方法

public ValueRange setValues(java.util.List<java.util.List<java.lang.Object>> 
values)

Google 表格 API 文档提供了以下示例,说明如何使用 setValues() 方法

List<List<Object>> values = Arrays.asList(
    Arrays.asList(
            // Cell values ...
    )
    // Additional rows ...
);
ValueRange body = new ValueRange()
    .setValues(values);

当我尝试添加自己的数据时,出现以下错误。

List<List<Object>> values = Arrays.asList(Arrays.asList("hello world"));

Incompatible types.
Required: List<java.util.List<java.lang.Object>>
Found: List<java.util.List<java.lang.String>

所以我的问题是如何将我的数据添加到类型 List&lt;List&lt;Object&gt;&gt; 中?

【问题讨论】:

  • 我没有看到这行List&lt;List&lt;Object&gt;&gt; values = Arrays.asList(Arrays.asList("hello world"));有任何错误
  • 当您将字符串文字传递给.asList() 方法时,您将返回一个字符串列表。如果需要对象列表,请将字符串文字声明为对象:Object hello = "Hello World"; Arrays.asList(hello);

标签: java android google-sheets-api


【解决方案1】:

将字符串转换为对象:

Arrays.asList(Arrays.asList((Object) "Hello World"))

或者添加类型见证:

Arrays.asList(Arrays.<Object>asList("Hello world"))

【讨论】:

    【解决方案2】:

    必需是 ArrayList of Objects,但找到了 ArrayList of Strings。试试下面的代码

    List<Object> objects = Arrays.asList("Hello world");
    List<List<Object>> values = new ArrayList<>();
    values.add(objects);
    setValues(values);
    

    【讨论】:

    • 我得到同样的错误error: incompatible types: List&lt;String&gt; cannot be converted to List&lt;Object&gt;
    【解决方案3】:

    试试这个:

    List<List<Object>> values = Arrays.asList(Arrays.asList(new Object[]{"hello world"}));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-17
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 2021-01-21
      • 2018-11-12
      • 1970-01-01
      相关资源
      最近更新 更多