java - 如何从命令行获取值到 pojo 列表

标签 java pojo

我有一个像这样的主要方法:

 public static void main(String[] args) {

        // Implement null checks
        ProfileData profileData = new ProfileData();


        try {
                profileData.setaJIO(args[0]!=null?args[0]:"");
                profileData.setAutopayCreated(args[1]!=null?args[1]:"");

        }catch(Exception e){
            e.printStackTrace();
        }
}

我有一个 ProfileData 对象,它是一个 PoJo 并且有大约 100 个条目,我希望从命令行加载这个对象,但是在 main 方法中手动填充所有这些条目变得很乏味。有没有办法在 for 循环中执行此操作?

但是我卡在了如何在 main 方法中基于索引引用 pojo 及其元素的问题上?任何帮助将不胜感激

看一些允许我在下面的代码片段中引入循环的东西:

 try {
                profileData.setaJIO(args[0]!=null?args[0]:"");
                profileData.setAutopayCreated(args[1]!=null?args[1]:"");

        }catch(Exception e){
            e.printStackTrace();
        }

最佳答案

在 Kotlin 中你可以这样写:

class Test(map: Map<String, Any?>) {
    val name: String by map
    val age: String     by map

    override fun toString(): String {
        return "Test[$name, $age]"
    }
}

fun parseArgs(args: Array<String>): Test {
    val zipArgs: List<Pair<String, String>> = args.zip(args.drop(1))

    val paramMap = zipArgs.mapNotNull { (name, param) ->
        if (!name.contains("-"))
            return@mapNotNull null

        name.substringAfter("-") to param
    }.toMap()

    return Test(paramMap)
}

fun main(args: Array<String>) {
    val testArgs = arrayOf("-name", "testName", "-age", "123")

    val test = parseArgs(testArgs)

    println(test)
}

关于java - 如何从命令行获取值到 pojo 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42717880/

相关文章:

java - 用 jackson 以两种不同的方式序列化一个类

java - Tapestry中的POJO定义是什么

java - 如何将这个嵌套的复杂 JSON 解析为 POJO

android jackson json对象映射器数组反序列化

java - 我应该如何让未经检查的异常冒泡并记录下来?

Java 访问修饰符 - 可用于子类和包的方法

java - Spring Boot中slf4j的正确配置是什么

java - 如何创建 "deep"模拟 spring bean?

java - LinearLayout 不显示项目

java - java中如何从数据库生成实体类