日期:2014-05-20 浏览次数:20714 次
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类型的结果
问题确实够菜的