我这样的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将它用于另一个函数... 任何人都可以帮我修复代码,所以我可以使用字符串参数仍然在主?
答案 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
变量值。