java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String

11,182

You are adding a string array to users.

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

Change this with

users.add(emailsData.get(0).get(i).split("@")[0]);
Share:
11,182
Alejandro93sa
Author by

Alejandro93sa

Just read the example about me and I'll never be that witty so I'll just say that I love programming, playing games and technology in general.

Updated on June 04, 2022

Comments

  • Alejandro93sa
    Alejandro93sa almost 2 years

    I'm having that error. This is my code:

    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);
        }
    

    The IDE sends me to the service.changeSignature(users, escaped); with the next exception:

    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)
    

    Any solution? The program crashes where it's supposed to transform html code to encoded String and update a Gmail signature with that encoded String