以下是该方案:
我有3个类A类,B类和C类。现在我调用C中定义的方法,在类A中返回类型为String。我将返回值设置为A类中的另一个String。现在在B类中我正在制作A类的对象,并使用该对象调用A中的字符串集。如果你想知道执行,那么首先我调用在a中的C中定义的方法,然后调用B中的String。但是我在类B中获取字符串值为NULL。
C类
Class C{
//method with return type as string
public String getString(){
return "Some String Here";
}
}
A类
Class A{
public String s;
public void somemethod(){
C obj = new C();
s= obj.getString();
}
}
B类
Class B(){
pubic void anothermethod(){
A obj = new A();
String ss = obj.s;
}
}
打印时,ss的值为null。当我打印s时,我得到正确的字符串。这是我如何从主要班级打电话
2.然后从B类中选择另一种方法(<)。
很抱歉,如果我的问题有点愚蠢。
答案 0 :(得分:2)
如果您的问题是关于如何在ss
中获得空值,则您从未在somemethod
的{{1}}上致电obj
。每次调用anothermethod
时,都会实例化一个新的anothermethod
,其中字符串字段A
从未被初始化并且仍为空。
答案 1 :(得分:0)
这是一个工作版本。见评论:
class A{
private C c;
public void somemethod(){
c = new C();//better put is A constructor
}
public String getS() {
return c.getString();
}
public static void main(String args[]) {
new B().anothermethod();
}
}
class B{
public void anothermethod(){
A a = new A(); //better put is B constructor
a.somemethod();
System.out.println( a.getS()); //output: Some String Here
}
}
class C{
//method with return type as string
public String getString(){
return "Some String Here";
}
}