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

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

17
การปิดใช้งานการสร้าง LOB ตามบริบทเนื่องจากเมธอด createClob () ส่งข้อผิดพลาด
ฉันใช้ Hibernate 3.5.6 กับ Oracle 10g ฉันเห็นข้อยกเว้นด้านล่างระหว่างการเริ่มต้น แต่แอปพลิเคชันนั้นทำงานได้ดี สาเหตุของข้อยกเว้นนี้คืออะไร? และจะแก้ไขได้อย่างไร? ข้อยกเว้น การปิดใช้งานการสร้าง LOB ตามบริบทเนื่องจากcreateClob()วิธีการโยนข้อผิดพลาด:java.lang.reflect.InvocationTargetException ข้อมูล เวอร์ชัน Oracle: Oracle Database 10g Enterprise Edition รีลีส 10.2.0.4.0 ไดรเวอร์ JDBC: ไดรเวอร์ Oracle JDBC เวอร์ชัน: 11.1.0.7.0

6
ความหมายของจอภาพของวัตถุใน Java คืออะไร? ทำไมต้องใช้คำนี้?
เมื่ออ่านบทความเกี่ยวกับเธรด Java ฉันมักจะสังเกตเห็นนิพจน์: "เธรดปัจจุบันเป็นเจ้าของจอภาพของอ็อบเจ็กต์นี้" ฉันเข้าใจความหมาย: เธรดได้รับสิทธิ์ในการทำงานกับวัตถุ แต่ฉันงงว่าทำไมเราถึงใช้วลี "the object's monitor" แทน "the object's lock"? โดยสรุปฉันไม่รู้ความหมายของคำว่า 'มอนิเตอร์' คำถามอาจจะแปลกและเรียบง่าย แต่ฉันหวังว่าใครก็ได้สามารถช่วยแก้ไขได้ 3ks


15
gson.toJson () พ่น StackOverflowError
ฉันต้องการสร้างสตริง JSON จากวัตถุของฉัน: Gson gson = new Gson(); String json = gson.toJson(item); ทุกครั้งที่ฉันพยายามทำสิ่งนี้ฉันได้รับข้อผิดพลาดนี้: 14:46:40,236 ERROR [[BomItemToJSON]] Servlet.service() for servlet BomItemToJSON threw exception java.lang.StackOverflowError at com.google.gson.stream.JsonWriter.string(JsonWriter.java:473) at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:347) at com.google.gson.stream.JsonWriter.value(JsonWriter.java:440) at com.google.gson.internal.bind.TypeAdapters$7.write(TypeAdapters.java:235) at com.google.gson.internal.bind.TypeAdapters$7.write(TypeAdapters.java:220) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:200) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60) at com.google.gson.Gson$FutureTypeAdapter.write(Gson.java:843) นี่คือคุณสมบัติของคลาสBomItemของฉัน: private int …

11
ไม่สามารถใช้ Intellij กับโฟลเดอร์ซอร์สที่สร้างขึ้น
คำถามที่เกี่ยวข้อง จะกำหนดค่า IntelliJ IDEA และ / หรือ Maven ให้เพิ่มไดเร็กทอรีโดยอัตโนมัติด้วยซอร์สโค้ด Java ที่สร้างโดยใช้ jaxb2-maven-plugin ได้อย่างไร? ฉันมีปลั๊กอินแบบกำหนดเองที่สร้างแหล่งที่มาภายใต้target/generated-sources(หมายเหตุไม่มีชื่อเครื่องมือที่นี่) ดังนั้นฉันจึงได้รับแหล่งข้อมูลเช่นtarget/generated-sources/com/mycompany... ฯลฯ รูปแบบนี้ไม่สามารถเปลี่ยนแปลงได้เลยดังนั้นฉันจะสามารถกำหนดค่า Intellij ให้เพิ่มเป็นโฟลเดอร์ต้นทางได้ ณ ตอนนี้ฉันเห็นว่า Intellij ได้เพิ่มtarget/generated-sources/comเป็นโฟลเดอร์ต้นทางแล้ว โปรดทราบว่าฉันไม่มีตัวเลือกในการกำหนดค่าปลั๊กอิน! อัปเดต 1 : ฉันไม่เห็นด้วยกับการที่ฉันต้องใส่ซอร์สที่สร้างขึ้นภายใต้โฟลเดอร์ชื่อเครื่องมือ มันอาจจะเป็นหลักการที่ดี แต่ถ้าฉันมีเครื่องกำเนิดไฟฟ้าเพียงเครื่องเดียวฉันไม่จำเป็นต้องวางมันไว้ที่นั่น? อีกครั้งใน pom.xml ของฉันฉันมีresourcesส่วนที่ระบุอย่างชัดเจนว่าtarget/generated-sourcesควรถือเป็นโฟลเดอร์ต้นทาง สิ่งนี้ทำงานได้ดีอย่างสมบูรณ์ใน Eclipse ดังนั้นฉันจึงไม่รู้ว่าทำไม Intellij ถึงไม่เคารพการตั้งค่าของฉัน TL; DR -> เมื่อฉันใส่target/generated-sourcesในส่วนทรัพยากรpom.xmlว่าทำไม Intellij ถึงต้องเพิ่มลงtarget/generated-sources/comใน classpath มากเกินไป

