Java 分配值时不显示变量值

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

请在下面的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: 我有一个第三个类
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()
工作正常,并给出正确答案,其中as
class2.number\u to\u compute
outtputs
null


为什么
class2.number\u to\u compute
a
null
值?

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你能告诉我你什么时候打电话给塞特吗??