实体类,反射,设置通用值

时间:2012-05-16 19:23:30

标签: java jpa

我试过四处寻找,我发现了很多看似我需要的结果。但我无法以对我有用的方式实施它。需要帮助=(

这是我的班级:

import Apple;
public static void SetAddChg(Apple a) throws ClassNotFoundException {
    DateFormat addDate = new SimpleDateFormat("yyyy-MM-dd");
    DateFormat addTime = new SimpleDateFormat("HH:mm:ss");
    Date date = new Date();
    EntityManager entityManager = Persistence.createEntityManagerFactory("EntityLibraryPU").createEntityManager();
    entityManager.getTransaction().begin();
    a.setAddDate((addDate.format(date)));
    entityManager.getTransaction().commit();
}

这是有效的,因为我特意说了这堂课。但是,我希望这是一个可以传递任何类(Apple,Banana,Orange)的泛型类。我该怎么做?

1 个答案:

答案 0 :(得分:0)

对于您要设置的常用属性,您可以让BananaApple实现一个通用界面(例如“Audited”):

public interface Audited {
    void setDateAdded(Date date);
    //etc, etc
}

public class Apple implements Audited { /*...*/ }

public class Banana implements Audited { /*...*/ }

然后你可以接受Audited你的助手方法:

public void setAuditFields(Audited auditedEntity) {
  auditedEntity.setDateChanged(new Date());
  //...etc...
}

//...
a.setSize(textboxSize.getText());
setAuditFields(a);