gpt4 book ai didi

java.lang.ClassCastException : com. google.gdata.data.TextContent 无法转换为 com.google.gdata.data.OutOfLineContent

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:49 26 4
gpt4 key购买 nike

我会在表格中滑动所有单元格,但我没有解决。我的代码是:

SpreadsheetService service = new SpreadsheetService("MyApp");
try{
URL SPREADSHEET_URL = new URL("https://spreadsheets.google.com/feeds/worksheets/1-8ATDLTqmzo4QCQijeJ_swZAcmsh/public/full");
SpreadsheetFeed feed = service.getFeed(SPREADSHEET_URL,SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = feed.getEntries();
if (spreadsheets.size() == 0){
System.out.println("NO SPREADSHEET");
}

for(int i = 0; i<spreadsheets.size(); i++){
System.out.println(spreadsheets.get(i).getTitle().getPlainText());
}
List<WorksheetEntry> worksheets = spreadsheets.get(0).getWorksheets();
for (int j=0; j<worksheets.size(); j++){
System.out.println(worksheets.get(j).getTitle().getPlainText());
URL listFeedUrl = worksheets.get(j).getListFeedUrl();
ListFeed listFeed = service.getFeed(listFeedUrl,ListFeed.class);

}

最后一行报告的错误:

ListFeed listFeed = service.getFeed(listFeedUrl,ListFeed.class);

当我编译我的代码时有这个错误:

Exception in thread "main" java.lang.ClassCastException: com.google.gdata.data.TextContent cannot be cast to com.google.gdata.data.OutOfLineContent
at com.google.gdata.data.spreadsheet.WorksheetEntry.getFeedUrlString(WorksheetEntry.java:129)
at com.google.gdata.data.spreadsheet.WorksheetEntry.getListFeedUrl(WorksheetEntry.java:98)
at it.unical.mat.google_data.MySpreadsheetIntegration.main(MySpreadsheetIntegration.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

导入使用:

import android.support.multidex.MultiDex;
import com.google.gdata.client.authn.oauth.*;
import com.google.gdata.client.spreadsheet.*;
import com.google.gdata.data.*;
import com.google.gdata.data.batch.*;
import com.google.gdata.data.spreadsheet.*;
import com.google.gdata.util.*;
import java.io.IOException;
import java.net.*;
import java.util.*;
import java.util.jar.Attributes;

最佳答案

下面提到了两种可能的解决方案

1. 就像您看到调试控制台一样,Intellij Ide 的作用是调用反射。如果您尝试使用另一个 IDE 执行此操作,可能会有这种可能性。(可能是 ecllipse)。正如我所说从方法中搜索出这部分代码,这是导致异常的根本原因

com.google.gdata.data.spreadsheet.WorksheetEntry.getFeedUrlString(WorksheetEntry.java:129

    private String getFeedUrlString(String linkRelKind) {
Version spreadsheetVersion = state.service.getProtocolVersion();

if (spreadsheetVersion.isCompatible(SpreadsheetService.Versions.V1)) {
Link feedLink = this.getLink(linkRelKind, Link.Type.ATOM);
return feedLink.getHref();
} else { // must be SpreadsheetService.Versions.V2; only 2 versions for now
// List or Cells feed Url?
if (linkRelKind.equals(Namespaces.LIST_LINK_REL)) {
// the list feed is stored as a <content> tag
return ((OutOfLineContent)(this.getContent())).getUri();
} else { // it must be Namespaces.CELLS_LINK_REL
// the cells feed is stored in the <link> tag
Link feedLink = this.getLink(linkRelKind, Link.Type.ATOM);
return feedLink.getHref();
}
}
}

下一个可能的解决方案可能是在编译期间

ListFeed listFeed = service.getFeed(listFeedUrl,ListFeed.class);

在上一行中,您试图保存对象,该对象从您的服务中获取返回与特定提要 URL 关联的提要。

只需放置 try catch block 以从 url 获取列表提要并在可能的情况下处理异常。

    try{
service.getFeed(listFeedUrl,ListFeed.class);
}
catch(IOException e){
e.printStackTrace();
}
catch(ParseException e1){
e1.printStackTrace();
}
catch(ResourceNotFoundException e2){
e2.printStackTrace();
}
catch(ServiceException e3){
e3.printStackTrace();
}

请同时调试该行的内联值。

希望对您有所帮助。谢谢

关于java.lang.ClassCastException : com. google.gdata.data.TextContent 无法转换为 com.google.gdata.data.OutOfLineContent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33122866/

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