Clonando objetos

olá…

existe alguma forma de se clonar um objeto…

tipo, to precisando copiar um JLabel pois não quero ficar criando um por um, e a cada um q crio tenho q passar os mesmos estilos (fonte, tamanho, cor)…

intaum não teria um jeito de clonar um desses objetos, pra faciliar minha vida rsrs…vlw

Olá ozzyjunior,

JLabel l2 = (JLabel) l1.clone();

Até mais,

O metodo clone() não está implementado na classe JLabel!

Talvez fosse o caso de criar uma subclasse de JLabel que implemente as funcionalidades básicas que você precisa.

Qual a vantagem de clonar um objeto ? Ele fica com o mesmo “HashCode” ? tudo igual ?

Alguem tem um exemplo em que seja necessario clonar um objeto ?

[quote]Qual a vantagem de clonar um objeto ? Ele fica com o mesmo “HashCode” ? tudo igual ?

Alguem tem um exemplo em que seja necessario clonar um objeto ?[/quote]

Você usa quando você precisa de uma copia do objeto, não há vantagem ou desvantagem nisso, você usa se precisar… evita o incoveniente de copiar ele na mão!

ex.:

[code]public class Usuario implements Cloneable{
private int id;
private String nome;
private String login;
private String senha;

     //getters & setters

public boolean equals(Object obj){
	if(obj instanceof Usuario){
		Usuario u = (Usuario) obj;
		return getId()==u.getId();
	}
	
	return false;
}
public int hashCode(){
	return new Integer(getId()).hashCode();
}
public Object clone() throws CloneNotSupportedException{
	return super.clone();
}

}[/code]

[code]public static void main(String[] args) throws Exception{
Usuario usu = new Usuario();
usu.setId(1);
usu.setNome(“Jair”);
usu.setLogin(“jair”);
usu.setSenha(“1234”);

Usuario clone = (Usuario) usu.clone();
System.out.println(clone==usu);
System.out.println(clone.equals(usu));
System.out.println(clone.hashCode()==usu.hashCode());
}[/code]

Esse codigo aí deve imprimir:
false
true
true

vlw jairEiton…

soh pra complementa o topico…

um exemplo do uso de clonagem é o meu caso…

tipo, eu tenho um JLabel q tem muitos estilos (font, size etc) axo q da umas 10 linhas soh de estilo…não ia perde tempo criando classes pra isso pois não tem tanta importante a esse ponto…e eu preciso exatamente de duas copias do mesmo objeto evitando assim q eu cria mais 10 linhas para o novo objeto (q será exatamente igual o otro).

bom, isso eh um exemplo…