Cast Object para outro tipo (de novo!)

5 respostas
felumpe

Exception in thread “main” java.lang.ClassCastException: [[Ljava.lang.String; cannot be cast to [[Ljava.lang.Boolean;

como faço para fazer cast de uma matriz de object para outra de outro tipo?

qualquer ideia ja ajuda ^^

5 Respostas

shogogan
bem manda o codigo que sera mais facil de ajudar

o erro pelo que eu vi é que tu não pode mudar uma linha para uma afirmação(verdadeiro e falso)

String é uma linha

boolean é uma condição(no caso pense em uma lampada ou ela esta acesa ou apagada)

é a unica coisa que posso te passar sem ver o codigo

Shogogan

felumpe
public E[][] transposicao(Object[][] matriz, int lin, int col, String operacao)
    {
        E X = null;
        E[][] aux = operacoes.tipo_tado(X, lin, col, operacao);// define aux como Boolean essa tipo_tado
        for (int i=0; i<col; i++)
        {            
            for (int j=0; j<lin; j++)
            {
                aux[j][i] = (E) matriz[i][j]; //ele nao faz essa parte, pula direto
                System.out.print(aux[i][j]+" ");
            }
            System.out.println("");
        }
        
        return aux;
    }

parcialmente, acho que resolvi minha duvida:

posso substituir aquele object por String, e usar Wrappers para transformar String em int, float, double, byte, boolean, e na propria string...

porem, como faço "cast", ou wrapper de String para character???

é o ultimo tipo que vai faltar

ta certo que fazer 7 if's e elses é meio gambiarra, mas como o unico meio que conheço para resolver isso é wrapper...

rmendes08

Cara, você tá sofrendo demais porque você quer fazer mais de uma coisa no mesmo método. Faça a transposição da matriz em um método e a impressão em um método separado. Você será bem mais feliz.

shogogan

tipo… não entendi direito o codigo mais deixa xD
pra ti transformar uma String em char é so por um

.toCharArray();

se eu não me engano é isso

Marky.Vasconcelos

Wrappers funcionam apenas para os tipos primitivos.

No caso de String voce pode usar o toCharArray para atribuir a um char[]
E para os tipos numericos com o parse da classe correspondente.

String s = "0";
int i = Integer.parseInt(s);
float f = Float.parseFloat(s);
double d = Double.parseDouble(s);
long l = Long.parseDouble(s);
char c = Character.parseChar(s);
char c2 = s.charAt(0);//retorna o primeiro char
char[] chars = s.toCharArray();
Criado 8 de junho de 2010
Ultima resposta 10 de jun. de 2010
Respostas 5
Participantes 4