Tenho um tipo Object inteiro e quero comparar com um int.
Alguém me ajuda a fazer isto? Não sei como fazer…
Object to int
10 Respostas
Tenho um tipo Object inteiro e quero comparar com um int.
Alguém me ajuda a fazer isto? Não sei como fazer…
Não entendi sua pergunta.
Mas se você tiver um objeto java.lang.Integer, pode fazer isso:
Integer a = 5;
if (a == 6) {
System.out.println("a");
} else if (a > 6) {
System.out.println("b");
}
Se estiver encapsulado em um Object, vc faz um cast assim:
Object obj = new Integer(6);
int i = 6;
if (((Integer)obj).intValue() == i)
System.out.println("a");
else
System.out.println("b");
public class No {
private No proximo;
private Object elemento;
public Object getElemento() {
return elemento;
}
}
public class Lista{
private No aInicio;
private No aFim;
public No getAInicio(){
return this.aInicio;
}
Tenho estas classes, quando tento fazer esta comparação:
elemento!=(Integer)solucao.getAInicio().getElemento()
Aparece-me o seguinte erro:
Exception in thread "main" java.lang.ClassCastException: No cannot be cast to java.lang.Integer
at Testa.main(Testa.java:30)
Final de ano é cheio de trabalho de estrutura de dados! 
Perguntas:
Como vc faz pra colocar o valor no elemento?
O elemento e sempre um inteiro? se sim, pq vc não coloca ele como int?
[]s
Os valores lidos do teclado estao assim:
Scanner sc=new Scanner(System.in);
int an;
for(int i=0;i<nPessoas;i++){
an=sc.nextInt();
lista.adiciona(new Integer(an));
Eu tenho como tipo Object porque vou usar o mesmo codigo para fazer uma lista de listas.
Testei com:
((Integer)(solucao.getAInicio().getElemento())).intValue()!=elemento
Continua a dar o mesmo erro…
poste o código do seu método adiciona.
Quanto a isso… por um acaso vc está criando uma lista com subníveis? não me lembro se esse era o nome, mas lembro que tinha uma estrutura que era uma lista onde o elemento podia ser um valor ou uma nova sublista…
Se poderes ser mais especifico…
Os valores lidos do teclado estao assim:
Scanner sc=new Scanner(System.in); int an; for(int i=0;i<nPessoas;i++){ an=sc.nextInt(); lista.adiciona(new Integer(an));Eu tenho como tipo Object porque vou usar o mesmo codigo para fazer uma lista de listas.
o que tem dentro desse método adiciona, do objeto lista. coloque o código.
se eu entendi, vc hora vai colocar um Integer dentro desse Objetc e hora vai colocar uma lista, é isso?
Sim é isso que eu quero.
public void adiciona(Object elemento){
No novo = new No(elemento);
if(this.totalDeElementos!=0)
this.aFim.setProximo(novo);
this.aFim = novo;
if(this.totalDeElementos == 0){
this.aInicio = this.aFim;
}
this.totalDeElementos++;
}
bizarro fazer isso em java. em C tudo em, é só tratar os ponteiros.
vc pode usar o operador instanceof pra descobrir o que é que tem dentro do object, antes de fazer o cast, assim vc trata conforme o caso
Object a = new Integer(7);
if(a instanceof Integer)
System.out.println("é um inteiro");
else
System.out.println("é outra coisa");
mas sinceramente, isto é uma puta ganbiarra. sugiro vc procurar alguma forma melhor de fazer isso.