如何使用Java从另一个类获取命令行参数

发布于 2021-01-30 16:52:51

所以假设我有一个Java包…

它具有main方法和main方法

然后还有很多其他的类.....

我的问题是,是否有可能从其他不属于主类但位于同一包中的其他类中获取传递给main方法的args …

关注者
0
被浏览
67
1 个回答
  • 面试哥
    面试哥 2021-01-30
    为面试而生,有面试问题,就找面试哥。

    不,不是可移植的,基于JVM的实现可能会有一些诡计,但我从未见过,即使依赖它,这也是一个非常糟糕的主意。

    如果要将这些值放在其他位置,则该main函数需要以某种方式使它们可用。


    一个简单的方法(不一定是 最好的 方法)是将字符串作为第一件事简单地存储起来,main并提供一种获取它们的方法:

    Scratch2.java:

    public class Scratch2 {
        // Arguments and accessor for them.
    
        private static String[] savedArgs;
        public static String[] getArgs() {
            return savedArgs;
        }
    
        public static void main(String[] args) {
            // Save them away for later.
    
            savedArgs = args;
    
            // Test that other classes can get them.
    
            CmdLineArgs cla = new CmdLineArgs();
            cla.printArgs();
        }
    }
    

    CmdLineArgs.java:

    public class CmdLineArgs {
        public void printArgs() {
            String[] args = Scratch2.getArgs();
            System.out.println ("Arg count is [" + args.length + "]");
            for (int i = 0; i < args.length; i++) {
                System.out.println ("Arg[" + i + "] is [" + args[i] + "]");
            }
        }
    }
    

    并且,当使用参数运行时a b c,输出:

    Arg count is [3]
    Arg[0] is [a]
    Arg[1] is [b]
    Arg[2] is [c]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看