Java 分配值时不显示变量值
请在下面的java代码中提供帮助 CLASS1: 我在Class1中有以下代码:Java 分配值时不显示变量值,java,selenium-webdriver,automation,Java,Selenium Webdriver,Automation,请在下面的java代码中提供帮助 CLASS1: 我在Class1中有以下代码: public String getnumber() { return this.number; } CLASS2: 我有另一个类Class2,代码集为: Class1 cla = new Class1(); public String number_to_compute=cla.getnumber() // This is variable CLASS3: 我有一个第三个类c
public String getnumber()
{
return this.number;
}
CLASS2:
我有另一个类Class2,代码集为:
Class1 cla = new Class1();
public String number_to_compute=cla.getnumber() // This is variable
CLASS3:
我有一个第三个类class3
,其中我正在执行一些其他方法:
Class1 class1 = new Class1();
Class2 class2 = new Class2();
public static void main(String args[])
{
System.out.println(class1.getumber());
System.out.println(class2.number_to_compute);
}
结果:
在上面的问题中,class1.getumber()
工作正常,并给出正确答案,其中asclass2.number\u to\u compute
outtputsnull
为什么
class2.number\u to\u compute
anull
值?在class2
中,您使用cla
对象计算number\u to\u compute
。(它不使用Class3
中的Class1
对象)
在Class2的cla
中正确设置number
的值
class Class1
{
String number;
public String getnumber()
{
return this.number;
}
}
class Class2
{
Class1 cla;
public String number_to_compute;
public Class2()
{
cla = new Class1();
cla.number = "1";
number_to_compute = cla.getnumber();
}
}
class Class3
{
Class1 class1;
Class2 class2;
public Class3()
{
class1 = new Class1();
class1.number = "2";
class2 = new Class2();
}
public static void main(String args[])
{
Class3 cl = new Class3();
System.out.println(cl.class2.cla.getnumber());
System.out.println(cl.class2.number_to_compute);
}
}
或者您可以使用在Class3
class Class1
{
String number;
public String getnumber()
{
return this.number;
}
}
class Class2
{
Class1 cla;
public String number_to_compute;
public Class2()
{
cla = new Class1();
cla.number = "1";
number_to_compute = cla.getnumber();
}
}
class Class3
{
Class1 class1;
Class2 class2;
public Class3()
{
class1 = new Class1();
class1.number = "2";
class2 = new Class2();
class2.cla = class1;
}
public static void main(String args[])
{
Class3 cl = new Class3();
System.out.println(cl.class2.cla.getnumber());
System.out.println(cl.class2.number_to_compute);
}
}
顺便说一下,设置实例变量总是好的 对我来说很好。我看到唯一需要添加的是
class1
和class2
定义中的static
关键字。见下文
public class Class1
{
String number = "1234";
public String getnumber()
{
return this.number;
}
}
public class Class2
{
Class1 cla = new Class1();
public String number_to_compute = cla.getnumber();
}
public class Class3
{
static Class1 class1 = new Class1();
static Class2 class2 = new Class2();
public static void main(String args[])
{
System.out.println(class1.getnumber());
System.out.println(class2.number_to_compute);
}
}
运行时,它会输出
1234
1234
问题是,您正在分别为
class2
和class3
中的class1
创建新对象,这就是为什么这两个对象不相互依赖的原因。。如果希望class2
和class3
具有相同的class1
实例,则需要将class1
创建为singleton
,它将始终提供class1
的单个对象实例
请尝试以下操作:-
public class Class1
{
private String number = null;
private static Class1 class1 = null;
public static Class1 getInstance()
{
if(class1 == null)
{
class1 = new Class1();
}
return class1;
}
private Class1(){}
public void setNumber(String number)
{
this.number = number;
}
public String getNumber()
{
return this.number;
}
}
public class Class2
{
Class1 cla = Class1.getInstance();
public String number_to_compute = cla.getNumber();
}
public class Class3
{
static Class1 class1 = Class1.getInstance();
public static void main(String args[]) {
class1.setNumber("123");
Class2 class2 = new Class2();
System.out.println(class1.getNumber());
System.out.println(class2.number_to_compute);
}
}
希望它能帮上忙……:)我还是在变空。@Prabhath你能告诉我你什么时候打电话给塞特吗??