Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

ว่าง ๆ มาทำความรู้จักกับ Java 10 กันหน่อย

$
0
0

เห็นมีการพูดถึง Java หรือ JDK 10 กันบ้างพอสมควร (เงียบ ๆ นะ) เนื่องจากตามแผนแล้วจะถูกปล่อยตัวเต็มมาในมีนาคมนี้แล้ว โดยมี feature ต่าง ๆ แยกไปตาม JEPS ดังนี้
  • 286: Local-Variable Type Inference
  • 296: Consolidate the JDK Forest into a Single Repository
  • 304: Garbage-Collector Interface
  • 307: Parallel Full GC for G1
  • 310: Application Class-Data Sharing
  • 312: Thread-Local Handshakes
  • 313: Remove the Native-Header Generation Tool (javah)
  • 314: Additional Unicode Language-Tag Extensions
  • 316: Heap Allocation on Alternative Memory Devices
  • 317: Experimental Java-Based JIT Compiler
  • 319: Root Certificates
  • 322: Time-Based Release Versioning
ดูแล้วไม่ค่อยมี feature สำหรับคนใช้งานทั่วไปสักเท่าไรนัก น่าจะมีที่อ่านรู็เรื่องหน่อยก็คือ Local-Variable Type Inference ซึ่งเป็นการปรับปรุงรูปแบบของภาษา Java ที่ดูนะง่ายขึ้น สั้นขึ้นมั้ง

โดยรูปแบบของภาษานั้น จะมี keyword ใหม่ชื่อว่า var ขึ้นมา

จากที่อ่านมาพบว่า มีทางเลือกของ keyword นี้เยอะเลย เช่น
  • var x = expr only (like C#)
  • var, plus val for immutable locals (like Scala, Kotlin)
  • var, plus let for immutable locals (like Swift)
  • auto x = expr (like C++)
  • const x = expr (already a reserved word)
  • final x = expr (already a reserved word)
  • let x = expr
  • def x = expr (like Groovy)
  • x := expr (like Go)

โดยเหตุผลของการเลือก var นั้นอ่านเพิ่มเติ่มได้ที่นี่

ว่าด้วยเรื่องของ readability, mutability และ syntax น่าจะไม่ถูกใจของนักพัฒนาหลาย ๆ คน
ดังนั้นลองใช้งานหน่อยสิ จะติดตั้งก็เกรงใจ เลยใช้ Docker ดีกว่า ซึ่งใช้ image จาก OpenJDK 10
เริ่มด้วยการเขียน Hello แบบง่าย ๆ ด้วยการใช้ keyword var ในการประกาศตัวแปร นักพัฒนาไม่ต้องระบุ data type นะ ตัวอย่างเป็นการกำหนดค่าลง ArrayList และวน loop ดึงข้อมูลมาแสดงผลแบบง่าย ๆ ปกติภาษา Java มันเขียนได้หลายแบบอีกดังนี้ [gist id="f34bb7b2844f188d037fe0859351a3cb" file="1.java"] ทำการ compile และ run ได้ผลดังนี้ [gist id="f34bb7b2844f188d037fe0859351a3cb" file="1.txt"]

เพิ่มเติมสำหรับการใช้ var ก็มีข้อกำหนดเช่นกัน

ยกตัวอย่างเช่น ถ้าประกาศตัวแปรโดยไม่กำหนดค่าเริ่มต้นให้ ก็จะ compile time error ถ้าประกาศตัวแปรโดยกำหนดค่า NULL ไป ก็จะ compile time error [gist id="f34bb7b2844f188d037fe0859351a3cb" file="2.txt"] ลองเล่นกันดูครับสำหรับ Java 10 เมื่อถึงเวลาที่ออกมาจะได้ไม่ตกใจกัน ขอให้สนุกกับการ coding นะครับ Reference Websites https://medium.com/@afinlay/java-10-sneak-peek-local-variable-type-inference-var-3022016e1a2b https://www.infoq.com/news/2018/02/first-look-jdk10-rc1

Viewing all articles
Browse latest Browse all 1997

Trending Articles