public class Employee implements Comparable<Employee> {
private int id;
private String name;
private int age;
public Employee() {
}
public Employee(int id,String name,int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//通过Comparable接口自定义对象的比较规则
public int compareTo(Employee o) {
if(id>o.id){
return 1;
}else if(id<o.id){
return -1;
}
return 0;
}
//通过反射动态设置类的私有域
public static void main(String[] args) {
Employee e = new Employee();
Class cla = e.getClass();
System.out.println("类的标准名字为:"+cla.getCanonicalName());
try {
Field id = cla.getDeclaredField("id");
System.out.println("设置前的ID为:"+e.getId());
id.setAccessible(true);
id.setInt(e, 10);
System.out.println("设置后的ID为:"+e.getId());
} catch (NoSuchFieldException e1) {
e1.printStackTrace();
} catch (SecurityException e1) {
e1.printStackTrace();
} catch (IllegalArgumentException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
}
private int id;
private String name;
private int age;
public Employee() {
}
public Employee(int id,String name,int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//通过Comparable接口自定义对象的比较规则
public int compareTo(Employee o) {
if(id>o.id){
return 1;
}else if(id<o.id){
return -1;
}
return 0;
}
//通过反射动态设置类的私有域
public static void main(String[] args) {
Employee e = new Employee();
Class cla = e.getClass();
System.out.println("类的标准名字为:"+cla.getCanonicalName());
try {
Field id = cla.getDeclaredField("id");
System.out.println("设置前的ID为:"+e.getId());
id.setAccessible(true);
id.setInt(e, 10);
System.out.println("设置后的ID为:"+e.getId());
} catch (NoSuchFieldException e1) {
e1.printStackTrace();
} catch (SecurityException e1) {
e1.printStackTrace();
} catch (IllegalArgumentException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
}
}
执行结果:
类的标准名字为:order.Employee
设置前的ID为:0
设置后的ID为:10