Java (重头戏2.1.3)最小化模型中的代码。静态方法的泛型

Java (重头戏2.1.3)最小化模型中的代码。静态方法的泛型,java,generics,playframework-2.0,generic-programming,Java,Generics,Playframework 2.0,Generic Programming,有没有办法不描述每一个模型? 使用Ebean时,我会在每个模型中编写Finder的定义: public static Finder<Long,Task> find = new Finder<Long,Task>( Long.class, Task.class ); publicstaticfinder=newfinder( 长类,任务类 ); 此外,我通常会根据情况声明所有、创建、删除、更新等方法 public static List<Task>

有没有办法不描述每一个模型? 使用Ebean时,我会在每个模型中编写Finder的定义:

public static Finder<Long,Task> find = new Finder<Long,Task>(
    Long.class, Task.class
  );
publicstaticfinder=newfinder(
长类,任务类
);
此外,我通常会根据情况声明所有、创建、删除、更新等方法

public static List<Task> all() {
    return Task.find.all();
}

public static void create(Task task) {
    task.save();
}
...
公共静态列表所有(){
返回Task.find.all();
}
公共静态无效创建(任务){
task.save();
}
...
我想知道是否有可能只定义一次所有这些东西,然后如果一个模型需要一些不同的功能,只需要为需要它的模型重新声明它。 我尝试使用泛型CustomModel为模型声明父类,显然java不喜欢泛型方法是静态的,这是可以理解的。那么这可能吗?我刚才用PHP做的

我对玩Java还是个新手,如果有人能帮我的话,我会非常感激的


谢谢你们

由于Java中的类型擦除,Finder在编译过程中会丢失很长的时间和任务,在运行时不知道它们,这使得进行这样的抽象非常困难

在Java中使用带有静态的泛型是没有问题的,但是您必须了解自己所处的范围。静态方法无法从定义它的类访问参数化类型,因为这需要类的实际实例


一个想法可能是创建一个非静态帮助器类,该类只将一个类型参数(实体类型)及其.class带到其构造函数中,并创建查找器,并且可以具有实现常见操作的方法。然后在所有实体中创建一个静态实例。

谢谢,你有关于这个想法的更多信息吗?我找到了一个控制器模块,该模块通过快速扫描他们的文档或多或少地满足了我的需求,该模块可能实现了我所描述的功能。所以,如果你决定不使用这个插件,请检查他们是如何实现这个Crud类的。如果你愿意,我更愿意做类似的事情:可惜他们还没有在第二场比赛中使用它。