Quero checar se uma string passada como parâmetro foi vazia.
Fiz isso:
if (.equals("")) throw nomeParte.trim()new IllegalArgumentException();
essa seria a forma correta ou existe uma maneira melhor?
Quero checar se uma string passada como parâmetro foi vazia.
Fiz isso:
if (.equals("")) throw nomeParte.trim()new IllegalArgumentException();
essa seria a forma correta ou existe uma maneira melhor?
Quero checar se uma string passada como parâmetro foi vazia.Fiz isso:
if (.equals("")) thrownomeParte.trim()new IllegalArgumentException();essa seria a forma correta ou existe uma maneira melhor?
A idéia é mais ou menos essa, mas e se ela for nula?
if (nomeParte == null || nomeParte.trim().equals("")) throw new IllegalArgumentException();
Bom, segundo a recomendação do artigo Contratos Nulos do pcalcado, nao devemos ficar checando por nulos. Então não estou checando.
Vou deixar isso para as classes que forem usar. Também, se eu não checar, de qualquer forma a NPE será lançada.
Bom, segundo a recomendação do artigo Contratos Nulos do pcalcado, nao devemos ficar checando por nulos. Então não estou checando.
Vou deixar isso para as classes que forem usar. Também, se eu não checar, de qualquer forma a NPE será lançada.
E é necessário chegar se é String vazio? O código que vai usar isso não vai lançar uma exceção do mesmo jeito não?
(A não ser que isso seja um validador né)
ao inves de nomeParte.trim().equals("") , use: “”.equals(nomeParte.trim()) ,assim vc não precisa tratar NullPointerException
Mas o correto ainda eh verificar se nomeParte != null, ja que “”.equals(null) == false
Rafael
E é necessário chegar se é String vazio? O código que vai usar isso não vai lançar uma exceção do mesmo jeito não?(A não ser que isso seja um validador né)
Ex: para não ter como ele criar um objeto cliente com nome " ".
Ok,
mas eu daria a mesma exceção?
faria apenas um ou no if, neh.
import static org.apache.commons.lang.StringUtils.isEmpty;
...
if (isEmpty(string))
...
hehe 
Sei lá, não acho que isso seja uma coisa pra ser colocada lá na sua classe Cliente, porque provavelmente você vai ter que validar se o nome já existe e ainda mais um monte de coisas, será que vale a pena?
Na verdade, não é nome de cliente não. Vou colocar aqui minha classe real. Na realidade é uma parte de um orçamento.
/**
* Verifica se a parte existe.
* Caso a parte exista, adiciona o material na parte.
* Caso não exista acrescenta a nova parte.
* @param material Descrição do material que será adicionado.
* @param quantidade Quantidade do material passado.
* @param nomeParte Nome da parte do item de orçamento, onde o material será utilizado.
* @throws IllegalArgumentException se quantidade <= 0 e se nomeParte = "".
*/
protected void addMaterial(DescricaoMaterial material, BigDecimal quantidade, String nomeParte){
if ( (quantidade.compareTo(new BigDecimal(0)) <= 0) ) throw new IllegalArgumentException();
if (nomeParte.trim().equals("")) throw new IllegalArgumentException();
boolean adicionar = true;
for (ParteDeItem parte:partes){
if (parte.getNome().equals(nomeParte)){
parte.addMaterial(material,quantidade);
adicionar = false;
break;
}
}
if (adicionar) {
ParteDeItem novaParte = new ParteDeItem(nomeParte);
novaParte.addMaterial(material,quantidade);
partes.add(novaParte);
}
}