You can use reflection
this does the job and shows it:
public class FirstClass {
private String name;
private String age;
private String number;
public FirstClass(String _name, String _age, String _number)
{
name=_name; age=_age; number=_number;
}
}
public class CloneClass {
private String name;
private String age;
private String number;
public CloneClass(String _name, String _age, String _number)
{
name=_name; age=_age; number=_number;
}
public void show()
{
System.out.println("NAME="+name+" AGE="+age+" NUMBER="+number);
}
}
FirstClass A=new FirstClass("Jules","44","123A4535");
CloneClass B=new CloneClass("","","");
Class class1=A.getClass();
Class class2=B.getClass();
Field[] fields_A = class1.getDeclaredFields();
Field[] fields_B = class2.getDeclaredFields();
for (int k=0;k<fields_A.length;k++)
{
Field one_field=fields_A[k];
String name_of_field=one_field.getName();
if (name_of_field.equals("this$0")) continue;
for (int z=0;z<fields_B.length;z++)
{
Field field_destination=fields_B[k];
String name_of_field2=field_destination.getName();
if (name_of_field.equals(name_of_field2))
{
try
{
one_field.setAccessible(true);
field_destination.setAccessible(true);
Object value=one_field.get( A);
field_destination.set(B, value);
}
catch (Exception ex) {System.err.println(ex);}
}
}
}
B.show();
source
share