到目前为止,我可以处理在超类中返回子类类型的最佳方法是将子类类型作为类型参数传递。
它看起来并不漂亮,所以我需要知道是否有更好的方法来实现这一点。
这就是我所拥有的:
public abstract class Model<R extends Model<R, ID>, ID extends Serializable> {
public R find(ID id) {
return find(getClass(), id);
}
...
}
public final class SampleRecord extends Model<SampleRecord, Long> {
@Id
private Long id;
}