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

ใช้แท็กนี้สำหรับคำถามเฉพาะสำหรับ Java 8 ซึ่งเป็นรุ่น 8 (หมายเลขภายใน 1.8) ของแพลตฟอร์ม Java ซึ่งเปิดตัวในวันที่ 18 มีนาคม 2014 ในกรณีส่วนใหญ่คุณควรระบุแท็ก java ด้วย

25
วิธีการติดตั้ง Java 8 บน Mac
ฉันต้องการเขียนโปรแกรมด้วย JavaFX ล่าสุดซึ่งต้องการ Java 8 ฉันใช้ IntelliJ 13 CE และ Mac OS X 9 Mavericks ฉันใช้โปรแกรมติดตั้ง Java 8 ของ Oracle และดูเหมือนว่าไฟล์จะจบลง /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk แต่รุ่นก่อนหน้าอยู่ที่ /System/Library/Java/JavaFrameworks/jdk1.6.... ไม่แน่ใจว่าทำไมตัวติดตั้งล่าสุดวางไว้/Libraryแทนที่/System/Library(หรือความแตกต่างคืออะไร) แต่/usr/libexec/java_homeไม่พบ 1.8 ดังนั้นโพสต์ทั้งหมดที่ฉันพบในการตั้งค่าจาวาเวอร์ชันปัจจุบันของคุณไม่ทำงาน ฉันได้ลองเพิ่มลิงก์สัญลักษณ์เพื่อให้ดูเหมือน 1.8 อยู่ใน/System/Library...เส้นทาง แต่ไม่ช่วย /usr/libexec/java_home -Vยังคงแสดงรายการ Java 1.6 เก่าเท่านั้น แดกดันแผงควบคุม "Java" ภายใต้ System Preferences จะแสดงเฉพาะ Java 1.8! เหตุใดโปรแกรมติดตั้งของ Oracle จึงไม่ติดตั้งในตำแหน่งที่เหมาะสม และฉันจะแก้ไขปัญหานี้ได้อย่างไร

17
:: (เครื่องหมายทวิภาคคู่) ใน Java 8
ฉันสำรวจแหล่งJava 8และพบว่าส่วนหนึ่งของรหัสนี้น่าประหลาดใจมาก: //defined in IntPipeline.java @Override public final OptionalInt reduce(IntBinaryOperator op) { return evaluate(ReduceOps.makeInt(op)); } @Override public final OptionalInt max() { return reduce(Math::max); //this is the gotcha line } //defined in Math.java public static int max(int a, int b) { return (a >= b) ? a : b; } เป็นMath::maxเหมือนตัวชี้วิธีการหรือไม่ …
956 java  java-8 

