2016-04-07 2 views
2

У меня такая ошибка. Это мой код:java.lang.ClassCastException: [Ljava.lang.String; не может быть добавлено в java.lang.String

GmailSettingsService service = new GmailSettingsService(APPLICATION_NAME, DOMAIN_NAME, null, null){ 
     @Override 
     public void setUserCredentials(String username, String password) 
       throws AuthenticationException { 
      // Nothing to do here, just Overriding the old method and setting it to null so we can later setOauthCredentials to the service 
     }}; 

    service.setOAuth2Credentials(credential); 
    List users = new ArrayList(); 
    for (int i = 0; i < emailsData.size(); i++) 
    { 
     users.add(emailsData.get(0).get(i).split("@")); 

     String signature = "some html code"; 
     String escaped = StringEscapeUtils.escapeHtml4(signature).toString(); 

     service.changeSignature(users, escaped); 

     users.remove(0); 
    } 

В среде IDE посылает меня к service.changeSignature(users, escaped); со следующим исключением:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String 
at gmailsettings.GmailSettingsService.changeSignature(GmailSettingsService.java:723) 
at Controller.updateSignature(Controller.java:306) 
at Controller.main(Controller.java:126) 
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:144) 

Любое решение? Программа вылетает, где предполагается преобразовать html-код в кодированную строку и обновить подпись Gmail с помощью этой кодированной строки

+1

Он смотрит на меня, как вы пытаетесь бросить массив строк (или список строк) для одной строки, которая не может работать. – Stultuske

+0

Линия 723 в трассировке стека, на которую ссылается строка в примере кода выше? – reallynice

ответ

5

Вы добавляете строковый массив в users.

users.add(emailsData.get(0).get(i).split("@")); 

Изменить это с

users.add(emailsData.get(0).get(i).split("@")[0]); 
+0

Ну, я чувствую себя braindead или что-то вроде того, как полчаса с этой глупой ошибкой ..... Большое спасибо – Alejandro93sa

Смежные вопросы