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

Java เป็นภาษาการเขียนโปรแกรมระดับสูงที่เป็นที่นิยม ใช้แท็กนี้เมื่อคุณมีปัญหาในการใช้หรือทำความเข้าใจภาษานั้น ๆ แท็กนี้ไม่ค่อยได้ใช้คนเดียวและมักใช้ร่วมกับ [สปริง], [สปริงบูต], [jakarta-ee], [android], [javafx], [gradle] และ [maven]

25
รับประเภททั่วไปของคลาสที่รันไทม์
ฉันจะบรรลุสิ่งนี้ได้อย่างไร public class GenericClass<T> { public Type getMyType() { //How do I return the type of T? } } ทุกสิ่งที่ฉันได้ลองมาแล้วจะส่งคืนประเภทเสมอObjectมากกว่าประเภทเฉพาะที่ใช้

8
ArithmeticException:“ การขยายทศนิยมแบบไม่สิ้นสุด ไม่มีผลลัพธ์ทศนิยมที่สามารถแทนค่าได้แน่นอน”
ทำไมรหัสต่อไปนี้ยกข้อยกเว้นที่แสดงด้านล่าง BigDecimal a = new BigDecimal("1.6"); BigDecimal b = new BigDecimal("9.2"); a.divide(b) // results in the following exception. ข้อยกเว้น: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.


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


14
แปลงชุดเป็นรายการโดยไม่ต้องสร้างรายการใหม่
ฉันใช้รหัสนี้เพื่อแปลง a Setเป็นList: Map<String, List<String>> mainMap = new HashMap<>(); for (int i=0; i < something.size(); i++) { Set<String> set = getSet(...); //returns different result each time List<String> listOfNames = new ArrayList<>(set); mainMap.put(differentKeyName, listOfNames); } ฉันต้องการหลีกเลี่ยงการสร้างรายการใหม่ในการวนซ้ำแต่ละครั้ง เป็นไปได้ไหม
503 java  performance  list  set 

11
เหตุใดจึงไม่มี SortedList ใน Java
ใน Java มีSortedSetและSortedMapอินเตอร์เฟซ ทั้งคู่เป็นของเฟรมเวิร์ก Java Collectionsและจัดเตรียมวิธีการเรียงลำดับเพื่อเข้าถึงองค์ประกอบ อย่างไรก็ตามในความเข้าใจของฉันไม่มีSortedListใน Java คุณสามารถใช้java.util.Collections.sort()เพื่อเรียงลำดับรายการ ความคิดใดที่ว่าทำไมมันถูกออกแบบเช่นนั้น


13
ฉันจะแปลงโปรแกรม Java เป็นไฟล์. exe ได้อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา หากฉันมีไฟล์ต้นฉบับ Java (* .java) หรือไฟล์คลาส (* .class) ฉันจะแปลงเป็นไฟล์. exe ได้อย่างไร ฉันยังต้องการตัวติดตั้งสำหรับโปรแกรมของฉัน
500 java  installer  exe 

11
การต่อข้อมูลสตริง: ตัวดำเนินการ concat () กับ“ +”
สมมติว่า String a และ b: a += b a = a.concat(b) ใต้ฝากระโปรงพวกมันเหมือนกันหรือไม่? นี่คือ concat decompiled เป็นข้อมูลอ้างอิง ฉันต้องการที่จะสามารถถอดรหัส+ผู้ประกอบการได้เช่นกัน public String concat(String s) { int i = s.length(); if (i == 0) { return this; } else { char ac[] = new char[count + i]; getChars(0, count, ac, 0); s.getChars(0, i, ac, …


27
คุณใช้คำอธิบายประกอบ @Override ของ Java เมื่อใดและเพราะเหตุใด
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ตั้งค่าไว้ที่นี่แล้วStack Overflow нарусском : Чтоозначает "@Override" передобъявлениемметода? แนวปฏิบัติที่ดีที่สุดสำหรับการใช้@Overrideคำอธิบายประกอบของ Java คืออะไรและเพราะเหตุใด ดูเหมือนว่าจะเป็น overkill ในการทำเครื่องหมายทุกวิธีการแทนที่ด้วย@Overrideคำอธิบายประกอบ มีสถานการณ์การเขียนโปรแกรมบางอย่างที่เรียกใช้@Overrideและอื่น ๆ ที่ไม่ควรใช้@Overrideหรือไม่
498 java  annotations 

24
ทำไมฉันไม่สามารถกำหนดวิธีการคงที่ในส่วนต่อประสาน Java?
แก้ไข: ในฐานะของ Java 8 ตอนนี้วิธีการคงที่ได้รับอนุญาตในส่วนต่อประสาน นี่คือตัวอย่าง: public interface IXMLizable<T> { static T newInstanceFromXML(Element e); Element toXMLElement(); } แน่นอนว่ามันจะไม่ทำงาน แต่ทำไมล่ะ หนึ่งในปัญหาที่เป็นไปได้คือสิ่งที่เกิดขึ้นเมื่อคุณโทร: IXMLizable.newInstanceFromXML(e); ในกรณีนี้ฉันคิดว่ามันควรจะเรียกวิธีการที่ว่างเปล่า (เช่น {}) คลาสย่อยทั้งหมดจะถูกบังคับให้ใช้เมธอดสแตติกดังนั้นพวกมันทั้งหมดจึงใช้ได้เมื่อเรียกเมธอดสแตติก เหตุใดจึงเป็นไปไม่ได้ แก้ไข:ฉันเดาว่าฉันกำลังมองหาคำตอบที่ลึกกว่า "เพราะนั่นคือวิธีที่ Java เป็น" มีเหตุผลทางเทคโนโลยีเฉพาะหรือไม่ทำไมวิธีการแบบคงที่ไม่สามารถเขียนทับได้? นั่นคือเหตุผลที่นักออกแบบของ Java ตัดสินใจที่จะทำให้วิธีการเช่นการแทนที่ แต่ไม่ใช่วิธีการคงที่? แก้ไข:ปัญหาเกี่ยวกับการออกแบบของฉันคือฉันกำลังพยายามใช้อินเทอร์เฟซเพื่อบังคับใช้แบบแผนการเข้ารหัส นั่นคือเป้าหมายของอินเทอร์เฟซคือสองเท่า: ฉันต้องการอินเทอร์เฟซ IXMLizable เพื่อให้ฉันสามารถแปลงคลาสที่นำไปใช้กับองค์ประกอบ XML (โดยใช้ polymorphism ทำงานได้ดี) ถ้ามีคนต้องการสร้างอินสแตนซ์ใหม่ของคลาสที่ใช้อินเทอร์เฟซ IXMLizable พวกเขาจะรู้อยู่เสมอว่าจะมีตัวสร้างแบบคงที่ newInstanceFromXML (องค์ประกอบ e) …

21
รูปแบบ MVC บน Android
เป็นไปได้หรือไม่ที่จะใช้รูปแบบ model-view – controller ใน Java สำหรับ Android? หรือมีการนำไปใช้แล้วผ่านกิจกรรมหรือไม่ หรือมีวิธีที่ดีกว่าในการใช้รูปแบบ MVC สำหรับ Android

18
ผลของข้อยกเว้นต่อประสิทธิภาพใน Java คืออะไร
คำถาม: การจัดการข้อยกเว้นใน Java ช้าจริงหรือไม่ ภูมิปัญญาดั้งเดิมรวมถึงผลการค้นหาของ Google จำนวนมากกล่าวว่าไม่ควรใช้ตรรกะพิเศษสำหรับการไหลเวียนของโปรแกรมปกติใน Java โดยปกติจะมีสองเหตุผล มันช้ามาก - แม้ลำดับความสำคัญจะช้ากว่ารหัสปกติ (เหตุผลที่ให้แตกต่างกันไป) และ มันยุ่งเพราะคนคาดหวังว่าข้อผิดพลาดเท่านั้นที่จะจัดการในรหัสพิเศษ คำถามนี้เกี่ยวกับ # 1 ตัวอย่างเช่นหน้านี้อธิบายการจัดการข้อยกเว้น Java ว่า "ช้ามาก" และเกี่ยวข้องกับความช้าในการสร้างสตริงข้อความข้อยกเว้น - "สตริงนี้จะใช้ในการสร้างวัตถุยกเว้นที่ถูกโยนนี่ไม่เร็ว" บทความการจัดการข้อยกเว้นที่มีประสิทธิภาพใน Javaกล่าวว่า "เหตุผลนี้เกิดจากการสร้างวัตถุของการจัดการข้อยกเว้นซึ่งทำให้การโยนข้อยกเว้นช้าโดยเนื้อแท้" อีกเหตุผลหนึ่งคือการสร้างการติดตามสแต็กคือสิ่งที่ทำให้ช้าลง การทดสอบของฉัน (โดยใช้ Java 1.6.0_07, Java HotSpot 10.0, บน 32 บิต Linux) ระบุว่าการจัดการข้อยกเว้นไม่ช้ากว่าโค้ดปกติ ฉันลองใช้วิธีการในวงที่รันรหัสบางอย่าง ในตอนท้ายของวิธีการที่ผมใช้บูลที่จะบ่งชี้ว่าจะกลับมาหรือโยน วิธีนี้การประมวลผลจริงจะเหมือนกัน ฉันลองใช้วิธีการตามคำสั่งต่าง ๆ และหาค่าเฉลี่ยเวลาทดสอบของฉันโดยคิดว่า JVM อาจร้อนขึ้น ในการทดสอบทั้งหมดของฉันการขว้างอย่างน้อยเท่ากับการส่งคืนถ้าไม่เร็วขึ้น …

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