首页 > 解决方案 > 我可以在java中的泛型函数中为泛型对象的特定属性设置值吗?

问题描述

我有一个函数负责保存这样的通用对象:

public <T> T save(final T o){
        return (T) getCurrentSession().save(o);
    }

我的对象有一些常见的特定属性,例如 createDate、createId、updateId、updateDate,... 我可以在我的保存函数中设置这些属性,例如:

o.setProperty("propertyName", value)

标签: javagenerics

解决方案


您可以对类型参数 T 设置界限,以允许您从已定义的接口调用它的方法:

    interface MyObject {
        void createDate();
        void createId();
        ...
    }
    public <T extends MyObject> T save(final T o){
        o.createDate();
        return (T) getCurrentSession().save(o);
    }

推荐阅读