O que significa esse erro

Note: Arl.java uses unchecked or unsafe operations
Note: Recompile with -Xlint:unchecked for details.

a clas ta em anexo nao conseguir entender esse erro…

Isso não é um erro… é só um Warning

List sList = Arrays.asList(sa); sList.set(1,"lopes");

List<String> sList = Arrays.asList(sa);

Se dá porque você não esta usando uma List tipada… e usando o você afirma que sua List é de String, e por isso não toma mais nenhum warning… =]

:?

Cara, caso não tenha muita noção, estude a API Java Collections Framework (JCF); ela é de suma importância.

Entretanto, vou tentar explicar o que ocorreu.
Em versões anteriores do Java, a JCF era implementada com coleções que gerenciavam Objects somente.

Agora, na nova versão, com a implementação essencial dos Genéricos (importante estudar!), as classes foram remodeladas para suportar os genéricos.

Portanto, uma coleção agora deve, preferencialmente, explanar qual o tipo dos seus objetos, exemplo:

Stack< Integer > stack = new Stack< Integer >();

Isso define que a Stack armazenará só e somente só objetos Integer. Isso é muito bom pq torna “a coisa mais organizada”.

Quando tu tentas criar uma List (que é uma coleção) sem especificar um tipo, desta maneira:

List list = new List();

Tu estás criando uma lista chamada de “tipo bruto”, que é um modo especial mantido para promover a retrocompatibilidade das aplicações que usam coleções com versões antigas do Java.

Quando se está usando tipo bruto (como no seu caso), o Java usa implicitamente, na sua coleção (List) Object como o tipo de dados. Isso incorre no fato de que uma coleção (List) passa a poder armazenar Qualquer tipo de objeto (qualquer classe estende Object) e isso pode causar erros indesejáveis (como qualquer outro).

Cara, não sei se soube expressar-me bem, mas a questão é: procure estudar a “Java Collections Framework” e os “Genéricos”.

isso tudo aconteceu pq nao disse o tipo especifico de minha list?

List<String> lit = new ArraysList();

apenas por isso?

[quote=camilolopes]
apenas por isso?[/quote]

Yeahh…

afff vou ter um infarto por casua dessa certificacao… nunca estudei tanto na minha vida! se juntar os 4 semestre da faculdade nao chga nem aos pes!

Cara, acho que o código que você postou acima até compila, mas não sei quais as conseqüências da real execução.

De qualquer forma, o mais correto é declarar totalmente o tipo, tanto no tipo da variável quanto no objeto instanciado, desta forma:

List< String > list = new ArrayList< String >();

compilar, isso vai… so queria saber sobre as mensagens mas ja saquei valeu!!