如何从命令行取值到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个条目,我希望从命令行加载这个对象,但是在主方法中手动填充所有这些条目变得单调乏味。 有没有办法可以在for循环中做到这一点?

然而,我坚持在如何在主要方法基础上索引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) } 

希望这有所帮助。 确保ProfileData中的构造函数接受两个变量。

 public static void main(String[] args) { List<ProfileData>data = new ArrayList<>(); try { for(int i = 0; i < args.length-1; i=i+2){ data.add(new ProfileData(args[i], args[i+1])); } for (ProfileData pd : data) { System.out.println(pd.getjIO() + " " + pd.getAutopayCreated()); } }catch(Exception e){ e.printStackTrace(); } }