我有一个与getter和setter概念相关的小程序,由于我不理解的原因,我得到null值。这是我的代码,我需要在单个对象中传递多个字符串:
public class simple {
public Object getmethod(){
getter s=new getter();
String app="apple";
s.setApp(app);
String ble="blue";
s.setGrp(ble);
String re="grape";
s.setGrp(re);
return s;
}
}
这是getter方法:
public class getter {
String app;
String org;
String grp;
String mn;
public String getApp() {
return app;
}
public void setApp(String app) {
this.app = app;
}
public String getOrg() {
return org;
}
public void setOrg(String org) {
this.org = org;
}
public String getGrp() {
return grp;
}
public void setGrp(String grp) {
this.grp = grp;
}
}
以下是测试类:
public class Check {
public static void main(String[] args) {
simple s=new simple();
getter g=new getter();
s.getmethod();
String first=g.getApp();
String second= g.getGrp();
String third=g.getOrg();
System.out.println("the value 1st is " + first + "the second" +
second +"3rd is"+third);
}
}
这是我将null作为值的地方。
答案 0 :(得分:0)
你必须检查java naming convention的类,方法和变量名称,
问题在于main方法中的代码,您没有使用getmethod()返回的引用。相反,你正在实例化另一个getter实例。
public class Check {
public static void main(String[] args) {
simple s=new simple();
// you may avoid cast to getter by changing return type of
// method getmethod() from Object to getter.
getter g=(getter)s.getmethod(); // cast is necessary
String first=g.getApp();
String second= g.getGrp();
String third=g.getOrg();
System.out.println("the value 1st is " + first + "the second" + second +"3rd is"+third);
}
}
根据java naming convention,请为您的课程命名如下:
答案 1 :(得分:0)
这里我的值为null
您正在打印尚未设置的new getter
变量,因此它们都为空。
单独s.getmethod()
将调用该方法,并创建一个新的getter(与您之前创建的getter不同),但不返回任何内容,因此您需要一个赋值。
getter g=(getter)s.getmethod();
如果您不想进行强制转换,请更改方法以返回getter而不是Object
public getter getmethod(){
所以你可以做到
getter g=s.getmethod();