日期:2014-05-20 浏览次数:21013 次
class CRectanglej{
protected int length;
protected int width;
public String toString(){//错误在这里,Exception in thread "main" java.lang.Error: 无法解析的编译问题:
此方法必须返回 String 类型的结果。下面的程序哪里不返回,String类型?
//String l="length";
//return l;
int a=length;
int b=width;
if(a>=b)
return toString();//难道这里返回的不是String类型?
else
System.out.println("Argument Error");
}
CRectanglej(int l,int w){
length=l;
width=w;
}
}
public class p_229_17 {
/**
* @param args
*/
public static void main(String[] args) {
CRectanglej rect=new CRectanglej(2,6);
System.out.println("length= "+rect.length+"width="+rect.width+"area="+rect.length*rect.width);
System.out.println(rect.toString());
// TODO 自动生成方法存根
}
}
public String toString(){
return "矩形长为"+length+" 矩形宽为 "+width;
}
------解决方案--------------------
else分支中也要有返回值的,且if分支中如果a>b则是死循环。
------解决方案--------------------
问题原因:因为public String toString() 方法要求返回一个字符串类 如果a 小于 b 他就不会执行 return toString(); 而该方法又没有其他的return
解决方法:添加一个return null;
This method must return a result of type String 此方法必须返回一个String类型的结果
问题确实够菜的