繁体   English   中英

如何从main设置Setter并从另一个类Java 7获取Getters

[英]How to set Setters from main and get the Getters from Another Class Java 7

我有3节课; 1)Main 2)SettersAndGetters 3)AnotherClass。 在我的主班上,我设置二传手。 我正在寻找一种从AnotherClass访问这些值的方法。 现在,由于我创建的新实例,我得到一个null。 因此,如何解决这个问题,如何检索在main中设置的值。

public class Main{

   public static void main(String args[]){
      GettersAndSetters sg = new GettersAndSetters();
      AnotherClass copyOfSG = new AnotherClass();

      sg.setName("Mo");
      sg.setAge(20);
      sg.setIdNum("77777");

      System.out.print("Name : " + sg.getName() + " Age : " + sg.getAge()+"\n");
      System.out.println(copyOfSG.printout());
      //In here I am trying to print the value that is 
      //in my 3rd class "AnotherClass" but i am getting null. 

   }
}

输出:

Name : Mo Age : 20
Age: 0
Name: null

SettersGetters:

public class GettersAndSetters{
   private String name;
   private String idNum;
   private int age;
   public int getAge(){
      return age;
   }
   public String getName(){
      return name;
   }

   public String getIdNum(){
      return idNum;
   }

   public void setAge( int newAge){

      age = newAge;
   }

   public void setName(String newName){
      name = newName;
   }

   public void setIdNum( String newId){
      idNum = newId;
   }
}

另一个类:

public class AnotherClass {

    public void printout() {
        GettersAndSetters gs1 = new GettersAndSetters();

        System.out.println("Age: " + gs1.getAge());
        System.out.println("Name: " + gs1.getName());

        System.out.println();

    }

}

这是因为您创建两个独立的实例GettersAndSettersMainAnotherClass 看:

   public static void main(String args[]){

      GettersAndSetters sg = new GettersAndSetters(); //first instance
      AnotherClass copyOfSG = new AnotherClass();

      ...
   }

public class AnotherClass {

    public void printout() {
        GettersAndSetters gs1 = new GettersAndSetters(); //second instance
        ...
    }
}

并且您是在第一个实例中设置属性,但是尝试从第二个实例读取属性。 按照Satya的建议,只需将Main第一个实例传递给AnotherClass方法AnotherClass

public class AnotherClass {

    public void printout(GettersAndSetters sg) {
        System.out.println("Age: " + sg.getAge());
        System.out.println("Name: " + sg.getName());        
        ...
    }
}

然后调用它:

public class Main{

   public static void main(String args[]){
      GettersAndSetters sg = new GettersAndSetters();
      AnotherClass copyOfSG = new AnotherClass();

      ...

      copyOfSG.printout(sg);
   }
}

在我的主班上,我设置二传手。 我正在寻找一种从AnotherClass访问这些值的方法

更换

System.out.println(copyOfSG.printout());

copyOfSG.printout(sg);

和你的printout()方法

public void printout(GettersAndSetters gs1) {
       //No need of creating GettersAndSetters object

       System.out.println("Age: " + gs1.getAge());
       System.out.println("Name: " + gs1.getName());

}

apache library有一个类BeanUtil ,它将帮助您。 此cass设置并获取属性值。

BeanUtil.setProperty(<obje_name>, <field_name>, <field-value>);


BeanUtil.getProperty(<object_name>, <field_name>);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM