File f=new File(fpath,fname);
在System.out.println(f.canRead()+f.canWrite());
为什么运算符+不能用与boolean 与boolean?

解决方案 »

  1.   

    因为java中的boolean类型不像c/c++一样可以与其它基本类型进行转换的,它除了能进行逻辑运算,其它的运算规则都不适应。
      

  2.   

    那如果这样就行啊
    System.out.println(f.canRead()+" "+f.canWrite());
    这又怎么解释啊?
      

  3.   

    f.canRead()+" "+f.canWrite()
    =(f.canRead()+" ")+f.canWrite();
    =(boolean + String) + boolean
    =String + boolean
    =String
      

  4.   

    在Thinking in Java 一书的第二章说到boolean是不能做加, 减, 乘, 除等运算的,所以System.out.println(f.canRead()+f.canWrite());是决对不可以的至于System.out.println(f.canRead()+" "+f.canWrite());它是将还有两个boolean中区夹有" "来这样的字符串进行输出(boolean类型会自动调用toString()方法,输出的是true或false)前一个是两个boolean做加法运算,这是不可以的
    后一个只是输出,两个boolean并没有做任何的运算,所以这是可以的
      

  5.   

    boolean+boolean是不可以的
    但是boolean+String+boolean是可以的
    先是boolean+String得到的是一个String
    再是String+boolean得到的还是一个String