คำถามติดแท็ก java

Java เป็นภาษาการเขียนโปรแกรมเชิงวัตถุในระดับสูงที่พัฒนาโดย Sun Microsystems ปัจจุบัน Java เป็นเจ้าของโดย Oracle ซึ่งซื้อ Sun ในปี 2010

30
เหตุใดจึงไม่ใช้ Java สำหรับการพัฒนาเว็บแอปพลิเคชันที่ทันสมัย [ปิด]
ในฐานะโปรแกรมเมอร์ Java มืออาชีพฉันพยายามทำความเข้าใจ - ทำไมความเกลียดชัง Java สำหรับเว็บแอปพลิเคชันสมัยใหม่ ฉันสังเกตเห็นแนวโน้มที่ว่าเมื่อเร็ว ๆ นี้เว็บสตาร์ทอัพในปัจจุบันมีสัดส่วนค่อนข้างน้อยที่ใช้ Java (เทียบกับความนิยมโดยรวมของ Java) เมื่อฉันถามบางอย่างเกี่ยวกับเรื่องนี้ฉันมักจะได้รับคำตอบเช่น "ฉันเกลียดชวาด้วยความหลงใหล" แต่ดูเหมือนว่าไม่มีใครที่จะสามารถให้คำตอบที่ชัดเจน ฉันเคยได้ยินชุมชนการเริ่มต้นเว็บเดียวกันนี้อ้างถึงผู้พัฒนา Java ในเชิงลบ - มากขึ้นหรือน้อยลงซึ่งบ่งบอกว่าพวกเขาช้าไม่สร้างสรรค์และเก่า เป็นผลให้ฉันใช้เวลาทำงานเพื่อรับ Ruby / Rails โดยทั่วไปเพื่อค้นหาสิ่งที่ฉันขาดหายไป แต่ฉันไม่สามารถช่วยคิดด้วยตัวเองว่า "ฉันสามารถทำสิ่งนี้ได้เร็วขึ้นมากถ้าฉันใช้ Java" ส่วนใหญ่เป็นเพราะระดับประสบการณ์ญาติของฉัน แต่ก็เป็นเพราะฉันไม่เห็นสิ่งสำคัญ "ขาดหายไป" จาก Java ทำให้ฉันไม่สามารถสร้างแอปพลิเคชันเดียวกันได้ ซึ่งนำมาสู่คำถามของฉัน : เหตุใด Java จึงไม่ถูกใช้ในเว็บแอปพลิเคชันสมัยใหม่ มันเป็นจุดอ่อนของภาษาหรือไม่ มันเป็นกฎตายตัวของ Java เพราะมันมีมานานแล้ว (มันเกี่ยวข้องอย่างไม่ยุติธรรมกับเทคโนโลยีที่เก่ากว่าและไม่ได้รับการยอมรับสำหรับความสามารถ "ทันสมัย" ของมัน)? ทัศนคติเชิงลบของนักพัฒนา Java แข็งแกร่งเกินไปหรือไม่? …

16
วัฒนธรรม Grokking Java - ทำไมสิ่งต่าง ๆ ถึงหนักนัก มันเหมาะกับอะไร? [ปิด]
ฉันเคยใช้รหัสใน Python มาก ตอนนี้สำหรับเหตุผลการทำงานฉันรหัสใน Java โครงการที่ฉันทำมีขนาดค่อนข้างเล็กและ Python อาจทำงานได้ดีขึ้น แต่มีเหตุผลที่ไม่เป็นวิศวกรรมที่ถูกต้องในการใช้ Java (ฉันไม่สามารถอธิบายรายละเอียดได้) ไวยากรณ์ของ Java ไม่มีปัญหา มันเป็นเพียงภาษาอื่น แต่นอกเหนือจากไวยากรณ์แล้ว Java ยังมีวัฒนธรรมชุดวิธีการพัฒนาและวิธีปฏิบัติที่ถือว่า "ถูกต้อง" และสำหรับตอนนี้ฉันล้มเหลวอย่างสิ้นเชิงที่จะ "คร่ำครวญ" วัฒนธรรมนั้น ดังนั้นฉันจะขอบคุณคำอธิบายหรือพอยน์เตอร์ในทิศทางที่ถูกต้อง ตัวอย่างที่สมบูรณ์แบบน้อยที่สุดมีอยู่ในคำถาม Stack Overflow ที่ฉันเริ่มต้น: https://stackoverflow.com/questions/43619566/returning-a-result-with-several-values-the-java-way/43620339 ฉันมีงาน - แยก (จากสตริงเดียว) และจัดการชุดสามค่า ใน Python มันเป็นหนึ่งซับ (tuple) ใน Pascal หรือ C-5 ซับเร็กคอร์ด / struct ตามคำตอบที่เทียบเท่าของ struct มีอยู่ในไวยากรณ์ Java และสามมีอยู่ในห้องสมุด Apache …

