Dúvida com método clone() e type safety.  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
dionat4n
JavaEvangelist
[Avatar]

Membro desde: 04/06/2008 21:08:05
Mensagens: 358
Localização: Porto Alegre (RS)
Offline

Com prazer posto a minha primeira dúvida aqui:



Acusa "Type safety: Unchecked cast from Object to ArrayList<String>". Ok, sei do que acontece, mas como faço para parar de dar esse warning? (Orientadamente à objetos falando.)

Dionatan Moura
CTFL-BSTQB
OCPJP 6 (SCJP) 96%
MPS-BR C1
"Genius is 1% inspiration, 99% perspiration." T.E.
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

[WWW]
dionat4n
JavaEvangelist
[Avatar]

Membro desde: 04/06/2008 21:08:05
Mensagens: 358
Localização: Porto Alegre (RS)
Offline

thingol wrote:


Isso é uma mutreta do Java que só varre para debaixo do tapete o pó,
não tem como fazer isso orientadamente à objetos?
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Se você olhar nos fontes do JDK, há essa mutreta em pelo menos um lugar - deve ter mais lugares onde tem essa coisa horrível.

- Quando se cria um ArrayList<T> a partir de um array, é necessário fazer o cast do array criado para T[], o que é meio porco mesmo.

O problema é que o método "clone" não foi "generificado" (sei lá que palavrão acabei de falar). Então ele continua retornando um Object. O grande problema é que a interface Cloneable é vazia e não tem um método "clone", como você deve bem saber (argh). O método clone é implementado na classe java.lang.Object - argh. Se a interface Cloneable tivesse um método clone, poderíamos ter algo como:


Ou seja, não tem como fazer isso sem ter de usar o quebra-galho.

This message was edited 1 time. Last update was at 16/06/2008 17:32:05

[WWW]
dionat4n
JavaEvangelist
[Avatar]

Membro desde: 04/06/2008 21:08:05
Mensagens: 358
Localização: Porto Alegre (RS)
Offline


Bah, que desilusão! :cry:

hehe

Valeu pela dica!

This message was edited 1 time. Last update was at 16/06/2008 17:34:28

[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team