我希望将value变量的结果传递给另一个类。我也不应该将计算的返回类型从void更改为String
public class One {
private String value = null;
public void compute(){
Scanner s = new Scanner(System.in);
System.out.println("Enter the String");
value = s.next();
}
public String calculate(){
System.out.println("In Calculate.........."+value);
return value;
}
public static void main(String[] args){
One o = new One();
o.compute();
o.calculate();
}
}
public class Two {
public static void main(String[] args){
System.out.println(new One().calculate());
}
}
返回空值
这样打印
In Calculate..........null
null
答案 0 :(得分:3)
确保在调用calculate之前调用compute。 这应该可以解决问题:
public class Two {
public static void main(String[] args){
One one = new One();
one.compute();
System.out.println(one.calculate());
}
}
答案 1 :(得分:2)
这将始终返回null,因为您没有在两个
中调用one.Compute()
正确的通话应该是
public class Two {
public static void main(String[] args){
One o = new One();
o.compute();
System.out.println(o.calculate());
}
}
或
you need to modify code of One to call compute in the constructor
答案 2 :(得分:1)
首先,单个项目中不允许使用两种主要方法!!
接下来,您没有为变量value
分配任何值,您希望它如何为您打印?
您需要执行以下操作。
public class Two {
public static void main(String[] args){
One myOne = new One();
myOne.compute();
//enter some value and then print
System.out.println(new One().calculate());
}
最后value
是一个实例变量,并自动分配默认值(String为null)。所以不需要明确分配。
答案 3 :(得分:1)
这可能会对您有所帮助:
public class two
{
public static void main(String[] args){
One one=new One();
one.compute();
System.out.println(one.calculate());
}
}