当前位置: 代码迷 >> J2SE >> 初学者求解习题,关于toString()的
  详细解决方案

初学者求解习题,关于toString()的

热度:39   发布时间:2016-04-24 00:30:47.0
菜鸟求解习题,关于toString()的
Java code
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 自动生成方法存根    }}


新手不清楚,请高手解答。

------解决方案--------------------
toString()是个方法,不是数据类型.
而且参数合不合适,也不要在这判断。

可以在toString()里这样就行:
Java code
 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类型的结果
问题确实够菜的
  相关解决方案