Java 如何将命令行中的值放入pojo列表
我有这样一个主要方法:Java 如何将命令行中的值放入pojo列表,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.se
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)
}
类测试(map:map){
val名称:映射字符串
val年龄:按映射的字符串
重写funtostring():String{
返回“Test[$name,$age]”
}
}
fun parseArgs(args:Array):测试{
val zipArgs:List=args.zip(args.drop(1))
val paramMap=zipArgs.mapNotNull{(名称,参数)->
如果(!name.contains(“-”)
return@mapNotNull无效的
name.substringAfter(“-”)到param
}.toMap()
返回测试(paramMap)
}
趣味主线(args:Array){
val testArgs=arrayOf(“-name”,“testName”,“-age”,“123”)
val test=parseArgs(testArgs)
println(测试)
}
您应该简化设计,您可以引入ArgumentParser
类。然后main方法将只调用它的一个方法来传递整个数组。这将把解析责任从main转移到单独的类。我仍然必须手动执行,这样做有一种复杂的方法,并且需要更少的代码行。您可以使用spring来实现,为每个变量提供服务类,并在for循环中加载bean和execute方法。听起来很有趣,但如果您有一个繁忙的解析要做,将为您减轻。谢谢,但我使用的是Java