14
เราควรหลีกเลี่ยงการสร้างวัตถุใน Java?
มีคนบอกฉันว่าในการสร้างวัตถุ Java เป็นการดำเนินการที่แพงที่สุดที่คุณสามารถทำได้ ดังนั้นฉันสามารถสรุปได้ว่าจะสร้างวัตถุให้น้อยที่สุดเท่าที่จะทำได้ สิ่งนี้ดูเหมือนว่าจะเอาชนะวัตถุประสงค์ของการเขียนโปรแกรมเชิงวัตถุ ถ้าเราไม่ได้สร้างวัตถุเราแค่เขียน C สไตล์คลาสยาวเพื่อเพิ่มประสิทธิภาพ?

7
Spring Framework ทำอะไรได้บ้าง ฉันควรใช้หรือไม่ ทำไมหรือทำไมไม่?
ดังนั้นฉันเริ่มโครงการใหม่ใน Java และกำลังพิจารณาใช้ Spring ทำไมฉันถึงต้องพิจารณาสปริง เพราะมีคนมากมายบอกฉันว่าฉันควรใช้ Spring! อย่างจริงจังทุกครั้งที่ฉันพยายามให้ผู้คนอธิบายว่าสปริงคืออะไรหรือทำอะไรพวกเขาไม่สามารถให้คำตอบแบบตรงกับฉันได้ ฉันได้ตรวจสอบอินโทรในเว็บไซต์ SpringSource และพวกมันซับซ้อนหรือเน้นการสอนจริง ๆ และพวกมันก็ไม่มีความคิดที่ดีว่าทำไมฉันถึงควรใช้มันหรือจะทำให้ชีวิตของฉันง่ายขึ้นได้อย่างไร บางครั้งผู้คนขว้างคำว่า "การพึ่งพา" ซึ่งทำให้ฉันสับสนมากยิ่งขึ้นเพราะฉันคิดว่าฉันมีความเข้าใจที่แตกต่างกันเกี่ยวกับความหมายของคำนั้น อย่างไรก็ตามนี่เป็นเพียงเล็กน้อยเกี่ยวกับพื้นหลังและแอพของฉัน: รับการพัฒนาใน Java ในขณะที่ทำการพัฒนาเว็บ back-end ใช่ฉันทำการทดสอบหน่วยเป็นตัน เพื่ออำนวยความสะดวกในเรื่องนี้ฉันมักจะสร้างวิธีการอย่างน้อยสองรุ่น: รุ่นที่ใช้ตัวแปรอินสแตนซ์และรุ่นที่ใช้ตัวแปรที่ส่งผ่านไปยังเมธอดเท่านั้น หนึ่งที่ใช้ตัวแปรอินสแตนซ์เรียกอีกคนหนึ่งที่จัดหาตัวแปรอินสแตนซ์ เมื่อถึงเวลาที่ต้องทดสอบหน่วยฉันใช้ Mockito เพื่อจำลองวัตถุแล้วโทรไปยังวิธีการที่ไม่ใช้ตัวแปรอินสแตนซ์ นี่คือสิ่งที่ฉันเข้าใจเสมอว่า "การฉีดพึ่งพา" แอพของฉันค่อนข้างเรียบง่ายจากมุมมอง CS โครงการขนาดเล็ก 1-2 นักพัฒนาที่จะเริ่มต้นด้วย การดำเนินการประเภท CRUD ส่วนใหญ่ที่มีการค้นหามากมายถูกโยนเข้ามาโดยทั่วไปแล้วเว็บเซอร์วิส RESTful รวมทั้งเว็บฟรอนต์เอนด์และในที่สุดก็มีลูกค้ามือถือบางส่วน ฉันกำลังคิดที่จะทำ front-end ด้วย HTML / CSS / JS / JQuery …

