百科问答小站 logo
百科问答小站 font logo



一行 Java 代码(以分号结束)能实现什么丧心病狂的功能? 第1页

  

user avatar   farseerfc 网友的相关建议: 
      

問題補充了「以分號結束」的條件,但是並沒有辦法限制到一句語句啊。

要構造一個沒有分號的語句再簡單不過了:

                if         (         System         .         out         .         printf         (         "hello"         )==         null         ){}            

這就沒有分號執行了 printf 。

不過 if 的條件裏沒有辦法直接調用到返回值爲 void 的函數,比如 println ,那麼我們構造個 lambda 傳給 Callable 就可以了:

       if(java.util.concurrent.Executors.callable(     () -> System.out.println("hello") ).call()==null){}      

還是不用分號,執行了 println 。

你說沒辦法聲明變量?用擴展 for 執行一次嘛:

       for(int i : new Integer[] {12}){  if(java.util.concurrent.Executors.callable(   () -> System.out.println(i)  ).call()==null){} }      

這些 {} 結束的語句都可以放在語句塊裏堆起來:

       class NoSemicolon  {  public static void main (String[] args) throws Exception  {   for(String str : new String[] {"hello"}){    if(java.util.concurrent.Executors.callable(     () -> System.out.println(str)    ).call()==null){}    for(int i : new Integer[] {12}){     if(java.util.concurrent.Executors.callable(      () -> System.out.println(i)     ).call()==null){}    }   }   return;  } }      

沒用一個分號(修改:爲了符合題目要求最後加了句 return; ),這樣還有什麼事情做不到?




  

相关话题

  C#里面将对象实例赋值为null会否加速GC释放资源? 
  说程序员毫无难度的人,到底是不是在装13? 
  对C++的匿名函数应具有怎样的态度? 
  养成哪些好习惯能让 Excel 运行更快? 
  并发与并行的区别是什么? 
  为什么jdbc:Access的url需要三个///符号呢? 
  为什么感觉国外的程序员更专业? 
  如果要给编程语言加上一种可用于计量运算的基本数字类型,你觉得该怎么设计这种计量类型,以及修改语言本身? 
  我是一名编程爱好者,我喜欢把一些好书重复的读,而不是热衷于每天打代码。请问我这个习惯是好的还是坏的? 
  C++ 中,如果指针换了被指向的东西,那被指向的原来的东西(是被 new 出来的)所占的内存会立刻被释放吗? 

前一个讨论
委内瑞拉为何会陷入「全面饥饿」?
下一个讨论
QT 5.7 官方下载的各种版本如何区别?





© 2025-03-26 - tinynew.org. All Rights Reserved.
© 2025-03-26 - tinynew.org. 保留所有权利