Variável não inicializada - Embora eu seja? [duplicado

Esta pergunta já tem uma resposta aqui:

Por que obtenho um erro do compilador "variável não pode ter sido inicializada" no meu bloco de chave 1 resposta

Respondida

Mike sugeriu que eu adicionasse algum código ao

default:
break;

parte do comutador. Eu adicionei uma exceção a ele e não há necessidade de alterar mais nada. O código agora é executado com sucesso.Obrigado rapazes

EDITED PARA LEITURA:

Erro: "Descrição Tipo de localização do caminho do recurso As mensagens variáveis locais podem não ter sido inicializadas TweetFragment.java / Twitter offline / src / com / deadpixels / offline / linha de twitter 78 Problema Java"

para a linha:

int handleStartsAt = messages[i].indexOf('@');

E o mesmo erro ocorre duas vezes na linha 80, sendo:

ph = messages[i].substring(handleStartsAt, messages[i].length());

Quanto às suas perguntas, o

default:
break;

line foi adicionado como o tipo de tweet int deve ser apenas 0, 1 ou 2. A função é chamada em um ambiente controlado e, dessa forma, tenho certeza de que a chamada não retornará uma exceçã

END OF EDIT.

Estou tentando criar um método para retornar uma matriz String. Essa matriz de String possui um tamanho que será alterado dependendo do tipo de mensagem que é passado para o método como parâmetro. Estou tendo alguns problemas para fazer isso, pois aparentemente não estou inicializando minha variável; embora eu acho que sou.

A variável com a qual estou tendo problemas é a matriz "messages"

Lembre-se de que não posso declarar o seguinte:

String [] messages = new String [arrayLength];

Neste ponto da chamada, não sei o comprimento da matriz. E não posso fazer isso:

String [] messages = null;

esde então, vou encontrar um erro de tempo de execução, apesar de não receber alertas em tempo de compilaçã

Além disso, apenas para esclarecer, eu teria qu

messages = OfflineTwitter.mentions;

a linha acima inicializaria a variável "OfflineTwitter.mentions" é uma matriz, armazenada apenas em uma classe diferent

Aqui está o trecho de código.

public String[] getHandles (int tweetType) {

    int arrayLength = 0;
    String [] handles;
    String [] messages;

    switch (tweetType) {
    case 0:
        arrayLength = OfflineTwitter.mentions.length;
        messages = OfflineTwitter.mentions;
        break;
    case 1:
        arrayLength = OfflineTwitter.directMessages.length;
        messages = OfflineTwitter.directMessages;
        break;
    case 2:
        arrayLength = OfflineTwitter.allTweets.length;
        messages = OfflineTwitter.allTweets;
    default:
        break;
    }

    handles = new String [arrayLength];

    for (int i = 0; i < arrayLength; i++) {
        int handleStartsAt = messages[i].indexOf('@');
        String ph = "";
        ph = messages[i].substring(handleStartsAt, messages[i].length());
        int handleEndsAt = ph.indexOf(":");
        String sender = ph.substring(0, handleEndsAt);
        handles[i] = sender;
    }

    return handles;
}

questionAnswers(2)

yourAnswerToTheQuestion