JDK 9ã®jshellã§ç· ãåãã¾ã§ãã¨ä½æéãã調ã¹ã
JDK 9ã«ã¯ã対話åç°å¢ï¼REPLç°å¢ã¨å¼ã°ããï¼ãæä¾ããjshellã³ãã³ãã追å ããã¾ãã
JDK 9 Releasesã§è©¦ãã¦ã¿ã¾ãã
Windows OSã§ã¯ãã³ãã³ãããã³ãããéããJDK 9ã®ã³ãã³ãé¡ãæ ¼ç´ããã¦ãããã©ã«ããç°å¢å¤æ°PATHã«è¿½å ãã¾ãã
ããã¦ãjshellã³ãã³ããå®è¡ããã¨ã対話åç°å¢ã®ããã³ããã表示ããã¾ãã
C:\Users\toru>jshell | JShellã¸ãããã -- ãã¼ã¸ã§ã³9-ea | æ¦è¦ã«ã¤ãã¦ã¯ã次ãå ¥åãã¦ãã ãã: /help intro jshell>
java.time.LocalDateTimeã¯ã©ã¹ã§ä»ã®æ¥æãåå¾ãããã¨ãé©å½ã«å ¥åããã¨ãã¨ã©ã¼ã«ãªã£ã¦ãã¾ãã¾ãã
jshell> now = LocalDateTime.now(); | ã¨ã©ã¼: | ã·ã³ãã«ãè¦ã¤ãããã¾ãã | ã·ã³ãã«: å¤æ° now | å ´æ: ã¯ã©ã¹ | now = LocalDateTime.now(); | ^-^ | ã¨ã©ã¼: | ã·ã³ãã«ãè¦ã¤ãããã¾ãã | ã·ã³ãã«: å¤æ° LocalDateTime | å ´æ: ã¯ã©ã¹ | now = LocalDateTime.now(); | ^-----------^ jshell>
å宣è¨ãªãã®å¤æ°ã¯åãä»ãã¦ããã¾ããã§ãããJavaã®ææ³ã«ã¡ããã¨å¾ããªãã¨ãã¡ãªããã§ãã
次ã«ãã¤ã³ãã¼ãæãªãã§LocalDateTimeã使ãã¨èªèãã¦ããã¾ããã§ããããããJavaã®ææ³éãã§ãããã¡ãªã¿ã«ãã¤ã³ãã¼ãã®ä¸è¦§ã¯ã/importsã³ãã³ãã§ç¢ºèªã§ãã¾ããããã©ã«ãã§ã¯æ¬¡ã®importãæå¹ã§ãã
jshell> /imports | import java.util.* | import java.io.* | import java.math.* | import java.net.* | import java.util.concurrent.* | import java.util.prefs.* | import java.util.regex.* jshell>
ã§ã¯ãjava.time.*ãã¤ã³ãã¼ããã¦ã¿ã¾ãããã
jshell> import java.time.* jshell> /imports | import java.util.* | import java.io.* | import java.math.* | import java.net.* | import java.util.concurrent.* | import java.util.prefs.* | import java.util.regex.* | import java.time.* jshell>
ã¤ã³ãã¼ããèªèããã¾ããã
ã§ã¯ãç¾å¨ã®æ¥æãåå¾ãã¦ã¿ã¾ããã¨ããã®åã«ãã³ãã³ãã©ã¤ã³ã®è£å®ãè¦ã¦ã¿ã¾ãããã
Lo ã¨2æåãå ¥ããç´å¾ã«TABãã¼ãæ¼ãã¾ãã
jshell> Lo LocalDate LocalDateTime LocalTime Locale Logger Long LongSummaryStatistics jshell>
ã¨ãè£å®åè£ã表示ããã¾ãã
Localã¾ã§å ¥ãã¦TABãã¼ãæ¼ãã¨ã
jshell> Local LocalDate LocalDateTime LocalTime Locale jshell>
ã¨çµãè¾¼ã¾ãã¾ããã
LocalDã¨å ¥ãã¦TABãã¼ãæ¼ãã¨ãLocalDate ã¨è£å®ããã¾ããè£å®ãããLocalDateã«ç¶ãã¦Tãå ¥ããããã«TABãã¼ãæ¼ãã¨LocalDateTimeã«è£å®ããã¾ããUNIXã®ã·ã§ã«ç°å¢ç¨åº¦ã«ã¯è£å®ãå¹ãããã§ãã
ã§ã¯ãä»ã®æ¥æãåå¾ãã¾ãã
jshell> LocalDateTime now = LocalDateTime.now() now ==> 2016-09-09T18:23:19.990769100 jshell>
ãã¼ãæãå®è¡ããããã®å ´å左辺ã®å¤æ°ã®å 容ã表示ããã¾ããã
次ã«ãç· ãåãæ¥æãä½æãã¾ãã
jshell> LocalDateTime due = LocalDateTime.of(2016, 9, 11, 23, 59, 59) due ==> 2016-09-11T23:59:59 jshell>
ããã§ãä»ã®æ¥æã¨ç· ãåãæ¥æãå¤æ°ã«åããã®ã§ããã®2ã¤ã®æ¥æã®éãç®åºãã¾ãã
jshell> Duration remain = Duration.between(now, due) remain ==> PT53H36M39.0092309S jshell>
ã¨ãããã¨ã§ãJava読書会BOF ã®æ¬¡å課é¡å³æ¸æç¥¨ç· ãåãã¾ã§ã¯ãã¨53æéã¡ãã£ã¨ãã¨ãããã¨ã«ãªãã¾ãã
追è¨
- è£å®ã¯ã¯ã©ã¹åã ãã§ãªããã¡ã½ããåã対象ã¨ãªãã¾ãã
- printfã¯System.out.printfã¨ããã«åç¬ã§ä½¿ãã¾ããprintlnã¯ã ãã ãã©ã
jshell> /methods | printf (String,Object...)void jshell>
ã¨ãããã©ã«ãã§è£¸ã§ä½¿ããã¡ã½ããã¨ãã¦ç»é²ããã¦ãã¾ãã