从主类调用参数到另一个文件中的另一个文件(1个包)

时间:2017-03-24 08:20:30

标签: java

我这样的2个java文件:

Test1.java

package beiobligasi;

public class Test1 {

        public static void main( String args[] ) {
            Test2.Test2(args);
            String var1 = "Only test!";
        }
    }

Test2.java

package beiobligasi;

public class Test2 {
    static void Test2(String[] args) {
        String source = new Test1().var1;
        System.out.println("Testing result = " + source);
    }
}

基本上,我想在 Test1.java 中使用main中的参数,然后在 Test2.java 的类Test2中调用它。

如果我从主体外的 Test1.java 更改字符串参数,该程序将起作用:

Test1.java

package beiobligasi;

public class Test1 {
        String var1 = "Only test!";

        public static void main( String args[] ) {
            Test2.Test2(args);
        }
    }

但是我需要在main中使用字符串参数,bcs i' ll将它用于另一个函数... 任何人都可以帮我修复代码,所以我可以使用字符串参数仍然在主?

2 个答案:

答案 0 :(得分:1)

您在var1中将Test1设置为本地变量,因此它仅在本地范围内可用。要从类外部访问变量,您必须将其设置为类的属性:

public class Test1 {

    public String var1 = "Only a test!";

    static int main() {
        ...
    }
}

现在,当然,您将无法从main分配此变量,因为它是一个实例变量而main是静态的(静态方法不知道将值赋给哪个实例)。

因此,您也可以将属性设为静态:

public class Test1 {

    public static String var1;

    static int main(String[] args) {
        var1 = "This is a test!"; // Set var1 first
        Test2.Test2(args); // The call function that does something with var1
    }
}

然后您将从Test2访问静态属性,如下所示:

public class Test2 {
    public static void Test2(String[] args) {
        String source = Test1.var1;
        ...
    }
}

答案 1 :(得分:0)

你可以这样创造..

<强> Test1.java

 package beiobligasi;

    public class Test1 {
    static String var1;
            public static void main( String args[] ) {
              var1 = "Only test!";                
              Test2.Test2(args);
            }
        }

首先,您必须在类级别创建String variable,因为我们可以使用类对象或类名访问class property。如果您在variable内创建main method,则无法使用类对象或名称访问它们。因此,首先在类级别声明variable,而不是在main method初始化它们。

在上面的代码中,您需要在调用var1之前初始化Test2 class static method

<强> Test2.java

package beiobligasi;

public class Test2 {
    static void Test2(String[] args) {
        String source = new Test1().var1;
        System.out.println("Testing result = " + source);
    }
}

您可以使用类对象或类名访问var1变量值。