Provavelmente vector ou y não são tipados em algum lugar (passam por um método que recebe Vector sem tipagem por exemplo), onde uma string pode ser colocada neles e quando você faz o get() o java tenta fazer um cast, que não dá certo.
O
ozix
É como o maschiojv. Outra coisa, se eu entendi seu código, acho que a linha 6 devia ser assim (repare no x.get...):
totalx += vector.get(i) * x.get(i);
Não é?
Por fim, seu método pode ser escrito assim também que dá o mesmo resultado:
public int comparison2(Vector<Integer> vector, ArrayList<Integer> y, ArrayList<Integer> x) {
int comparison = 0;
for (int i = 0; i < vector.size(); i++) {
comparison += vector.get(i) * (x.get(i) - y.get(i));
}
return comparison;
}
Aproveitando o código, uma pergunta pra galera:
Eu não gosto de depender do recurso boxing/unboxing. Tem algum recomendação que concorde com meu pensamento ou é só preciosismo meu mesmo?
D
d1egox
A primeira correção do ozix está correta.
Não posso fazer da segunda forma, porque não sei se dar o mesmo resultado.
Mas, tirando isso, vasculhei o código todo e a tipagem tá normal, sem adição de String nenhuma.
diegosantiviago, o código é grande =/
O erro continua: “Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer”
Alguém tem idéia do que seja?
Obrigado aos que já tentaram ajudar!
Abraços!
D
d1egox
Alguém? =)
diegosantiviago
É complicado, porque esse erro é de execução, e não sei o que tem dentro desta lista
O
ozix
brother, a minha alternativa está matematicamente correta.
Quanto ao erro, é devido ao problema já falado pelo maschiojv, mas já que você não quer colocar o resto do código, adicionar essas 3 linhas a seu método e você vai ver qual coleção está entrando com itens de String: