从一个类传值到主类?

所以这是我的问题和我的方法。在Main类中,我有这样的代码来解析命令行输入。为了处理输入,它被传递到另一个类中。

我的问题是,我怎样才能将hashmap中的值传给main方法进行进一步处理,但只有在所有值都正确输入且没有遗漏的情况下才可以(应该由异常捕获)?

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<>();

}

先谢谢您了!

解决方案:

你的主方法已经在你的类范围内有了变量,你可以像这样访问它们。

String s_mode = commandLineParser.getMode();

这些变量要么是空的,要么是你期望的值。

可以 在你的类里面有一个布尔值来定义所有的事情是否按照你想要的方式发生了,并且先返回这个值,以方便你的操作,或者是代替null检查所有的事情。

**编辑 – 但我想在类创建后,做一个类似于……的方法,并作为布尔值的一部分返回成功。

public boolean processArgs(String args)) 

的方法,并将成功作为布尔方法的一部分返回。

所以会这样做。

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

if (success)
{
    //get stuff
}

***你只需要一组结果吗?因为你可以把处理器设置为一个worker类,然后把你的对象正确建模,然后有一个你的对象列表,你可以在每个实例中调用这些方法。

你还必须在你的方法中的某个点上实际设置它们。

mode = hash_map.get("r");

而不是:

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

****editso你在他们的时刻检查你在注释中要求的东西是。

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
}

给TA打赏
共{{data.count}}人
人已打赏
解决方案

Rails项目切换到selenium后,CI无法正常执行。

2022-4-21 17:01:42

解决方案

Git挂在状态添加提交

2022-4-21 17:01:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索