Esta anotação, necessariamente, serve para que ?
Ela serve para calar a boca do compilador e dizer que você sabe o que está fazendo, e analisou as conseqüências de seu ato.
Portanto, não deve ser usada indiscriminadamente (ou seja, quando você não sabe o que está fazendo).
Muitas vezes é possível você reescrever seu código de forma que seja dispensável o uso dessa anotação.
Na minha opnião, é ideal não ter, estou errado?
Se não tem quer dizer que seu código está bem desenhado e que aquilo que “não dá mais warning” é porque está bem definido e é aquilo mesmo e ponto final…
Eu fiz um refactoring esses dias para eliminar todos os warnigns do projeto utilizando PMD, vale a pena…
Na verdade ele esconde a warning ao invés de corrigi-la.
Basicamente serve para dizer ao compilador “se der merda o problema é meu e foda-se”.
Isso deve ser evitado a todo o custo, e só usado quando não sobrar qualquer outra alternativa.
É o tipo de coisa que deve ser usada para compatibilizar certas APIs que não estão preparadas para usar generics. Por exemplo, normalmente é usado quando você sabe que uma query do Hibernate vai retornar uma lista de objetos do tipo X.
De modo geral, é melhor usar essa anotação em nível de declaração de variável que em nível de método. Por exemplo:
// Funciona mas não é muito adequado
@SuppressWarnings ("unchecked")
List<String> getStrings() {
List<String> ret = hib.query();
return ret;
}
// Usando o menor escopo possível para essa annotation
List<String> getStrings() {
@SuppressWarnings ("unchecked") List<String> ret
= hib.query();
return ret;
}
poW MW AJUDOU MUITO EU NÃO SABIA
HEHEHEEH
vLW :lol: :lol:
E a anotação
@SuppressWarnings ("serial")
Pra que serve?