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

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

9
วิธีการแทนที่วิธีการโคลนอย่างถูกต้อง?
ฉันจำเป็นต้องใช้การโคลนระดับลึกในวัตถุของฉันซึ่งไม่มีชั้นยอด วิธีใดที่ดีที่สุดในการจัดการกับการตรวจสอบที่CloneNotSupportedExceptionถูกโยนโดยซูเปอร์คลาส (ซึ่งคือObject)? เพื่อนร่วมงานแนะนำให้ฉันจัดการด้วยวิธีต่อไปนี้: @Override public MyObject clone() { MyObject foo; try { foo = (MyObject) super.clone(); } catch (CloneNotSupportedException e) { throw new Error(); } // Deep clone member fields here return foo; } นี่ดูเหมือนจะเป็นวิธีแก้ปัญหาที่ดีสำหรับฉัน แต่ฉันต้องการเผยแพร่ให้ชุมชน StackOverflow ดูว่ามีข้อมูลเชิงลึกอื่น ๆ ที่ฉันสามารถรวมไว้ได้หรือไม่ ขอบคุณ!
114 java  clone  cloning  cloneable 

1
คุ้มไหมที่จะใช้ slf4j กับ log4j2
ฉันไม่สามารถตัดสินใจได้ว่าจะใช้ slf4j หรือไม่กับ log4j2 จากโพสต์ออนไลน์ดูเหมือนว่ามันจะมีผลงานที่ยอดเยี่ยม แต่จำเป็นจริงๆ จุดเหล่านี้ยังสนับสนุน log4j2: SLF4J บังคับให้แอปพลิเคชันของคุณบันทึกสตริง Log4j 2 API รองรับการบันทึก CharSequence ใด ๆ หากคุณต้องการบันทึกข้อความ แต่ยังสนับสนุนการบันทึก Object ใด ๆ ตามที่เป็นอยู่ Log4j 2 API รองรับการบันทึกอ็อบเจ็กต์ Message, Java 8 lambda expression และการบันทึกแบบไม่ใช้ขยะ (หลีกเลี่ยงการสร้างอาร์เรย์ vararg และหลีกเลี่ยงการสร้าง Strings เมื่อล็อกอ็อบเจ็กต์ CharSequence)
114 java  logging  log4j  slf4j  log4j2 

12
วิธีรับส่วนเส้นทางสุดท้ายของ URI
ฉันมีเป็นอินพุตสตริงที่เป็นไฟล์URI. เป็นไปได้อย่างไรที่จะได้รับส่วนเส้นทางสุดท้าย (ในกรณีของฉันคือ id) นี่คือ URL ที่ฉันป้อน: String uri = "http://base_path/some_segment/id" และฉันต้องได้รับรหัสที่ฉันได้ลองกับสิ่งนี้: String strId = "http://base_path/some_segment/id"; strId = strId.replace(path); strId = strId.replaceAll("/", ""); Integer id = new Integer(strId); return id.intValue(); แต่มันไม่ได้ผลและต้องมีวิธีที่ดีกว่านี้แน่นอน
114 java  string  url 


16
Java lib หรือแอพเพื่อแปลงไฟล์ CSV เป็น XML? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ มีแอปพลิเคชันหรือไลบรารีที่มีอยู่ในJavaซึ่งจะช่วยให้ฉันสามารถแปลงCSVไฟล์ข้อมูลเป็นXMLไฟล์ได้หรือไม่? XMLแท็กจะให้ผ่านอาจจะเป็นแถวแรกที่มีส่วนหัวของคอลัมน์
114 java  xml  csv  data-conversion 

16
จะแสดงรายการไฟล์ภายในไฟล์ JAR ได้อย่างไร?
ฉันมีรหัสนี้ซึ่งอ่านไฟล์ทั้งหมดจากไดเร็กทอรี File textFolder = new File("text_directory"); File [] texFiles = textFolder.listFiles( new FileFilter() { public boolean accept( File file ) { return file.getName().endsWith(".txt"); } }); มันใช้งานได้ดี มันเติมอาร์เรย์ด้วยไฟล์ทั้งหมดที่ลงท้ายด้วย ".txt" จากไดเร็กทอรี "text_directory" ฉันจะอ่านเนื้อหาของไดเร็กทอรีในลักษณะเดียวกันภายในไฟล์ JAR ได้อย่างไร สิ่งที่ฉันอยากทำจริงๆคือแสดงรายการภาพทั้งหมดในไฟล์ JAR ของฉันดังนั้นฉันจึงสามารถโหลดได้ด้วย: ImageIO.read(this.getClass().getResource("CompanyLogo.png")); (อันนี้ใช้ได้เพราะ "CompanyLogo" เป็น "ฮาร์ดโค้ด" แต่จำนวนภาพในไฟล์ JAR อาจมีความยาวตัวแปรได้ตั้งแต่ 10 ถึง 200) แก้ไข ดังนั้นฉันเดาว่าปัญหาหลักของฉันคือ: จะรู้ชื่อไฟล์ …
114 java  file  jar  java-io  getresource 

4
อินสแตนซ์ของ Vs getClass ()
ฉันเห็นประสิทธิภาพที่เพิ่มขึ้นเมื่อใช้งานgetClass()และ==ดำเนินการมากกว่าinstanceOfตัวดำเนินการ Object str = new Integer("2000"); long starttime = System.nanoTime(); if(str instanceof String) { System.out.println("its string"); } else { if (str instanceof Integer) { System.out.println("its integer"); } } System.out.println((System.nanoTime()-starttime)); starttime = System.nanoTime(); if(str.getClass() == String.class) { System.out.println("its string in equals"); } else { if(str.getClass() == Integer.class) { System.out.println("its integer"); } …
114 java  class  instanceof 

2
นิพจน์แลมบ์ดาเทียบกับการอ้างอิงเมธอด [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ IntelliJ ยังคงเสนอให้ฉันแทนที่นิพจน์แลมบ์ดาด้วยการอ้างอิงวิธีการ มีวัตถุประสงค์แตกต่างกันระหว่างทั้งสองอย่างหรือไม่?


4
การตั้งค่า Short Value Java
ฉันกำลังเขียนโค้ดเล็ก ๆ น้อย ๆ ใน J2ME setTableId(Short tableId)ฉันได้เรียนด้วยวิธีการที่ ตอนนี้เมื่อฉันพยายามที่จะเขียนsetTableId(100)มันทำให้เกิดข้อผิดพลาดเวลาคอมไพล์ ฉันจะตั้งค่า short โดยไม่ต้องประกาศตัวแปร short อื่นได้อย่างไร เมื่อตั้งLongค่าฉันสามารถใช้setLongValue(100L)และใช้งานได้ ที่Lนี่หมายความว่าอย่างไรและมีไว้เพื่ออะไรShortค่าคืออะไร? ขอบคุณ


4
Java - รวมตัวแปรภายในสตริงหรือไม่
ตกลงดังนั้นเราทุกคนควรรู้ว่าคุณสามารถรวมตัวแปรลงในสตริงได้โดยทำ: String string = "A string " + aVariable; มีวิธีทำดังนี้ String string = "A string {aVariable}"; กล่าวอีกนัยหนึ่ง:โดยไม่ต้องปิดเครื่องหมายคำพูดและเพิ่มเครื่องหมายบวก มันขี้เหร่มาก

4
javax.inject.Named คำอธิบายประกอบควรจะใช้สำหรับอะไร
ฉันพยายามทำความเข้าใจกับjavax.injectแพ็คเกจและไม่ชัดเจนว่าjavax.inject.Namedควรใช้คำอธิบายประกอบอะไร Javadoc ไม่ได้อธิบายถึงแนวคิดเบื้องหลัง Javadoc อยู่ที่http://download.oracle.com/javaee/6/api/javax/inject/Named.html ฉันใช้Spring 3.0เพื่อเขียนโปรแกรมตัวอย่างโดยการใส่@Namedbean ดูเหมือนว่าจะเพิ่มลงในโรงงานถั่ว แต่คำอธิบาย Javadoc นั้นเบามากฉันไม่สามารถบอกได้ว่านั่นเป็นพฤติกรรมมาตรฐานหรือพฤติกรรมเฉพาะของ Spring คำถามของฉันคือ: อะไรคือความแตกต่างระหว่าง@Namedและ@Qualifier คุณควรจะบอกระบบ Runtime ได้อย่างไรว่าคลาสควรฉีดในคลาสอื่น ๆ คำอธิบายประกอบสำหรับสิ่งนั้นคืออะไร? เทียบเท่า@Componentในฤดูใบไม้ผลิ? อัปเดต 1มีคำอธิบายที่ยอดเยี่ยม@Namedและ@Qualifierที่ Nice article about @Namedและ@Qualifier https://dzone.com/articles/java-ee6-cdi-named-componentsขอบคุณ @xmedeko สำหรับการเชื่อมโยงไปยังความคิดเห็นด้านล่าง

30
ข้อผิดพลาดไฮเบอร์เนต: org.hibernate.NonUniqueObjectException: อ็อบเจ็กต์อื่นที่มีค่าตัวระบุเดียวกันถูกเชื่อมโยงกับเซสชันแล้ว
ฉันมีวัตถุผู้ใช้สองรายการและในขณะที่ฉันพยายามบันทึกวัตถุโดยใช้ session.save(userObj); ฉันได้รับข้อผิดพลาดต่อไปนี้: Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.pojo.rtrequests.User#com.pojo.rtrequests.User@d079b40b] ฉันกำลังสร้างเซสชันโดยใช้ไฟล์ BaseHibernateDAO dao = new BaseHibernateDAO(); rtsession = dao.getSession(userData.getRegion(), BaseHibernateDAO.RTREQUESTS_DATABASE_NAME); rttrans = rtsession.beginTransaction(); rttrans.begin(); rtsession.save(userObj1); rtsession.save(userObj2); rtsession.flush(); rttrans.commit(); rtsession.close(); // in finally block ฉันยังลองทำsession.clear()ก่อนที่จะประหยัด แต่ยังไม่มีโชค นี่เป็นครั้งแรกที่ฉันได้รับวัตถุเซสชันเมื่อมีคำขอของผู้ใช้มาดังนั้นฉันจึงได้รับว่าเหตุใดจึงบอกว่าวัตถุนั้นมีอยู่ในเซสชัน ข้อเสนอแนะใด ๆ ?
114 java  hibernate  orm 

1
จะสร้างอินสแตนซ์ของคลาสนามธรรมที่ไม่ระบุชื่อใน Kotlin ได้อย่างไร
สมมติว่าKeyAdapterเป็นคลาสนามธรรมที่มีหลายวิธีที่สามารถลบล้างได้ ใน java ฉันสามารถทำได้: KeyListener keyListener = new KeyAdapter() { @Override public void keyPressed(KeyEvent keyEvent) { // ... } }; วิธีการทำเช่นเดียวกันใน Kotlin?

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