Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

isNome ou getNome?

No vídeo, o professor falou que se eu fizer a chamada no JSP a ${empresa.nome} ele irá tentar encontrar o referente a getNome() ou isNome(). Se eu tiver os dois métodos na minha classe, qual dos dois ele dará preferência?

5 respostas

Por convenção o IS deve ser usado para métodos que retornam valores lógicos (true ou false) e o GET para métodos que retornam outros tipos de valores.

Não faz sentido ter um método isNome() e outro getNome().

Provavelmente, ele procurará pelo método que começa com get (prioritariamente). Mas, o ideal é testar para descobrir.

Sim, meu exemplo foi errado. Poderia ser isPerson() e getPerson() por exemplo.

João, seu exemplo não foi errado.

O que quis dizer é que o get deve ser usado quando precisamos de uma informação "literal". Exemplo: nome de alguém, marca de um produto, etc.

Já o método começando com "is" deve ser usado quando precisamos de uma resposta do tipo "sim/não".

Por isto, dificilmente você terá um conflito com os nomes.

De qualquer forma, olhei a documentação e não descobri se o "get" é preferencial em relação ao "is".

O ideal é fazer o código e testar.

João o Gabriel tem toda razão, não faz sentido você criar um metodo como isNome para retornar o valor do nome na variavel. Sempre que você quiser um retorno sempre utiliza o metodo get! já o "is" retorna um boolean, o "is" verifica se o valor da variavel é null ou se tem dados guardado nela como por exemplo.

public void nomeVazio() {
    if(getNome().isEmpty())  {
        is é uma verificação se ta vazio ou não. 
        Já o get usamos sempre para retornar os valores da variavel.
    }
}
solução!

Pessoal,

Respondendo a minha pergunta, o interpretador do JSP irá dar preferência para os métodos com a terminologia 'get' ao invés do 'is', realizei os testes aqui com os dois e o método que possuía o get sempre foi chamado ao invés do 'is'. Essa era a minha dúvida desde o começo.

Sobre a discussão de utilizar o getNome ou o isNome é irrelevante para a dúvida que postei. Foi apenas um exemplo de nome dos métodos.

Obrigado