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