14
Java 8 สตรีมเพื่อค้นหาองค์ประกอบที่ซ้ำกัน
ฉันกำลังพยายามแสดงรายการองค์ประกอบที่ซ้ำกันในรายการจำนวนเต็มพูดเช่น List<Integer> numbers = Arrays.asList(new Integer[]{1,2,1,3,4,4}); ใช้ Streams ของ jdk 8 มีใครลองบ้าง ในการลบรายการที่ซ้ำกันเราสามารถใช้ API ที่แตกต่างกัน () แต่การค้นหาองค์ประกอบที่ซ้ำกันล่ะ? ใครสามารถช่วยฉันออก?

5
SQlite รับตำแหน่งที่ใกล้ที่สุด (ด้วยละติจูดและลองจิจูด)
ฉันมีข้อมูลที่มีละติจูดและลองจิจูดที่เก็บไว้ในฐานข้อมูล SQLite ของฉันและฉันต้องการรับตำแหน่งที่ใกล้ที่สุดกับพารามิเตอร์ที่ฉันใส่ไว้ (เช่นตำแหน่งปัจจุบันของฉัน - lat / lng ฯลฯ ) ฉันรู้ว่าสิ่งนี้เป็นไปได้ใน MySQL และฉันได้ทำการวิจัยมาพอสมควรแล้วว่า SQLite ต้องการฟังก์ชันภายนอกที่กำหนดเองสำหรับสูตร Haversine (การคำนวณระยะทางบนทรงกลม) แต่ฉันไม่พบสิ่งใดที่เขียนใน Java และใช้งานได้ . นอกจากนี้ถ้าฉันต้องการเพิ่มฟังก์ชันที่กำหนดเองฉันต้องใช้org.sqlite. jar (สำหรับorg.sqlite.Function) และนั่นเป็นการเพิ่มขนาดที่ไม่จำเป็นให้กับแอป อีกด้านหนึ่งคือฉันต้องการฟังก์ชั่น Order by จาก SQL เนื่องจากการแสดงระยะทางเพียงอย่างเดียวนั้นไม่ได้เป็นปัญหามากนัก - ฉันทำมันใน SimpleCursorAdapter ที่กำหนดเองแล้ว แต่ฉันไม่สามารถเรียงลำดับข้อมูลได้เพราะฉัน ไม่มีคอลัมน์ระยะทางในฐานข้อมูลของฉัน นั่นหมายถึงการอัปเดตฐานข้อมูลทุกครั้งที่มีการเปลี่ยนแปลงตำแหน่งและเป็นการสิ้นเปลืองแบตเตอรี่และประสิทธิภาพ ดังนั้นหากใครมีความคิดในการจัดเรียงเคอร์เซอร์ด้วยคอลัมน์ที่ไม่ได้อยู่ในฐานข้อมูลฉันก็รู้สึกขอบคุณเช่นกัน! ฉันรู้ว่ามีแอพ Android มากมายที่ใช้ฟังก์ชั่นนี้ แต่ใครช่วยอธิบายความมหัศจรรย์ให้หน่อยได้ไหม อย่างไรก็ตามฉันพบทางเลือกนี้: ค้นหาเพื่อรับบันทึกตาม Radius ใน SQLite? แนะนำให้สร้าง 4 …

5
การตั้งค่าการหมดเวลาสำหรับการทำงานของซ็อกเก็ต
เมื่อฉันสร้างซ็อกเก็ต: Socket socket = new Socket(ipAddress, port); มันแสดงข้อยกเว้นซึ่งก็โอเคเนื่องจากไม่มีที่อยู่ IP (ตัวแปรทดสอบที่String ipAddress = "192.168.0.3"และint port = 300.) ปัญหาคือ: ฉันจะตั้งค่าให้หมดเวลาสำหรับซ็อกเก็ตนั้นได้อย่างไร? เมื่อฉันสร้างซ็อกเก็ตฉันจะลดเวลาก่อนที่ฉันจะได้รับUnknownHostExceptionและทำให้ซ็อกเก็ตหมดเวลาได้อย่างไร
87 java  sockets 

