(String)objeto é uma tentativa de fazer um downcast, onde vc assume o risco de que o objeto que esta ali com certeza é um String (caso contrario ganhara uma bela ClassCastException.
.toString é qdo vc quer exibir a REPRESENTACAO STRING de um objeto.
Eu poderia pegar um objeto UnidadeFederativa, por exemplo, que tem ID, NOME e SIGLA, e dizer que a representação string dele é:
public String toString() {
return this.sigla;
}
Dessa maneira, vc passando esse objeto pra um System.out.println por exemlo, ou adicionando o objeto numa comboBox swing, aparecera somente a Sigla.
Se vc nao subsrcrever o .toString na sua classe, ele retornaria algo como unidadefederativa@23d45
Bom nessa parte acho que entendi, em suma “chamar um metodo em um objeto nulo dá erro, pois estava tentando chamar algo num lugar onde nao existe qualquer coisa”?
Já o do typecast ainda fiquei meio em duvida :roll: Pois sempre pensei que ao fazer b objeto[/b], o java invocava o .toString() do mesmo.
Você chamar o método toString de algo que é nulo obviamente vai dar null pointer exception. Fazer cast para de algo para String você tem que estar certo de que aquilo é uma String, ou subclasse dela. Não é a mesma coisa.