package com.ada.data.entity;import java.io.Serializable;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.MappedSuperclass;@MappedSuperclasspublic class NumEntityimplements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private NUM id; public NUM getId() { return id; } public void setId(NUM id) { this.id = id; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; NumEntity other = (NumEntity) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; }}
package com.tongna.rest.apps;import com.ada.data.entity.NumEntity;public class A extends NumEntity{}
A a = new A(); a.setId(1l); Class ccc = a.getClass().getMethod("getId").getReturnType(); System.out.println(ccc); System.out.println(a.getId().getClass());
java泛型不是计算运行时的数据类型。
所以在使用BeanUtils.copyProperties(source, result);的时候id不能拷贝。