gpt4 book ai didi

java - 将值从一个类传递到主类?

转载 作者:行者123 更新时间:2023-12-02 08:41:25 25 4
gpt4 key购买 nike

这是我的问题和我的方法。在主类中,我有这段代码来解析命令行输入。它被传递给另一个类以处理输入。

我的问题是,如何将值从 HashMap 传递到主方法以进行进一步处理,但前提是所有值都正确输入并且没有丢失任何内容(应该由异常捕获)?

public static void main(String[] args) {
try {
CommandLineParser commandLineParser = new CommandLineParser(args);
}
}

在另一个类中我有 CommanLineParser

public class CommandLineParser {

public CommandLineParser(String[] args) {
Map<String, String> hash_map = new HashMap<>();

}

提前谢谢您!

最佳答案

你的 main 方法已经在你的类作用域中拥有了变量,你可以像这样访问它们;

String s_mode = commandLineParser.getMode();

要么为 null,要么具有您期望的值。

可以在您的类中拥有一个 boolean 值来定义一切是否按照您想要的方式发生,并首先返回该值以方便,或者而不是对所有内容进行空检查。

**编辑 - 但我想做一个类似的方法;

public boolean processArgs(String args)) 

创建类后,将成功作为 boolean 方法的一部分返回。

也可以;

CommandLineParser commandLineParser = new CommandLineParser();
boolean success = commandLineParser.process(args);

if (success)
{
//get stuff
}

*** 您只需要一组结果吗?因为您可以将处理器设置为辅助类,然后正确地对对象进行建模,然后获得一个对象列表,您可以在其中在每个实例中调用这些方法。

您还必须在方法中的某个时刻实际设置它们;

mode = hash_map.get("r");

而不是;

String mode = hash_map.get("r");

****编辑因此,您请立即检查您在评论中所要求的内容;

if (!mode.equals("s") || mode.equals("sd") || mode.equals("v") || mode.equals("vd") || mode.equals("d"))

如果模式不是“s”(!表示不是),而是 sd 或 v 或 vd 或 d

你说你想要;

String s_mode = hash_map.get("r");
if (s_mode.matches("s|sd|v|vd|d"))
{
mode = s_mode; //or whatever you want to do with it
}

关于java - 将值从一个类传递到主类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61369351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com