gpt4 book ai didi

java - 如果没有强制转换,将通用数据库方法封装在 Java 父类(super class)中然后从子类调用是行不通的。帮助

转载 作者:行者123 更新时间:2023-12-01 05:54:54 26 4
gpt4 key购买 nike

我有 PHP 背景,但在使用 Java 时遇到了很多麻烦。我有一个包含通用数据库方法的父类 Entity,例如静态方法 getById(int id)。我的目标是拥有此类的子级,例如 Person,以便我可以调用:

Person p = Person.getById(1);

目前这不起作用,因为 getById(1) 返回一个 Entity 而不是 Person。我可以转换结果,但必须有一种比每次调用通用方法之一时都进行转换更好的方法?

在 PHP 中,我的最后一行类似于:

return new static(..);

据我所知,由于缺乏具体化泛型,我无法在 Java 中完成此任务?

如有任何帮助,我们将不胜感激。如果这是不可能的,我很乐意接受有关更好方法的建议

最佳答案

您想要遵循 DAO 模式。设计一个具有保存、加载、更新等方法的接口(interface) PersonDao....提供一个实现。持久性操作应该在 DAO 中进行,而不是在域类中进行——这些类提供业务逻辑(例如,根据第一个和最后一个给出 Perso 的全名)。

如果您确实雄心勃勃,您可以定义一个通用的 DAO,并且您的实现应该非常简单,因为所有功能都是通用定义的。谷歌搜索一下...

编辑——我为你做的

http://www.ibm.com/developerworks/java/library/j-genericdao.html

关于java - 如果没有强制转换,将通用数据库方法封装在 Java 父类(super class)中然后从子类调用是行不通的。帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3340197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com