java如何在方法中返回一个结构体值?

我是java初学者,我定义了一个结构体,包含两个变量,string和boolean,我想在方法中返回一个我定义的这个结构体类的值,一直报错,如下图:

我想返回图中的returnValue这个类的值value,但是程序运行到一半,我传入参数randomNumber和number后就自动终止了,怎么正确的返回这个returnValue类的值。

public class returnValue{

public String returnString;
public boolean returnBoolean;
}
public static returnValue compareNumbers(int randomNumber,int bumber)
{
returnValue value=new returnValue (); //注意这儿你做的没有初始化对象
if(number==randoNumber)
{
value.returnString="return number value is"+number;
value returnBoolean=true;
}
else
if(number<randoNumber)
{
value.returnString="return value it's smaller";
value returnBoolean=false;
}
else
if(number>randoNumber)
{
value.returnString="return value is bigger";
value returnBoolean=false;
}
return value;
} 按以上改一下 应该跟你的差不多了 不过一般来说 不要这样写
java是面向对象的语言 基本要求 封装 继承 多态..
这里你的封装不是很好
一般来说这样建类
public class returnValue{

private String returnString;
private boolean returnBoolean;
public String getReturnString()
{
return returnString;
}
public void setReturnString(String returnString ){
this.returnString =returnString ;
}
public boolean getReturnBoolean()
{
return returnBoolean;
}
public void setReturnBoolean (boolean returnBoolean){
this.returnBoolean =returnBoolean ;
}

}
在类被初始化后 需要通过set/get方法 见类中的setReturnBoolean getReturnBoolean ..不写了 手打太慢

你那个private一般来说该是public 你注意看看private public protect 这三个权限

给类赋值用set方法如setReturnBoolean 不要直接对类的属性进行操作 获得类的属性值时用get方法
public static returnValue compareNumbers(int randomNumber,int bumber)//这个方法在一个类里面啊 注意静态方法和非静态方法的使用
{
returnValue value=new returnValue (); //初始化
if(number==randoNumber)
{
value.setReturnString("return number value is"+number);
value setReturnBoolean(true);
}
else if(number<randoNumber)
{
value.setReturnString("return value it's smaller");
value setReturnBoolean(false);
}
//剩下的你自己填吧
return value;
}
多看看教材 多读读代码 多练习下
如果我没看错你以前是学C/C++的吧
手写的可能拼写有问题 凑和着看吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-17
returnValue value=null;只是声明了value而没有实例化,后边直接引用成员会出空指针的。

returnValue value=null; 改成returnValue value=new returnValue();看看本回答被提问者和网友采纳
第2个回答  2012-12-17
首先,类名首字母大写。。。虽然小写也可以,但规范一点啦。
言归正传,那个因为你returnValue value = null;根本就没有创建对象,改成retrunValue value = new returnValue();
相似回答