论插入表达式

网上到一道题
图片发自简书App
 public void print(){
    if(    ){ //括号内填入代码,使得print方法输出"ab"
      System.out.print("a");
    }elss{
      System.out.print("b");
    }
 }

正经人的思路…

这是要 一个if返回两个值啊,有了,fork()函数啊!!! ------ c语言中,这个奇葩函数调用一次,会返回两次。因为它会创建一个子进程,在子进程中返回0,父进程中返回 pid(进程ID)。
可是,问题来了,fork是linux上的系统调用,windows木有啊,java这种跨平台的语言没有这个api………


精神病人思路广

有个东西叫 表达式插入

public void print(){

   if(new Object(){
        public int aa(){ System.out.print("a");return 0; }          
      }.aa() != 0 )
   {
    System.out.print("a");
   }
   else {
    System.out.print("b");
   }

}



完美运行!
好吧....其实就是一个匿名内部类而已,由此引发,java8的lambda 匿名函数也行。

   public void print(){

   if(()->{ System.out.print("a");return 0; }   )
   {
    System.out.print("a");
   }
   else {
    System.out.print("b");
   }

  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容