6
การเลือกระหว่างโครงการเดี่ยวหรือหลายโครงการในที่เก็บ git?
ในgitสภาพแวดล้อมที่เราได้ทำให้เป็นส่วนใหญ่โครงการเรากำลังเผชิญหนึ่งโครงการต่อพื้นที่เก็บข้อมูลหรือหลายโครงการต่อปัญหาการออกแบบพื้นที่เก็บข้อมูล ลองพิจารณาโครงการที่ทำให้เป็นโมดูล: myProject/ +-- gui +-- core +-- api +-- implA +-- implB วันนี้เรากำลังมีโครงการต่อหนึ่งพื้นที่เก็บข้อมูล มันให้อิสระในการ release แต่ละองค์ประกอบ tag แต่ละองค์ประกอบ แต่มันก็ยังเป็นเรื่องยุ่งยากสำหรับbranchส่วนประกอบที่บ่อยครั้งที่การแตกแขนงนั้นapiต้องการกิ่งไม้ที่เท่ากันcoreและส่วนประกอบอื่น ๆ เนื่องจากเราต้องการreleaseแต่ละองค์ประกอบเรายังสามารถได้รับความยืดหยุ่นที่คล้ายกันโดยใช้หลายโครงการต่อการออกแบบพื้นที่เก็บข้อมูล มีประสบการณ์อะไรบ้างและคุณได้จัดการกับปัญหาเหล่านี้อย่างไร?

6
อะไรทำให้ระบบประเภท Haskell ได้รับการเคารพนับถืออย่างมาก (vs say, Java)
ฉันเริ่มที่จะเรียนรู้Haskell ฉันยังใหม่กับมันมากและฉันเพิ่งอ่านหนังสือออนไลน์สองสามเล่มเพื่อให้เข้าใจถึงโครงสร้างพื้นฐานของหนังสือเล่มนี้ หนึ่งใน 'มส์' ที่คนคุ้นเคยกับมันมักจะพูดถึงคือ "ถ้ามันรวบรวมมันจะทำงาน *" - ซึ่งฉันคิดว่าเกี่ยวข้องกับความแข็งแกร่งของระบบประเภท ฉันพยายามที่จะเข้าใจว่าทำไมตรง Haskell จะดีกว่าภาษาพิมพ์แบบคงที่อื่น ๆ ในเรื่องนี้ วางวิธีอื่นผมถือว่าใน Java คุณสามารถทำสิ่งชั่วร้ายเช่นฝังศพ จะมีอะไรบางอย่างที่มันควรจะเป็นArrayList<String>() ArrayList<Animal>()สิ่งที่ชั่วร้ายนี่คือสิ่งที่คุณstringมีelephant, giraffeฯลฯ และถ้ามีคนใส่เข้าไปMercedes- คอมไพเลอร์ของคุณจะไม่ช่วยคุณ ถ้าผมไม่ได้ทำArrayList<Animal>()แล้วในบางจุดในเวลาต่อมาถ้าผมตัดสินใจที่โปรแกรมของฉันไม่ได้จริงๆเกี่ยวกับสัตว์มันเป็นเรื่องของยานพาหนะแล้วฉันสามารถเปลี่ยนการพูด, ฟังก์ชั่นที่ผลิตArrayList<Animal>ในการผลิตArrayList<Vehicle>และ IDE ของฉันควรจะบอกฉันทุกที่มี เป็นการพักสะสม ข้อสันนิษฐานของฉันคือว่านี่คือสิ่งที่ผู้คนหมายถึงโดยระบบพิมพ์ที่แข็งแกร่งแต่ไม่ชัดเจนสำหรับฉันว่าทำไม Haskell ถึงดีกว่า อีกวิธีหนึ่งคุณสามารถเขียน Java ที่ดีหรือไม่ดีฉันคิดว่าคุณสามารถทำได้เหมือนกันใน Haskell (เช่นสิ่งต่าง ๆ เป็นสตริง / ints ที่ควรเป็นประเภทข้อมูลชั้นหนึ่ง) ฉันสงสัยว่าตัวเองขาดอะไร / สำคัญไป ฉันมีความสุขมากที่ได้เห็นข้อผิดพลาดในวิธีการของฉัน!

