从一个类传值到主类?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从一个类传值到主类?相关的知识,希望对你有一定的参考价值。

所以这是我的问题和我的方法。在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
}

以上是关于从一个类传值到主类?的主要内容,如果未能解决你的问题,请参考以下文章

在jsp的<script></script>中怎么获取servlet传过来的参数呢??我想接收从servlet类传过来的数据显示出来

c#将事件的参数从另一个类传递到主类

Spring MVC 从jsp页面传值到Controller方法里

Java:Drag&Drop:从 DropTargetDropEvent 将数据返回到主类

flinkFlink 1.12.2 源码浅析 : yarn-per-job模式解析 从脚本到主类

Servlet通过JavaBean传值到JSP页面