como eu faço para verificar o conteúdo de um inteiro, por exemplo na classe String nós temos o método equals() mas tipo primitovo não possui esse método… :?:
Verificar o conteúdo de um inteiro
13 Respostas
if(minhaVariavelInteira == 5)
//é igual
Na String temos equals para verificar seu conteúdo, e se usassemos == verificaríamos a referência dele.
Era isso?
Você só precisa usar métodos como equals em tipos não primitivos. Não há como testar referências em tipos primitivos, o teste do == sempre verifica conteúdo.
o programa não está aceitando esse código:
private int ra;
public void setRa(int ra) {
if (ra == "")
throw new IllegalArgumentException("Número do ra informado é inválido");
else
this.ra = ra;
}
vc soh pode usar o operador == para verificar tipo primitivo (int, byte, double, float)
e referencia de objetos (obj1 == obj2), referencia…não valor.
um tipo primitivo nunca esta vazio ou null, ele sempre tem algum valor do tipo dele.
senão me engano, caso vc não sete um valor numa variavel primitiva o valor fica -1.
corrigindo
private int ra;
public void setRa(int ra) {
if (ra==0)
throw new IllegalArgumentException("Número do ra informado é inválido");
else
this.ra = ra;
}
para comparar qualquer coisa com String, que é um objeto, use o método equals()
e como primitivo não tem o método equals, terá que usar a classe Integer.
E int quando não tem valor específico fica como ZERO e não -1.
pois é… me enganei 
para comparar qualquer coisa com String, que é um objeto, use o método equals()
e como primitivo não tem o método equals, terá que usar a classe Integer.E int quando não tem valor específico fica como ZERO e não -1.
Isso funciona, mas é um código completamente idiota, não?
Primeiro, pq vc está fazendo um boxing desnessário para Integer.
Segundo, pq a comparação com string sempre resultará em false.
Terceiro, pq também seria necessário testar se ra não é nulo.
Finalmente, pq o resultado final irá fazer auto-unboxing do conteúdo do int.
Sendo que no código original, o método ficará como:
public void setRa(int ra) {
this.ra = ra;
}
E sem nenhum dos problemas citados acima.
É o que dá tentar ajudar leigos.
O método está todo errado mesmo, porque se tu passa um int pra que tu vai comparar com uma String, né.
Se passar uma String pra setar um inteiro, as vezes isso acontece, poderia até ser…
"Puka’, não sei se vc percebeu, mas esta parte do fórum é destinada para assuntos básicos de java, se vc acha que a pergunta é muito simples, não responda.Simples
Na verdade, até foi por isso que a corrigi. Num fórum de iniciantes um exemplo como o seu, funcional mas logicamente sem sentido, pode ser mais prejudicial do que benéfico. Principalmente pq ele praticamente endossa a confusão do autor do tópico, que foi esclarecida nos posts seguintes.
viniGodoy, neste caso como você faria para validar o conteúdo do campo int?
Primeiro, um campo int nunca contém valor vazio. É impossível defini-lo, portanto, não é necessário checar essa condição.
Se vc tem um intervalo máximo que o número pode conter (digamos, de 1 até 20), então aí sim, use a exception:
public void setRa(int ra) {
if (ra <= 1 || ra >= 20)
throw new IllegalArgumentException("O valor de ra deve ser entre 1 e 20: fornecido" + ra);
this.ra = ra;
}
Caso contrário, o método só com a linha da atribuição.
Valeu viniGodoy.
Um abraço.