30
พ่อของฉันใจร้อนกับการเรียนรู้ที่จะก้าวไปสู่ ฉันจะทำอย่างไร [ปิด]
ดังนั้นพ่อของฉันซื้อหนังสือ 5 เล่มให้ฉันเกี่ยวกับการเขียนโปรแกรม (C ++, Java, PHP, Javascript, Android) ประมาณหนึ่งเดือนที่แล้ว เขาเป็นสถาปนิกและเขารู้ว่าไม่มีอะไรเกี่ยวกับการเขียนโปรแกรม เขาซื้อมาให้ฉันเพราะฉันบอกว่าการเขียนโปรแกรมสนุกและฉันต้องการเรียนรู้มัน อย่างที่คุณอาจรู้ว่าการเป็นเด็ก (ฉันอายุ 14 ปี) และได้รับคำสั่งให้เรียนรู้การเขียนโปรแกรมจากหนังสือที่ไม่น่าเบื่อไม่ใช่สิ่งที่ง่ายที่สุด ฉันมักจะไขว้เขว .. ฉันบอกเขาก่อนว่าฉันไม่จำเป็นต้องซื้อหนังสือและฉันก็แค่ดูบทเรียนออนไลน์ .. แต่ไม่เลยเขาล้าสมัยมาก เขาให้ฉันใช้หนังสือเท่านั้น เมื่อเร็ว ๆ นี้เขาเริ่มถามฉันว่าฉันได้ทำอะไรไปแล้วและฉันแสดงโปรแกรม C ++ ที่ฉันทำตามสิ่งที่คุณพิมพ์แล้วกำหนดค่าให้กับตัวอักษรแต่ละตัว (A เป็นตัวอักษรตัวแรกในตัวอักษรเพื่อให้ได้ค่า ของ 1) .. และอื่น ๆ จากนั้นจะเพิ่มค่าทั้งหมดและบอกให้คุณทราบ ดังนั้นคำว่า "เพิ่ม" จะมีค่าเท่ากับ 9 ^^ นั่นไม่ค่อยน่าประทับใจสำหรับเขา เขาตะโกนใส่ฉันและบอกฉันว่าฉันทำไปแล้วนั่นคือการคาดคั้น ที่ไม่เป็นความจริง. เขาเป็นคนดั้งเดิมและดื้อรั้นมากและไม่ฟังสิ่งที่ฉันพูด ฉันควรบอกอะไรเขา PS: หากคุณมีเคล็ดลับในการแบ่งเขตในหนังสือแจ้งให้เราทราบ แก้ไข: …
200 java  learning  c++ 


16
เมื่อ Getters และ Setters เป็นธรรม
Getters และ setters มักถูกวิพากษ์วิจารณ์ว่าไม่เหมาะสม OO ในทางกลับกันรหัส OO ส่วนใหญ่ที่ฉันเคยเห็นมีตัวรับมากมายและตัวตั้งค่า เมื่อ getters และ setters เป็นธรรม? คุณพยายามหลีกเลี่ยงการใช้งานหรือไม่ โดยทั่วไปแล้วพวกเขาใช้มากเกินไปหรือไม่? หากภาษาที่คุณชื่นชอบมีคุณสมบัติ (ของฉัน) แล้วสิ่งเหล่านี้จะถือว่าเป็นผู้ได้รับและผู้ตั้งค่าสำหรับคำถามนี้ พวกเขาเป็นสิ่งเดียวกันจากมุมมองวิธีการ OO พวกเขามีไวยากรณ์ที่ดีกว่า แหล่งที่มาสำหรับการวิจารณ์ Getter / Setter (บางคนนำมาจากความคิดเห็นเพื่อให้พวกเขามองเห็นได้ดีขึ้น): http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html http://typicalprogrammer.com/?p=23 http://c2.com/cgi/wiki?AccessorsAreEvil http://www.darronschall.com/weblog/2005/03/no-brain-getter-and-setters.cfm http://www.adam-bien.com/roller/abien/entry/encapsulation_violation_with_getters_and http://www.yegor256.com/2014/09/16/getters-and-setters-are-evil.html ในการระบุคำวิจารณ์อย่างง่าย ๆ : Getters and Setters อนุญาตให้คุณจัดการสถานะภายในของวัตถุจากด้านนอกของวัตถุ นี่เป็นการละเมิด encapsulation เฉพาะวัตถุเท่านั้นที่ควรดูแลเกี่ยวกับสถานะภายในของมัน และตัวอย่างรหัสขั้นตอน struct Fridge { int cheese; } void …

