java - 不兼容的类型。需要 : Object, 找到 : String?

标签 java string list object generics

我正在尝试使用 Google Sheets API 在我的应用程序上进行阅读和写作。

(现在我正在阅读 Google Sheets API Tutorial documents )

我收到一条错误消息

错误

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

代码

List<List<Object>> values = Arrays.asList(
    Arrays.asList(
        // Cell values ...
        "apple", "banana"
    )
    // Additional rows ...
);

我认为 String 具有 Object 属性,因为 Java 中的 public final class String extends Object。 (参见 this oracle documents )但是,我想知道为什么我会出错。而且我不知道如何解决这个问题。

最佳答案

您发布的代码似乎在 Java 9 中工作正常,在早期版本中您可以将第一个参数强制为 Arrays.asList(T...)到预期的类型,它应该按预期工作。就像,

List<List<Object>> values = Arrays.asList(Arrays.asList((Object) "apple", "banana"));

请注意 "apple" 上的 Object 转换会导致 java 编译器将所有后续项视为 Object

关于java - 不兼容的类型。需要 : Object, 找到 : String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47784326/

相关文章:

c# - 按 2 个小数点对字符串列表进行排序

python - 从 Python 中的列表列表中删除重复项

java - 使用 JDBC 或 ODBC 执行进度数据库查询 (4GL)

java - jtable 上的复选框并在 java swing 中获取相应行的值

从 WildFly8/jdk8 迁移到 WildFly14/jdk11 后,WebService 客户端中出现 java.net.SocketTimeoutException

c++ - 就像在 python 中定义 __str__ 一样,在类上调用时如何覆盖 c++ 中的标准全局函数

java - 寻找一种通过仅查找字符串的一部分来从 ArrayList 中删除字符串的方法

java - 如何在另一个文件字符串中搜索并统计字符串 "CTG"?

python - 将字符串转换为嵌套元组 : Python

r - 组合两个嵌套列表 R