9
แนวทางปฏิบัติ / ประสิทธิภาพที่ดีที่สุด: การผสม StringBuilder.append กับ String.concat
ฉันพยายามทำความเข้าใจว่าแนวทางปฏิบัติที่ดีที่สุดคืออะไรและเหตุใดจึงต้องเชื่อมต่อตัวอักษรสตริงและตัวแปรสำหรับกรณีต่างๆ ตัวอย่างเช่นถ้าฉันมีรหัสเช่นนี้ StringBuilder sb = new StringBuilder("AAAAAAAAAAAAA") .append(B_String).append("CCCCCCCCCCC").append(D_String) .append("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE") .append("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); นี่คือวิธีการทำหรือไม่? จากการโพสต์นี้ผมสังเกตเห็นว่า+ผู้ประกอบการในสายสร้างตัวอย่างใหม่ของ StringBuilder เชื่อมเข้าด้วยกันตัวถูกดำเนินการและส่งกลับแปลง String ซึ่งดูเหมือนว่าการทำงานมากขึ้นกว่าเพียงแค่การเรียก.append(); ดังนั้นหากเป็นเช่นนั้นจริงก็ไม่เป็นปัญหา แต่เรื่องString.concat()อะไร? มันเหมาะสม.append()หรือไม่ที่จะใช้สำหรับการเรียงต่อกันทุกครั้ง หรือสำหรับตัวแปรและตัวอักษรสามารถต่อท้ายด้วยได้.concat()หรือไม่? StringBuilder sb = new StringBuilder("AAAAAAAAAAAAA") .append(B_String.concat("CCCCCCCCCCC")).append(D_String .concat("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE") .concat("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")); กฎทั่วไปสำหรับแนวทางปฏิบัติที่ดีที่สุดและประสิทธิภาพในการดำเนินการกับสถานการณ์เหล่านี้คืออะไร? สมมติฐานของฉันถูกต้องหรือไม่+และไม่ควรใช้จริงๆ

11
แปลงค่าจำนวนเต็มเพื่อจับคู่ Java Enum
ฉันมีสิ่งนี้: public enum PcapLinkType { DLT_NULL(0) DLT_EN10MB(1) DLT_EN3MB(2), DLT_AX25(3), /*snip, 200 more enums, not always consecutive.*/ DLT_UNKNOWN(-1); private final int value; PcapLinkType(int value) { this.value= value; } } ตอนนี้ฉันได้รับ int จากอินพุตภายนอกและต้องการอินพุตที่ตรงกัน - การยกเว้นหากไม่มีค่าก็โอเค แต่ควรมีไว้DLT_UNKNOWN ในกรณีนั้น int val = in.readInt(); PcapLinkType type = ???; /*convert val to a PcapLinkType */
87 java 

6
ประสิทธิภาพของตัวแปร ThreadLocal
อ่านจากThreadLocalตัวแปรช้ากว่าจากฟิลด์ปกติมากแค่ไหน? การสร้างวัตถุอย่างง่ายเร็วกว่าหรือช้ากว่าการเข้าถึงThreadLocalตัวแปรคืออะไร? ฉันคิดว่ามันเร็วพอที่จะมีThreadLocal<MessageDigest>อินสแตนซ์ได้เร็วขึ้นมากจากนั้นสร้างอินสแตนซ์MessageDigestทุกครั้ง แต่นั่นยังใช้กับไบต์ [10] หรือไบต์ [1000] ด้วยเช่นกัน แก้ไข: คำถามคือเกิดอะไรขึ้นเมื่อโทรไปThreadLocal? ถ้านั่นเป็นเพียงสนามเช่นอื่น ๆ คำตอบก็จะเป็น "มันเร็วที่สุดเสมอ" ใช่ไหม?

8
นิพจน์ทั่วไปเพื่อจับคู่ URL ใน Java
ฉันใช้ RegexBuddy ในขณะที่ทำงานกับนิพจน์ทั่วไป จากไลบรารีฉันคัดลอกนิพจน์ทั่วไปเพื่อจับคู่ URL ฉันทดสอบสำเร็จภายใน RegexBuddy อย่างไรก็ตามเมื่อฉันคัดลอกเป็นStringรสJava และวางลงในโค้ด Java ก็ไม่ได้ผล ชั้นเรียนต่อไปนี้จะพิมพ์false: public class RegexFoo { public static void main(String[] args) { String regex = "\\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]"; String text = "http://google.com"; System.out.println(IsMatch(text,regex)); } private static boolean IsMatch(String s, String pattern) { try { Pattern patt = Pattern.compile(pattern); Matcher matcher = patt.matcher(s); …
87 java  regex  regexbuddy 

6
คุณจัดการกับสแน็ปช็อตที่ประทับเวลา maven-3 อย่างมีประสิทธิภาพได้อย่างไร?
ตอนนี้ maven-3 ได้ยกเลิกการสนับสนุน <uniqueVersion> false </uniqueVersion> สำหรับสิ่งประดิษฐ์สแนปชอตดูเหมือนว่าคุณจำเป็นต้องใช้ SNAPSHOTS ที่ประทับเวลาจริงๆ โดยเฉพาะอย่างยิ่ง m2eclipse ซึ่งใช้ maven 3 ภายในดูเหมือนว่าจะได้รับผลกระทบการอัปเดตสแนปชอตไม่ทำงานเมื่อ SNAPSHOTS ไม่ซ้ำกัน ดูเหมือนแนวทางปฏิบัติที่ดีที่สุดก่อนที่จะตั้งค่าสแนปชอตทั้งหมดเป็น uniqueVersion = false ตอนนี้ดูเหมือนว่าจะไม่มีปัญหาใหญ่ที่จะเปลี่ยนไปใช้เวอร์ชันที่ประทับเวลาหลังจากทั้งหมดได้รับการจัดการโดยที่เก็บส่วนกลางของ nexus ซึ่งสามารถลบภาพรวมเก่าในช่วงเวลาปกติได้ ปัญหาคือเวิร์กสเตชันของนักพัฒนาท้องถิ่น พื้นที่เก็บข้อมูลในท้องถิ่นของตนได้อย่างรวดเร็วไม่เติบโตมากขนาดใหญ่ที่มีภาพรวมที่ไม่ซ้ำกัน จะจัดการกับปัญหานี้อย่างไร? ตอนนี้ฉันเห็นวิธีแก้ไขที่เป็นไปได้ต่อไปนี้: ขอให้นักพัฒนาล้างที่เก็บข้อมูลเป็นระยะ ๆ (ซึ่งนำไปสู่ความยุ่งยากมากมายเนื่องจากต้องใช้เวลานานในการลบและดาวน์โหลดทุกอย่างที่จำเป็นนานขึ้น) ตั้งค่าสคริปต์บางส่วนซึ่งจะลบไดเร็กทอรีSNAPSHOTทั้งหมดออกจากที่เก็บในเครื่องและขอให้นักพัฒนาเรียกใช้สคริปต์นั้นเป็นครั้งคราว (ดีกว่าครั้งแรก แต่ก็ยังใช้เวลาพอสมควรในการเรียกใช้และดาวน์โหลดสแนปชอตปัจจุบัน) ใช้การอ้างอิง: ปลั๊กอิน purge-local-repository (มีปัญหาเมื่อเรียกใช้จาก eclipse เนื่องจากไฟล์ที่เปิดอยู่จำเป็นต้องเรียกใช้จากแต่ละโครงการ) ตั้งค่าเน็กซัสในทุกเวิร์กสเตชันและตั้งค่างานเพื่อล้างสแน็ปช็อตเก่า (ผลลัพธ์ที่ดีที่สุด แต่ฉันไม่ต้องการดูแลเซิร์ฟเวอร์ nexus มากกว่า 50+ เซิร์ฟเวอร์รวมทั้งหน่วยความจำในเวิร์กสเตชันของนักพัฒนาซอฟต์แวร์จะแน่น) หยุดใช้ SNAPSHOTS เลย …
87 java  maven-3 

6
จะจับภาพเหตุการณ์คลิกปุ่มปิดของ JFrame ได้อย่างไร?
ฉันต้องการเรียกเมธอดconfirmExit()เมื่อคลิกปุ่มปิดสีแดงของแถบหัวเรื่องของ JFrame จับภาพเหตุการณ์นั้นได้อย่างไร? ฉันต้องการป้องกันไม่ให้หน้าต่างปิดหากผู้ใช้เลือกที่จะไม่ดำเนินการต่อ


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