10
Mono ใช้บ่อยครั้งในการพูดว่า“ ใช่แล้ว. NET คือแพลตฟอร์มข้าม” การอ้างสิทธิ์นั้นถูกต้องแค่ไหน? [ปิด]
ในสิ่งที่คุณจะเลือกสำหรับโครงการของคุณระหว่าง. NET และ Java ณ จุดนี้ในเวลา? ฉันบอกว่าฉันจะพิจารณา "คุณจะใช้งานกับ Windows หรือไม่" การตัดสินใจทางเทคนิคที่สำคัญที่สุดเพียงครั้งเดียวในการสร้างโครงการเว็บใหม่และหากคำตอบคือ "ไม่" ฉันจะแนะนำ Java แทน. NET ข้อโต้แย้งทั่วไปที่พบบ่อยคือ "ถ้าเราต้องการรันบน Linux / OS X / อะไรก็ตามเราจะเรียกใช้ Mono" 1ซึ่งเป็นข้อโต้แย้งที่น่าสนใจมากบนพื้นผิว แต่ฉันไม่เห็นด้วยกับหลาย ๆ เหตุผล OpenJDK และผู้จัดจำหน่ายทั้งหมดที่จัดหาให้ JVM ได้ผ่าน Sun TCK อย่างเป็นทางการเพื่อให้แน่ใจว่าสิ่งต่าง ๆ ทำงานได้อย่างถูกต้อง ฉันไม่ทราบว่า Mono ผ่าน Microsoft TCK Mono นำเสนอ. NET ปัจจุบันระดับของ. NET รองรับอะไรบ้าง องค์ประกอบ …
168 java  .net  mono 

15
ทำไมภาษาที่มีการจัดการหน่วยความจำเช่น Java, Javascript และ C # จึงยังคงรักษาคำหลัก `ใหม่ 'อยู่
newคำหลักในภาษาเช่น Java, JavaScript, และ C # สร้างตัวอย่างใหม่ของชั้นเรียน ดูเหมือนว่าไวยากรณ์นี้จะได้รับการสืบทอดมาจาก C ++ ซึ่งnewมีการใช้เฉพาะเพื่อจัดสรรอินสแตนซ์ใหม่ของคลาสบนฮีปและส่งกลับตัวชี้ไปยังอินสแตนซ์ใหม่ ใน C ++ นี่ไม่ใช่วิธีเดียวในการสร้างวัตถุ คุณยังสามารถสร้างวัตถุบนสแต็กโดยไม่ต้องใช้new- และในความเป็นจริงวิธีการสร้างวัตถุนี้เป็นเรื่องธรรมดามากใน C ++ ดังนั้นมาจากพื้นหลัง C ++ newคำสำคัญในภาษาเช่น Java, Javascript และ C # ดูเป็นธรรมชาติและชัดเจนสำหรับฉัน จากนั้นฉันก็เริ่มเรียนรู้ Python ซึ่งไม่มีnewคำหลัก ใน Python อินสแตนซ์ถูกสร้างโดยการเรียกนวกรรมิกเช่น: f = Foo() ในตอนแรกสิ่งนี้ดูจะยากสำหรับฉันจนกว่ามันจะเกิดขึ้นกับฉันว่า Python ไม่มีเหตุผลnewเพราะทุกอย่างเป็นวัตถุดังนั้นจึงไม่จำเป็นต้องแยกแยะระหว่างไวยากรณ์ตัวสร้างต่าง ๆ แต่แล้วฉันก็คิดว่า - จุดประสงค์newใน Java คืออะไร? ทำไมเราควรจะพูดว่าObject o = …

5
จุดประสงค์ของการใช้ DTO คืออะไร (Data Transfer Objects)?
จุดประสงค์ของการใช้DTOคืออะไรและเป็นแนวคิดล้าสมัยหรือไม่ ฉันใช้POJOในเลเยอร์มุมมองเพื่อถ่ายโอนและเก็บข้อมูล POJO เหล่านี้ถือเป็นทางเลือกแทน DTO ได้หรือไม่

