java - 如何为任何对象创建 JobParametersBuilder?

标签 java spring spring-batch

我正在尝试创建一种方法,该方法可以使用对象的每个成员生成 JobParameters 对象。这是我到目前为止得到的:

public static JobParameters getAttributesAsJobParameters(Object objectToConvert) throws IllegalAccessException {
    JobParametersBuilder jobParametersBuilder = new JobParametersBuilder();

    for (Field field : objectToConvert.getClass().getDeclaredFields()) {
        field.setAccessible(true);
        jobParametersBuilder.addLong(field.getName(), (Long) field.get(objectToConvert));
    }

    return jobParametersBuilder.toJobParameters();
}

但这仅在对象没有任何不同于 Long 的成员时才有效。我怎样才能通用它以适用于所有原始类型?

最佳答案

根据https://docs.oracle.com/javase/tutorial/reflect/member/fieldTypes.html ,您可以使用 field.getType() 来确定数据类型。

此处给出了 Longlong(原始)类型字段的示例:Check type of primitive field

关于java - 如何为任何对象创建 JobParametersBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842750/

相关文章:

java - 在ListView中显示外部SD卡中的音乐文件列表

java - Android 异常尝试调用虚方法 'int android.content.Context.checkPermission(java.lang.String, int, int)

java - Autowiring 作为不同 bean 的子类的 Spring Bean

java - Lucene 6.0 中如何避免重复文档索引

java - 如何检查字符串是否不等于 java 中的对象或其他字符串值?

java - 如何将 Spring Integration Consumer 配置为事件驱动?

java - 从另一个类中的方法获取参数值

java - 单元测试 Spring-WS SOAP 端点在 MockFilterChain 中失败返回 404

java - 如何在 spring 批处理作业中更改 ItemWriter 目标文件名?

java - Spring-Batch:将对象写入固定长度的行?