Dúvida simples sobre tipos
Eu estou aprendendo Java e estou com uma dúvida quanto a tipos... Estou programando o seguinte código
Eu programei o array amigo como object porque foi a unica forma de eu conseguir executar o código, porque a princípio eu tentei rodar assim
Mas deu erro por que é como se ele não aceitasse o tipo Array String, somente Object.
Eu até adiciono um cast mas dá erro depois, tipo nesse caso
Aí o Java reporta esse erro : Exception in thread "main" java.lang.ClassCastException: class java.lang.String cannot be cast to class [Ljava.lang.String; (java.lang.String and [Ljava.lang.String; are in module java.base of loader 'bootstrap')
at AprendendoJanelas.teste.main(teste.java:24)
Tipo, por que eu tenho que criar um array do tipo Object e depois eu preciso converter esse object pra String, não posso colocar direto pra tipo STRING ?
Object[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"};
String s = String.valueOf(JOptionPane.showInputDialog( null,"Escolha um amigo","Escolha",JOptionPane.QUESTION_MESSAGE,null,amigo,amigo[5])); System.out.println(JOptionPane.showInputDialog("O amigo escolhido foi: ", s));
Eu programei o array amigo como object porque foi a unica forma de eu conseguir executar o código, porque a princípio eu tentei rodar assim
String[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"}; amigo = JOptionPane.showInputDialog(null,"Escolha um amigo","Escolha",JOptionPane.QUESTION_MESSAGE,null,amigo,amigo[3]); System.out.println(JOptionPane.showInputDialog("Seu amigo escolhido foi:", amigo));
Mas deu erro por que é como se ele não aceitasse o tipo Array String, somente Object.
Eu até adiciono um cast mas dá erro depois, tipo nesse caso
amigo = (String[]) JOptionPane.showInputDialog(null,"Escolha um amigo","Escolha",JOptionPane.QUESTION_MESSAGE,null,amigo,amigo[3]); System.out.println(JOptionPane.showInputDialog("Seu amigo escolhido foi:", amigo));
Aí o Java reporta esse erro : Exception in thread "main" java.lang.ClassCastException: class java.lang.String cannot be cast to class [Ljava.lang.String; (java.lang.String and [Ljava.lang.String; are in module java.base of loader 'bootstrap')
at AprendendoJanelas.teste.main(teste.java:24)
Tipo, por que eu tenho que criar um array do tipo Object e depois eu preciso converter esse object pra String, não posso colocar direto pra tipo STRING ?
Weslley Felix
Curtidas 0
Respostas
Sadasd
02/06/2019
Cara, não entendi, eu rodei o código abaixo aqui no meu computador e funcionou numa boa:
package Teste; import javax.swing.JOptionPane; public class Teste{ public static void main(String[] args) { Object[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"}; String s = String.valueOf(JOptionPane.showInputDialog( null,"Escolha um amigo","Escolha",JOptionPane.QUESTION_MESSAGE,null,amigo,amigo[5])); System.out.println(JOptionPane.showInputDialog("O amigo escolhido foi: ", s)); } }
GOSTEI 0
Weslley Felix
02/06/2019
Cara, não entendi, eu rodei o código abaixo aqui no meu computador e funcionou numa boa:
package Teste; import javax.swing.JOptionPane; public class Teste{ public static void main(String[] args) { Object[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"}; String s = String.valueOf(JOptionPane.showInputDialog( null,"Escolha um amigo","Escolha",JOptionPane.QUESTION_MESSAGE,null,amigo,amigo[5])); System.out.println(JOptionPane.showInputDialog("O amigo escolhido foi: ", s)); } }
Sim... Essa parte do código funciona...
O que eu queria saber mesmo era porque que eu preciso criar um array do tipo Object pra depois tornar ele pra String ?
Eu não posso pôr ele direto pra String ?
String[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"}; amigo = JOptionPane.showInputDialog(null,"Escolha um amigo","Escolha",JOptionPane.QUESTION_MESSAGE,null,amigo,amigo[3]); System.out.println(JOptionPane.showInputDialog("Seu amigo escolhido foi:", amigo));
Por que eu preciso pôr em Object ?
GOSTEI 0
Sadasd
02/06/2019
Cara, não entendi, eu rodei o código abaixo aqui no meu computador e funcionou numa boa:
package Teste; import javax.swing.JOptionPane; public class Teste{ public static void main(String[] args) { Object[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"}; String s = String.valueOf(JOptionPane.showInputDialog( null,"Escolha um amigo","Escolha",JOptionPane.QUESTION_MESSAGE,null,amigo,amigo[5])); System.out.println(JOptionPane.showInputDialog("O amigo escolhido foi: ", s)); } }
Sim... Essa parte do código funciona...
O que eu queria saber mesmo era porque que eu preciso criar um array do tipo Object pra depois tornar ele pra String ?
Eu não posso pôr ele direto pra String ?
String[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"}; amigo = JOptionPane.showInputDialog(null,"Escolha um amigo","Escolha",JOptionPane.QUESTION_MESSAGE,null,amigo,amigo[3]); System.out.println(JOptionPane.showInputDialog("Seu amigo escolhido foi:", amigo));
Por que eu preciso pôr em Object ?
Claro que pode, eu peguei o mesmo código que digitei acima e troquei:
Object[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"};
por:
String[] amigo = {"Stefano","Bozo","Israel","Jonas","Mike","Douglas"};
e continuou funcionando normalmente
GOSTEI 0