6
ทำไม Java 8 ถึงไม่รวมคอลเลกชันที่ไม่เปลี่ยนรูป?
ทีมงาน Java ได้ทำงานอย่างยอดเยี่ยมในการขจัดอุปสรรคในการเขียนโปรแกรมการทำงานใน Java 8 โดยเฉพาะอย่างยิ่งการเปลี่ยนแปลงของ java.util Collections ทำหน้าที่ได้อย่างยอดเยี่ยมในการแปลงสายสัมพันธ์ให้เป็นการดำเนินการที่รวดเร็วมาก เมื่อพิจารณาว่างานที่พวกเขาทำเพิ่มฟังก์ชันชั้นหนึ่งและวิธีการทำงานในคอลเลกชันได้ดีเพียงใดทำไมพวกเขาถึงล้มเหลวในการจัดหาคอลเลกชันที่ไม่เปลี่ยนรูปแบบหรือแม้แต่อินเตอร์เฟสคอลเล็กชันที่ไม่เปลี่ยนรูปแบบโดยสิ้นเชิง โดยไม่ต้องเปลี่ยนรหัสใด ๆ ที่มีอยู่ทีม Java สามารถเพิ่มอินเทอร์เฟซที่ไม่เปลี่ยนรูปได้ซึ่งเป็นอินเทอร์เฟซที่ไม่เปลี่ยนรูปได้ลบเมธอด "set" และทำให้อินเตอร์เฟสที่มีอยู่ขยายออกจากพวกเขาเช่นนี้ ImmutableIterable ____________/ | / | Iterable ImmutableCollection | _______/ / \ \___________ | / / \ \ Collection ImmutableList ImmutableSet ImmutableMap ... \ \ \_________|______________|__________ | \ \___________|____________ | \ | \___________ | …

11
การสำรองการอ้างสิทธิ์ที่ C ++ สามารถทำได้เร็วกว่า JVM หรือ CLR ด้วย JIT คืออะไร [ปิด]
ชุดรูปแบบที่เกิดขึ้นซ้ำ ๆ ใน SE ที่ฉันสังเกตเห็นในคำถามหลายข้อเป็นข้อโต้แย้งอย่างต่อเนื่องว่า C ++ นั้นเร็วกว่าและ / หรือมีประสิทธิภาพมากกว่าภาษาระดับสูงกว่าอย่าง Java ข้อโต้แย้งคือ JVM หรือ CLR ที่ทันสมัยสามารถมีประสิทธิภาพได้เช่นเดียวกับ JIT และอื่น ๆ สำหรับงานที่เพิ่มมากขึ้นและ C ++ นั้นมีประสิทธิภาพมากขึ้นถ้าคุณรู้ว่าคุณกำลังทำอะไรและทำไมการทำสิ่งต่าง ๆ จะเพิ่มประสิทธิภาพการทำบุญ นั่นชัดเจนและสมเหตุสมผลดี ฉันต้องการทราบคำอธิบายพื้นฐาน (หากมีสิ่งนั้น ... ) ว่าทำไมและอย่างไรงานบางอย่างจะเร็วขึ้นใน C ++ กว่า JVM หรือ CLR? มันเป็นเพราะ C ++ ถูกคอมไพล์เป็นรหัสเครื่องในขณะที่ JVM หรือ CLR ยังคงมีโอเวอร์เฮดของการประมวลผลของการคอมไพล์ JIT ณ รันไทม์? เมื่อฉันพยายามที่จะศึกษาหัวข้อทั้งหมดที่ฉันพบคือข้อโต้แย้งเดียวกับที่ฉันระบุไว้ข้างต้นโดยไม่มีข้อมูลรายละเอียดใด ๆ …
119 java  c++  performance  jit 

10
เหตุใดจึงใช้ตัวเลือกใน Java 8+ แทนการตรวจสอบตัวชี้โมฆะแบบดั้งเดิม
เราเพิ่งย้ายไปยัง Java 8 ตอนนี้ฉันเห็นแอปพลิเคชันที่เต็มไปด้วยOptionalวัตถุ ก่อน Java 8 (สไตล์ 1) Employee employee = employeeServive.getEmployee(); if(employee!=null){ System.out.println(employee.getId()); } หลังจาก Java 8 (สไตล์ 2) Optional<Employee> employeeOptional = Optional.ofNullable(employeeService.getEmployee()); if(employeeOptional.isPresent()){ Employee employee = employeeOptional.get(); System.out.println(employee.getId()); } ฉันไม่เห็นคุณค่าที่เพิ่มขึ้นของOptional<Employee> employeeOptional = employeeService.getEmployee();เวลาที่บริการกลับมาเป็นตัวเลือก: มาจากพื้นหลัง Java 6 ฉันเห็นสไตล์ 1 ชัดเจนกว่าและมีโค้ดน้อยกว่า มีข้อได้เปรียบที่แท้จริงที่ฉันหายไปที่นี่หรือไม่? รวบรวมจากความเข้าใจจากคำตอบทั้งหมดและการวิจัยเพิ่มเติมที่บล็อก
110 java  java8 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.