2012-10-19 26 views
0

我有一个Java程序,我需要接受数组中的命令行参数作为main方法中的输入,然后需要将该数组传递给另一个类的构造函数同一个程序。我需要知道如何在全局声明数组,然后如何传递它并将其携带到构造函数中。在Java中的类之间传递命令行参数

感谢

+0

为什么你认为你需要在全局声明数组(在java中它的'public')来传递它在任何构造函数中?既然你将从main方法本身调用'constructor',你可以将你得到的数组作为命令行参数传递给构造函数。 –

+2

不要考虑使用全局变量。关于将信息传递给构造函数,您可以为接受类的构造函数提供一个接受数据的参数,并在调用此构造函数时将其传入。 –

回答

1
public class Example{ 

    Example(String s[]) 
    { 
    AnotherClass ac = new AnotherClass(s); 
    } 
    public static void main(String[] args){ 
    int num=args.length; 
    String s[]=new String[num]; 
    Example ex = new Example (s);` 
    } 
} 

而且你可以创建AnotherClass

public class AnotherClass{ 
    AnotherClass(String s[]) 
    { 
    // array argument constructor 
    } 
} 

可以使用运行

javac Example.java

java Example

+0

我不能从Main()方法调用AnotherClass,但我需要从Example类的构造函数中调用它,并且我有2个数组。所以你首先需要将main()方法中的2个数组传递给Example类的构造函数,然后从构造函数中调用AnotherClass和数组?如果可能,你可以告诉我怎么做 – user1760174

+0

检查编辑。 – vikiiii

0
class SomeOtherClass{ 
    public SomeOtherClass(String[] args){ 
     this.arguments = args; 
    } 
    private String[] arguments; 
} 
class YourMainClass{ 

public static void main(String[] args){ 
    SomeOtherClass cl = new SomeOtherClass(args); 
    //fanny's your aunt 
    } 
} 

这是如何将参数传递给SomeOtherClass的构造函数。

0

在你的类,它包含的主要方法,你可以有一个像类变量:

String[] cmdLineArgs; 

然后在主方法:

cmdLineArgs = new String[args.length]; 
this.cmdLineArgs = args; 

,然后只实现一个getter将返回cmdLineArgs。然后调用另一个构造函数:

YourObject x = new YourObject(yourFirstClass.getCmdLineArgs()); 

(如果你调用从课程的主要方法,这等构造,你并不需要所有这些步骤,你可以调用构造函数与args直接)