@SuppressWarnings("unchecked") ?

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?