21
Java 8 รายการ <V> ลงในแผนที่ <K, V>
ฉันต้องการแปลรายการวัตถุเป็นแผนที่โดยใช้สตรีมและแลมบ์ดาของ Java 8 นี่คือวิธีที่ฉันจะเขียนใน Java 7 และด้านล่าง private Map&lt;String, Choice&gt; nameMap(List&lt;Choice&gt; choices) { final Map&lt;String, Choice&gt; hashMap = new HashMap&lt;&gt;(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; } ฉันสามารถทำได้โดยใช้ Java 8 และ Guava แต่ฉันอยากรู้วิธีการทำสิ่งนี้โดยไม่ใช้ Guava ในฝรั่ง private Map&lt;String, Choice&gt; nameMap(List&lt;Choice&gt; choices) { return Maps.uniqueIndex(choices, new …

23
ข้อผิดพลาด: java: javacTask: source release 8 ต้องใช้รีลีสเป้าหมาย 1.8
การใช้ IntelliJ IDE ไม่สามารถรวบรวมโครงการใด ๆ ภาพหน้าจอของการตั้งค่าด้านล่าง: ใช้ JDK: SDK โครงการและระดับภาษา: ระดับภาษา: ใครมีความคิดเห็นบ้าง


1
ทำไมอาร์เรย์ [idx ++] + =“ a” เพิ่ม idx หนึ่งครั้งใน Java 8 แต่เพิ่มเป็นสองเท่าใน Java 9 และ 10
สำหรับความท้าทายนักกอล์ฟรหัสเพื่อน เขียนรหัสต่อไปนี้ : import java.util.*; public class Main { public static void main(String[] args) { int size = 3; String[] array = new String[size]; Arrays.fill(array, ""); for(int i = 0; i &lt;= 100; ) { array[i++%size] += i + " "; } for(String element: array) { System.out.println(element); } } } …
751 java  java-8  javac  java-9  java-10 

19
ความแตกต่างระหว่าง map () และ flatMap () วิธีการใน Java 8 คืออะไร?
มีอะไรใหม่ในStack Overflow ที่ขายดีที่สุด : แผนที่ที่ดีที่สุดของแผนที่ Java หรือไม่? ใน Java 8 ความแตกต่างระหว่างStream.map()และStream.flatMap()วิธีการคืออะไร
709 java  java-8  java-stream 

26
เป็นไปได้ไหมที่จะใช้ Java 8 สำหรับการพัฒนา Android?
การค้นหาเว็บจะไม่ชัดเจนถ้ารองรับ Java 8 สำหรับการพัฒนา Android หรือไม่ ก่อนที่ฉันจะดาวน์โหลด / ติดตั้ง Java 8 ฉันสามารถชี้ไปที่เอกสาร "ทางการ" ใด ๆ ที่ระบุว่า Java 8 เป็นหรือไม่รองรับการพัฒนา Android

15
จะใช้เมื่อใด: วิธีการเริ่มต้นของอินเตอร์เฟส Java 8+, กับวิธีที่เป็นนามธรรม
Java 8 ช่วยให้การเริ่มต้นใช้งานวิธีการในการเชื่อมต่อที่เรียกว่าวิธีการเริ่มต้น ฉันสับสนระหว่างเมื่อไรที่ฉันจะใช้ประเภทinterface default methodนั้นแทนที่จะเป็นabstract class(พร้อมabstract method(s)) ดังนั้นควรจะใช้ส่วนต่อประสานกับวิธีการเริ่มต้นเมื่อใดและควรใช้คลาสนามธรรม (พร้อมวิธีนามธรรม) เมื่อใด คลาสนามธรรมยังมีประโยชน์ในสถานการณ์นั้นหรือไม่?

9
ฉันจะเปลี่ยนรายชื่อเป็นรายการใน Java 8 ได้อย่างไร
ถ้าฉันมีList&lt;List&lt;Object&gt;&gt;, ฉันจะเปลี่ยนสิ่งนั้นให้กลายเป็นList&lt;Object&gt;วัตถุที่มีวัตถุทั้งหมดในลำดับการทำซ้ำเดียวกันโดยใช้คุณสมบัติของ Java 8 ได้อย่างไร?
532 java  collections  java-8 

6
ฉันควรใช้กระแสข้อมูลแบบขนานเสมอเมื่อทำได้
ด้วย Java 8 และ lambdas ทำให้ง่ายต่อการวนซ้ำคอลเลกชันเป็นสตรีมและใช้สตรีมแบบขนานได้อย่างง่ายดาย ตัวอย่างสองตัวอย่างจากเอกสารตัวอย่างที่สองใช้ parallelStream: myShapesCollection.stream() .filter(e -&gt; e.getColor() == Color.RED) .forEach(e -&gt; System.out.println(e.getName())); myShapesCollection.parallelStream() // &lt;-- This one uses parallel .filter(e -&gt; e.getColor() == Color.RED) .forEach(e -&gt; System.out.println(e.getName())); ตราบใดที่ฉันไม่สนใจคำสั่งมันจะเป็นประโยชน์กับการใช้ขนานหรือไม่? ใครจะคิดว่ามันเร็วกว่าการแบ่งงานบนแกนเพิ่มเติม มีข้อควรพิจารณาอื่น ๆ อีกไหม? ควรใช้สตรีมแบบขนานเมื่อใดและควรใช้สตรีมแบบไม่ขนานเมื่อใด (คำถามนี้ขอให้กระตุ้นการสนทนาเกี่ยวกับวิธีการและเวลาในการใช้สตรีมแบบขนานไม่ใช่เพราะฉันคิดว่าการใช้พวกเขาเป็นความคิดที่ดีเสมอ)

6
ค้นหาองค์ประกอบแรกโดยภาคแสดง
ฉันเพิ่งเริ่มเล่นกับ lambdas Java 8 และฉันพยายามใช้บางสิ่งที่ฉันคุ้นเคยในภาษาที่ใช้งานได้ trueยกตัวอย่างเช่นภาษาการทำงานส่วนใหญ่จะมีบางชนิดของฟังก์ชั่นการค้นหาที่ดำเนินการในลำดับหรือรายการที่ส่งกลับองค์ประกอบแรกซึ่งเป็นคำกริยา วิธีเดียวที่ฉันเห็นเพื่อให้บรรลุใน Java 8 คือ: lst.stream() .filter(x -&gt; x &gt; 5) .findFirst() อย่างไรก็ตามสิ่งนี้ดูเหมือนจะไม่มีประสิทธิภาพสำหรับฉันเนื่องจากตัวกรองจะสแกนรายการทั้งหมดอย่างน้อยก็เพื่อความเข้าใจของฉัน (ซึ่งอาจผิด) มีวิธีที่ดีกว่า?
504 java  java-8  java-stream 


8
การแปลงระหว่าง java.time.LocalDateTime และ java.util.Date
Java 8 มี API ใหม่อย่างสมบูรณ์สำหรับวันที่และเวลา หนึ่งในคลาสที่มีประโยชน์ที่สุดใน API นี้คือLocalDateTimeสำหรับเก็บค่าวันที่แบบไม่ขึ้นกับเขตเวลา อาจมีหลายล้านบรรทัดของรหัสโดยใช้คลาสดั้งเดิมjava.util.Dateสำหรับวัตถุประสงค์นี้ เช่นนี้เมื่อทำการเชื่อมต่อโค้ดเก่าและใหม่จะต้องมีการแปลงระหว่างทั้งสอง ดูเหมือนจะไม่มีวิธีการโดยตรงในการทำสิ่งนี้ให้สำเร็จจึงจะทำได้อย่างไร

25
ฟังก์ชั่น Java 8 Lambda ที่ส่งข้อยกเว้น?
ฉันรู้วิธีสร้างการอ้างอิงถึงวิธีการที่มีStringพารามิเตอร์และส่งกลับค่าเป็นint: Function&lt;String, Integer&gt; อย่างไรก็ตามวิธีนี้ใช้ไม่ได้หากฟังก์ชั่นมีข้อผิดพลาดสมมติว่ามันถูกกำหนดเป็น: Integer myMethod(String s) throws IOException ฉันจะกำหนดข้อมูลอ้างอิงนี้ได้อย่างไร
469 java  lambda  java-8 

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