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

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

4
JpaRepository ไม่รองรับการดำเนินการ DML [ลบคิวรี]
ฉันได้เขียนข้อความค้นหาเพื่อลบวัตถุบางอย่างในส่วนต่อประสานของฉันที่ขยายออกไปJPaRepositoryแต่เมื่อฉันดำเนินการค้นหามันมีข้อยกเว้น! ใครช่วยอธิบายให้ฉันฟังหน่อย คำถาม: public interface LimitRepository extends JpaRepository<CLimit, Long> { @Query("delete from CLimit l where l.trader.id =:#{#trader.id}") void deleteLimitsByTrader(@Param("trader") CTrader trader); } ฉันได้รับข้อผิดพลาดนี้โปรดอธิบายให้ฉันฟังได้ไหมและขอบคุณทุกคน :) ข้อยกเว้น: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [delete from com.query.domain.CLimit l where l.trader.id =:__$synthetic$__1] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:318) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:369) at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300) at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573) …

4
ReservedCodeCacheSize และ InitialCodeCacheSize คืออะไร
ใครจะกรุณาอธิบายสิ่งที่ตัวเลือก JVM ReservedCodeCacheSizeและInitialCodeCacheSizeมีอะไรบ้าง โดยเฉพาะเมื่อใด / เหตุใดฉันจึงต้องการเปลี่ยนแปลง ฉันจะตัดสินใจได้อย่างไรว่าขนาดที่เหมาะสมคืออะไร? นี่คือสิ่งที่เอกสารกล่าวว่า: -XX: ReservedCodeCacheSize = 32m ขนาดแคชของรหัสที่สงวนไว้ (เป็นไบต์) - ขนาดแคชโค้ดสูงสุด [Solaris 64-bit, amd64 และ -server x86: 2048m; ใน 1.5.0_06 และรุ่นก่อนหน้า Solaris 64 บิตและ 64: 1024 ม.]
89 java  jvm  jvm-hotspot 

