小编Nan*_*dan的帖子

Java泛型接口实现

我有一个如下界面,

public interface MethodExecutor {
    <T> List<T> execute(List<?> facts, Class<T> type) throws Exception;
}
Run Code Online (Sandbox Code Playgroud)

另外,我有一个如下的通用实现,

public class DefaultMetodExecutor implements MethodExecutor {

   public <T> List<T> execute(List<?> facts, Class<T> type) throws Exception
   {
     List<T> result = null;

      //some implementation

      return result;
  }
}
Run Code Online (Sandbox Code Playgroud)

至此,没有编译问题,

但是这个接口的具体实现无法编译,如下所示.

public class SpecificMetodExecutor implements MethodExecutor {

   public <Model1> List<Model1> execute(List<Model2> facts, Class<Model1> type) throws Exception
   {
     List<Model1> result = null;

     //some implementation specific to Model1 and Model2

      return result;
  } 
}
Run Code Online (Sandbox Code Playgroud)

如何为某些已定义的对象实现此接口?我需要去上课级别的泛型吗?

java generics

4
推荐指数
1
解决办法
2万
查看次数

弹簧批 - 处理器链

我需要随后执行七个独特的过程(一个接一个).数据存储在Mysql中.我正在考虑以下选项,如果我错了,请纠正我,或者是否有更好的解决方案.

质量要求:

  1. 从Db读取数据,最后执行七个过程(数据验证,计算1,计算2等),将处理后的数据写入DB.

  2. 需要以块的形式处理数据.

我的解决方案和问题:数据读取:

  1. 使用JdbcCursorItemReader读取数据,因为这是性能最佳的数据库读取器 - 但是,SQL非常复杂,所以我可能不得不考虑使用JdbcTemplate的自定义ItemReader?这使我在处理数据方面具有更大的灵活性.

处理:

  1. 定义七个步骤和块,使用databean在步骤之间共享数据.但是,这不是一个好主意,因为数据进程在块中以及每个块之后,step1 writer将在databean中创建一组新数据.当此databean与其他步骤共享时,数据完整性将成为问题.

  2. 使用StepExecutionContext在步骤之间共享数据.但这可能会影响性能,因为这涉及批处理作业存储库.

  3. 只定义一个步骤,一个ItemReader和一个进程链(七个进程),并创建一个ItemWriter,将处理后的数据写入DB.但是,我将无法管理或监控每个不同的流程,所有流程都将一步到位.

spring-batch

1
推荐指数
1
解决办法
4488
查看次数

标签 统计

generics ×1

java ×1

spring-batch ×1