Clonando objetos

5 respostas
O

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

5 Respostas

C

Olá ozzyjunior,

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

Até mais,

J

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.

M

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 ?

J
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 ?

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.:

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();
	}
}
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());
}

Esse codigo aí deve imprimir:
false
true
true

O

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…

Criado 7 de julho de 2006
Ultima resposta 7 de jul. de 2006
Respostas 5
Participantes 4