在超类静态方法中实例化子类

时间:2011-06-25 13:37:39

标签: java reflection static

我正在用Java开发ORM。我想这样做。

class Model {
    public static Model find(Object id) {
    }
}

class User extends Model;
class Post extends Model;

User user = User.find(15);
Post post = Post.find(1325);

我该怎么做或类似的事情。我不想将Class对象传递给find方法。

1 个答案:

答案 0 :(得分:2)

你不应该这样做。超级课程永远不会知道它是如何扩展的。

请改用泛型:

package persistence;

public interface GenericDao<T, K extends Serializable>
{
    T find(K id);
    K save(T value);
    void update(T value);
    void delete(T value);
}