不兼容的类型。需要:Object,Found:String?

时间:2017-12-13 01:47:57

标签: java string list object generics

我正在尝试使用Google表格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 ...
);

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

1 个答案:

答案 0 :(得分:2)

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

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

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

相关问题