18
การสร้างตัวเลขสุ่มโดยไม่ซ้ำกัน
ในกรณีนี้ MAX เป็นเพียง 5 ดังนั้นฉันจึงสามารถตรวจสอบรายการที่ซ้ำกันได้ทีละรายการ แต่จะทำอย่างไรให้ง่ายกว่า ตัวอย่างเช่นจะเกิดอะไรขึ้นถ้า MAX มีค่าเป็น 20? ขอบคุณ. int MAX = 5; for (i = 1 , i <= MAX; i++) { drawNum[1] = (int)(Math.random()*MAX)+1; while (drawNum[2] == drawNum[1]) { drawNum[2] = (int)(Math.random()*MAX)+1; } while ((drawNum[3] == drawNum[1]) || (drawNum[3] == drawNum[2]) ) { drawNum[3] = (int)(Math.random()*MAX)+1; …
89 java  random 


5
REST สามารถส่งคืนเนื้อหาหลังจาก POST ได้หรือไม่
ฉันใช้ RESTlet และฉันได้สร้างทรัพยากร ฉันจัดการ POST ด้วยacceptRepresentationวิธีการลบล้าง ไคลเอนต์ควรส่งข้อมูลบางส่วนให้ฉันจากนั้นฉันเก็บไว้ที่ DB ตั้งค่าการตอบสนองเป็น 201 (SUCCESS_CREATED) และฉันต้องการส่งคืนข้อมูลบางส่วนให้กับไคลเอนต์ แต่ส่งคืนประเภทของ acceptRepresentationvoidคือ ในกรณีของฉันฉันต้องส่งคืนตัวระบุบางตัวเพื่อให้ลูกค้าสามารถเข้าถึงทรัพยากรนั้นได้ ตัวอย่างเช่นถ้าผมมีทรัพยากรที่มี URL /resourceและลูกค้าส่งคำขอ POST /resource/{id}ฉันเพิ่มแถวใหม่ในฐานข้อมูลและที่อยู่ของมันควรจะเป็น ฉันต้องการส่ง{id}ฉันต้องการที่จะส่ง ฉันทำอะไรผิดหรือเปล่า? หลักการ REST อนุญาตให้ส่งคืนบางสิ่งหลังจาก POST หรือไม่ ถ้าใช่ฉันจะทำอย่างไรและถ้าไม่มีวิธีจัดการกับสถานการณ์นี้คืออะไร?
89 java  rest  restlet 

4
Android - ตัวสร้างกิจกรรมเทียบกับ onCreate
ฉันเข้าใจว่า Android Activitiesมีวงจรชีวิตที่เฉพาะเจาะจงและonCreateควรถูกลบล้างและใช้สำหรับการเริ่มต้น แต่จะเกิดอะไรขึ้นในตัวสร้าง? มีกรณีใดบ้างที่คุณสามารถ / ควรแทนที่ตัวActivityสร้างด้วยหรือคุณไม่ควรแตะต้องมัน? ฉันสมมติว่าไม่ควรใช้ตัวสร้างเนื่องจากการอ้างอิงถึงActivitiesไม่ได้รับการทำความสะอาดทั้งหมด (จึงขัดขวางตัวเก็บขยะ) และนั่นonDestroyก็เพื่อจุดประสงค์ ถูกต้องหรือไม่

10
ความแตกต่างระหว่าง Static method และ Instance method
ฉันแค่อ่านข้อความที่ให้ไว้ในหนังสือเรียนและฉันไม่แน่ใจจริงๆว่าฉันเข้าใจสิ่งที่มันพูด โดยพื้นฐานแล้วจะบอกฉันว่าเมธอดแบบคงที่หรือคลาสเมธอดนั้นมีคีย์เวิร์ด "ตัวแก้ไข" แบบคงที่ แต่ฉันไม่รู้จริงๆว่ามันหมายถึงอะไร? ใครช่วยอธิบายให้ฉันเข้าใจง่ายๆว่า Static หรือ Class Methods คืออะไร นอกจากนี้ฉันขอคำอธิบายง่ายๆเกี่ยวกับวิธีการของอินสแตนซ์ได้หรือไม่ นี่คือสิ่งที่พวกเขาให้ฉันในตำราเรียน: มีผลกระทบในทางปฏิบัติที่สำคัญของการมีหรือไม่มีของตัวปรับแต่งคงที่ เมธอดคลาสสาธารณะอาจถูกเรียกใช้และเรียกใช้งานได้ทันทีที่ Java ประมวลผลนิยามของคลาสที่เป็นอยู่ นั่นไม่ใช่กรณีสำหรับวิธีการอินสแตนซ์ ก่อนที่วิธีการอินสแตนซ์สาธารณะอาจถูกเรียกใช้และดำเนินการอินสแตนซ์จะต้องถูกสร้างขึ้นจากคลาสที่เป็นสมาชิก ในการใช้เมธอดคลาสสาธารณะคุณต้องมีคลาส ในทางกลับกันก่อนที่คุณจะสามารถใช้วิธีการอินสแตนซ์สาธารณะคุณต้องมีอินสแตนซ์ของคลาส ลักษณะที่เรียกใช้เมธอดแบบคงที่ภายในนิยามของวิธีการอื่นจะแตกต่างกันไปขึ้นอยู่กับว่าทั้งสองวิธีเป็นของคลาสเดียวกัน ในตัวอย่างข้างต้นแฟกทอเรียลและเมนเป็นทั้งเมธอดของคลาส MainClass เป็นผลให้การเรียกใช้แฟกทอเรียลในคำจำกัดความของ main เพียงแค่อ้างอิงชื่อเมธอด "แฟกทอเรียล"

2
จะดึงอินสแตนซ์ที่มีคำอธิบายประกอบจากหัวฉีดของ Guice ได้อย่างไร
สมมติว่าฉันมีโมดูล: Module extends AbstractModule { @Override protected void configure() { bind(String.class). annotatedWith(Names.named("annotation")). toInstance("DELIRIOUS"); } } และฉันต้องการทดสอบโมดูลและตรวจสอบว่ามันฉีดค่าที่ถูกต้องในStringฟิลด์ที่มีคำอธิบายประกอบNames.named("annotation")โดยไม่ต้องมีคลาสและฟิลด์ แต่ได้รับค่าโดยตรงจากหัวฉีด: @Test public void test() { Injector injector = Guice.createInjector(new Module()); // THIS IS NOT GOING TO WORK! String delirious = injector.getInstance(String.class); assertThat(delirious, IsEqual.equalTo("DELIRIOUS"); }

5
java howto ArrayList push, pop, shift และ unshift
ฉันพิจารณาแล้วว่า Java ArrayList.addนั้นคล้ายกับ JavaScriptArray.push ฉันติดขัดในการค้นหาArrayListฟังก์ชันที่คล้ายกับสิ่งต่อไปนี้ Array.pop Array.shift Array.unshift ฉันเอนเอียงไป ArrayList.remove[At]
89 java  arraylist 

9
แปลงค่าสีฐานสิบหก (#ffffff) เป็นค่าจำนวนเต็ม
ฉันได้รับค่าสีฐานสิบหกจากเซิร์ฟเวอร์ (ในรูปแบบนี้#xxxxxxเช่น#000000สีดำ) ฉันจะแปลงค่านี้เป็นค่าจำนวนเต็มได้อย่างไร ฉันพยายามทำInteger.valueOf("0x" + passedColor.substring(1, passedColor.length()))เพื่อให้ได้0x000000ผลลัพธ์ที่แตกต่างกันมากขึ้นแต่นี่ไม่ได้เป็นintข้อเสนอแนะอื่นใด ฉันได้รับข้อผิดพลาด: 08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer ฉันใช้ Android SDK สำหรับsetBackgroundColor(int color)ฟังก์ชั่นซึ่งใช้เวลา - อย่างที่คุณคาดเดา - ค่าสีจำนวนเต็ม นี่คือ OPPOSITE ของคำถามนี้: จะแปลงจำนวนเต็มสีเป็น hex String ใน Android ได้อย่างไร?

8
ฉันจะแทนที่อักขระ Unicode ที่ไม่สามารถพิมพ์ได้ใน Java ได้อย่างไร
สิ่งต่อไปนี้จะแทนที่อักขระควบคุม ASCII (ชวเลขสำหรับ[\x00-\x1F\x7F]): my_string.replaceAll("\\p{Cntrl}", "?"); ต่อไปนี้จะแทนที่อักขระที่ไม่สามารถพิมพ์ได้ของ ASCII ทั้งหมด (ชวเลขสำหรับ[\p{Graph}\x20]) รวมถึงอักขระที่เน้นเสียง: my_string.replaceAll("[^\\p{Print}]", "?"); อย่างไรก็ตามไม่สามารถใช้ได้กับสตริง Unicode ใครมีวิธีที่ดีในการลบอักขระที่ไม่สามารถพิมพ์ได้จากสตริง Unicode?
89 java  string  unicode 

4
การโทรกลับแบบจำลองและการรับค่าอาร์กิวเมนต์
ฉันไม่มีโชคเลยที่ได้รับ Mockito เพื่อจับค่าอาร์กิวเมนต์ของฟังก์ชัน! ฉันล้อเลียนดัชนีของเครื่องมือค้นหาและแทนที่จะสร้างดัชนีฉันแค่ใช้แฮช // Fake index for solr Hashmap<Integer,Document> fakeIndex; // Add a document 666 to the fakeIndex SolrIndexReader reader = Mockito.mock(SolrIndexReader.class); // Give the reader access to the fake index Mockito.when(reader.document(666)).thenReturn(document(fakeIndex(666)) ฉันไม่สามารถใช้อาร์กิวเมนต์ตามอำเภอใจได้เนื่องจากฉันกำลังทดสอบผลลัพธ์ของการสืบค้น (เช่นเอกสารที่ส่งคืน) ในทำนองเดียวกันฉันไม่ต้องการระบุค่าเฉพาะและมีบรรทัดสำหรับแต่ละเอกสาร! Mockito.when(reader.document(0)).thenReturn(document(fakeIndex(0)) Mockito.when(reader.document(1)).thenReturn(document(fakeIndex(1)) .... Mockito.when(reader.document(n)).thenReturn(document(fakeIndex(n)) ผมมองไปที่ส่วนของการเรียกกลับในการใช้ Mockitoหน้า น่าเสียดายที่มันไม่ใช่ Java และฉันไม่สามารถตีความว่ามันทำงานใน Java ได้ แก้ไข (เพื่อความชัดเจน): ฉันจะให้ …

2
แมปกับ String ใน Java
เมื่อฉันทำSystem.out.println(map)ใน Java ฉันจะได้ผลลัพธ์ที่ดีใน stdout ฉันจะรับการแสดงสตริงเดียวกันนี้ของMapตัวแปรโดยไม่เข้าไปยุ่งกับเอาต์พุตมาตรฐานได้อย่างไร บางอย่างเช่นString mapAsString = Collections.toString(map)?
89 java  map  tostring 

8
java.util.Date การแปลงรูปแบบวันที่ yyyy-mm-dd เป็น mm-dd-yyyy
ฉันมีในรูปแบบjava.util.Date yyyy-mm-ddฉันต้องการให้อยู่ในรูปแบบmm-dd-yyyy ด้านล่างนี้คือเครื่องมือตัวอย่างที่ฉันทดลองใช้สำหรับการแปลงนี้: // Setting the pattern SimpleDateFormat sm = new SimpleDateFormat("mm-dd-yyyy"); // myDate is the java.util.Date in yyyy-mm-dd format // Converting it into String using formatter String strDate = sm.format(myDate); //Converting the String back to java.util.Date Date dt = sm.parse(strDate); ผลลัพธ์ที่ฉันได้รับยังไม่อยู่ในรูปแบบ mm-dd-yyyyยังคงส่งออกฉันได้รับไม่ได้อยู่ในรูปแบบ โปรดแจ้งให้เราทราบวิธีการจัดรูปแบบjava.util.Dateจากyyyy-mm-ddเป็นmm-dd-yyyy
89 java  date  date-format 


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