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

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

3
_ (ขีดล่าง) เป็นคำหลักที่สงวนไว้
ฉันเพิ่งแทนที่sนิพจน์แลมบ์ดาต่อไปนี้โดย_: s -> Integer.parseInt(s) คอมไพเลอร์ Eclipse พูดว่า: ไม่ควรใช้ '_' เป็นตัวระบุเนื่องจากเป็นคำหลักที่สงวนไว้ตั้งแต่ระดับแหล่งที่มา 1.8 ฉันไม่พบคำอธิบายใด ๆ ในโครงสร้างศัพท์ / คำหลักJLS §3.9
94 java  lambda  java-8 

5
ไฟล์ Spring .properties: รับองค์ประกอบเป็น Array
ฉันกำลังโหลดคุณสมบัติคุณสมบัติจาก.propertiesไฟล์โดยใช้ Spring ดังนี้: file: elements.properties base.module.elementToSearch=1 base.module.elementToSearch=2 base.module.elementToSearch=3 base.module.elementToSearch=4 base.module.elementToSearch=5 base.module.elementToSearch=6 ไฟล์ xml spring file: myapplication.xml <bean id="some" class="com.some.Class"> <property name="property" value="#{base.module.elementToSearch}" /> </bean> และ Class.java ของฉัน file: Class.java public void setProperty(final List<Integer> elements){ this.elements = elements; } แต่เมื่อทำการดีบักองค์ประกอบพารามิเตอร์จะรับเฉพาะองค์ประกอบสุดท้ายในรายการดังนั้นจึงมีรายการขององค์ประกอบหนึ่งที่มีค่า "6" แทนที่จะเป็นรายการที่มี 6 องค์ประกอบ ฉันลองใช้วิธีอื่นเช่นการเพิ่มค่าเท่านั้น#{base.module}แต่ไม่พบพารามิเตอร์ในไฟล์คุณสมบัติ วิธีแก้ปัญหาคือต้องมีในไฟล์ elements.properties รายการที่คั่นด้วยเครื่องหมายจุลภาคเช่น: base.module.elementToSearch=1,2,3,4,5,6 และใช้เป็น String …

21
Hibernate Error: มีการเชื่อมโยงวัตถุอื่นที่มีค่าตัวระบุเดียวกันกับเซสชันแล้ว
ฉันมีวัตถุบางอย่างในการกำหนดค่านี้เป็นหลัก (แบบจำลองข้อมูลจริงซับซ้อนกว่าเล็กน้อย): A มีความสัมพันธ์แบบกลุ่มต่อกลุ่มกับ B (B มีinverse="true") B มีความสัมพันธ์แบบกลุ่มต่อหนึ่งกับ C (ฉันcascadeตั้งค่าเป็น"save-update") C คือตารางประเภท / หมวดหมู่ นอกจากนี้ฉันควรพูดถึงว่าคีย์หลักถูกสร้างขึ้นโดยฐานข้อมูลเมื่อบันทึก กับข้อมูลของฉันบางครั้งฉันพบปัญหาที่ A มีชุดของวัตถุ B ที่แตกต่างกันและวัตถุ B เหล่านี้อ้างถึงวัตถุ C เดียวกัน เมื่อฉันโทรหาsession.saveOrUpdate(myAObject)ฉันได้รับข้อผิดพลาดในการจำศีลโดยแจ้งว่า: "a different object with the same identifier value was already associated with the session: C". ฉันรู้ว่าไฮเบอร์เนตไม่สามารถแทรก / อัปเดต / ลบอ็อบเจ็กต์เดียวกันสองครั้งในเซสชันเดียวกัน แต่มีวิธีแก้ไขบ้างไหม ดูเหมือนจะไม่ใช่เรื่องแปลกของสถานการณ์ ในระหว่างการค้นคว้าปัญหานี้ฉันได้เห็นผู้คนแนะนำให้ใช้session.merge()แต่เมื่อฉันทำเช่นนั้นวัตถุที่ "ขัดแย้ง" …
94 java  hibernate 

12
“ เกิดข้อผิดพลาดระหว่างการเริ่มต้น VM; ไม่สามารถจองพื้นที่เพียงพอสำหรับฮีปวัตถุ” โดยใช้ -Xmx3G
ก่อนอื่นฉันมีกล่องที่มีแรม 8GB ดังนั้นฉันสงสัยว่าหน่วยความจำทั้งหมดเป็นปัญหา แอปพลิเคชั่นนี้ทำงานได้ดีบนเครื่องที่มี 6GB หรือน้อยกว่า ฉันพยายามจองพื้นที่ 3GB โดยใช้ -Xmx3G ภายใต้ "VM Arguments" ใน Run Configurations in Eclipse ทุกครั้งที่ฉันพยายามจองมากกว่า 1500mb ฉันได้รับข้อผิดพลาดนี้:“ เกิดข้อผิดพลาดระหว่างการเริ่มต้น VM; ไม่สามารถจองพื้นที่เพียงพอสำหรับฮีปวัตถุ” โดยใช้ -Xmx3G เกิดขึ้นที่นี่คืออะไร?

9
ไฟล์อัปโหลด Amazon S3 และรับ URL
เป็นไปได้ไหมที่จะอัปโหลดไฟล์ txt / pdf / png ไปยัง Amazon S3 ในครั้งเดียวและรับ URL ของไฟล์ที่อัปโหลดเป็นการตอบกลับ ถ้าเป็นเช่นนั้น AWS Java SDK คือไลบรารีที่เหมาะสมที่ฉันต้องเพิ่มในเว็บแอปพลิเคชัน java struts2 ของฉัน โปรดแนะนำวิธีแก้ปัญหานี้ให้ฉัน


11
โปรไฟล์เริ่มต้น Spring-boot สำหรับการทดสอบการรวม
Spring-boot ใช้โปรไฟล์ Spring ( http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html ) ซึ่งอนุญาตให้อินสแตนซ์มีการกำหนดค่าแยกกันสำหรับสภาพแวดล้อมที่แตกต่างกัน วิธีหนึ่งที่ฉันใช้คุณสมบัตินี้คือกำหนดค่าฐานข้อมูลทดสอบที่จะใช้โดยการทดสอบการรวม ฉันสงสัยว่าจำเป็นต้องสร้าง 'การทดสอบ' โปรไฟล์ของตัวเองและเปิดใช้งานโปรไฟล์นี้อย่างชัดเจนในแต่ละไฟล์ทดสอบหรือไม่? ตอนนี้ฉันทำด้วยวิธีต่อไปนี้: สร้าง application-test.properties ภายใน src / main / resources เขียน config เฉพาะการทดสอบที่นั่น (ตอนนี้ชื่อฐานข้อมูล) ในทุกไฟล์ทดสอบประกอบด้วย: @ActiveProfiles("test") มีวิธีที่ชาญฉลาด / รัดกุมกว่านี้ไหม? ตัวอย่างเช่นโปรไฟล์การทดสอบเริ่มต้น? แก้ไข 1: คำถามนี้เกี่ยวข้องกับ Spring-Boot 1.4.1

14
rxjava: ฉันสามารถใช้ retry () แต่มีความล่าช้าได้หรือไม่?
ฉันใช้ rxjava ในแอพ Android เพื่อจัดการคำขอเครือข่ายแบบอะซิงโครนัส ตอนนี้ฉันต้องการลองอีกครั้งคำขอเครือข่ายที่ล้มเหลวหลังจากผ่านไประยะหนึ่งแล้วเท่านั้น มีวิธีใดบ้างในการใช้ retry () บน Observable แต่จะลองอีกครั้งหลังจากเกิดความล่าช้าบางอย่างเท่านั้น มีวิธีใดที่จะแจ้งให้ผู้สังเกตการณ์ทราบว่ากำลังถูกลองใหม่ (ซึ่งตรงข้ามกับการทดลองในครั้งแรก) หรือไม่? ฉันได้ดู debounce () / throttleWithTimeout () แต่ดูเหมือนว่าพวกเขาจะทำอะไรบางอย่างที่แตกต่างออกไป แก้ไข: ฉันคิดว่าฉันพบวิธีหนึ่งที่จะทำได้ แต่ฉันสนใจที่จะยืนยันว่านี่เป็นวิธีที่ถูกต้องในการทำหรือวิธีอื่นที่ดีกว่า สิ่งที่ฉันกำลังทำอยู่นี้: ในวิธี call () ของ Observable OnSubscribe ของฉันก่อนที่ฉันจะเรียกใช้เมธอด Subscribers onError () ฉันเพียงแค่ปล่อยให้เธรดเข้าสู่โหมดสลีปตามระยะเวลาที่ต้องการ ดังนั้นในการลองใหม่ทุกๆ 1,000 มิลลิวินาทีฉันจะทำสิ่งนี้: @Override public void call(Subscriber<? super List<ProductNode>> subscriber) { try { …
94 java  rx-java 

3
จะสร้าง JSON Object โดยใช้ String ได้อย่างไร?
ฉันต้องการสร้าง JSON Object โดยใช้ String ตัวอย่าง: JSON {"test1":"value1","test2":{"id":0,"name":"testName"}} ในการสร้าง JSON ข้างต้นฉันใช้สิ่งนี้ String message; JSONObject json = new JSONObject(); json.put("test1", "value1"); JSONObject jsonObj = new JSONObject(); jsonObj.put("id", 0); jsonObj.put("name", "testName"); json.put("test2", jsonObj); message = json.toString(); System.out.println(message); ฉันต้องการทราบว่าฉันจะสร้าง JSON ที่มี JSON Array อยู่ในนั้นได้อย่างไร ด้านล่างนี้คือตัวอย่าง JSON { "name": "student", "stu": { "id": 0, …
94 java  android  json 

10
กำลังส่ง 'this' ในวิธีการเรียกการปฏิบัติที่ยอมรับใน java
วิธีปฏิบัติที่ดี / ไม่ดี / ยอมรับได้หรือไม่ในการส่งผ่านวัตถุปัจจุบันในการเรียกใช้เมธอด ใน: public class Bar{ public Bar(){} public void foo(Baz baz){ // modify some values of baz } } public class Baz{ //constructor omitted public void method(){ Bar bar = new Bar(); bar.foo(this); } } โดยเฉพาะสายนี้เป็นที่bar.foo(this)ยอมรับหรือไม่?
94 java 

10
Jackson เปลี่ยนชื่อฟิลด์บูลีนดั้งเดิมโดยการลบ 'is'
สิ่งนี้อาจซ้ำกัน แต่ฉันไม่สามารถหาวิธีแก้ไขปัญหาของฉันได้ ฉันมีชั้นเรียน public class MyResponse implements Serializable { private boolean isSuccess; public boolean isSuccess() { return isSuccess; } public void setSuccess(boolean isSuccess) { this.isSuccess = isSuccess; } } Getters และ setters ถูกสร้างขึ้นโดย Eclipse ในคลาสอื่นฉันตั้งค่าเป็นจริงและเขียนเป็นสตริง JSON System.out.println(new ObjectMapper().writeValueAsString(myResponse)); ใน JSON คีย์จะมาเป็น{"success": true}ไฟล์. ฉันต้องการกุญแจเหมือนisSuccessตัวมันเอง แจ็คสันใช้วิธีเซ็ตเตอร์ในขณะที่อนุกรมหรือไม่ จะทำให้คีย์เป็นชื่อฟิลด์เองได้อย่างไร?
94 java  json  jackson 

16
Android Studio ไม่สามารถเริ่มต้นคลาส org.codehaus.groovy.runtime.InvokerHelper
ฉันใหม่ใน Android Studio หลังจากการตั้งค่าเมื่อฉันพยายามนำเข้าแอปพลิเคชันฉันได้รับข้อผิดพลาดนั้นทำให้ไม่สามารถสร้าง gradle ได้ ข้อผิดพลาด: ไม่สามารถเริ่มต้นคลาส org.codehaus.groovy.runtime.InvokerHelper ฉันตรวจสอบว่าการตั้งค่า classpath ของฉันสำหรับ Java นั้นใช้ได้ ฉันใช้ Windows OS ไม่มีใครรู้ที่มาของข้อผิดพลาด?

11
ProcessBuilder: การส่งต่อ stdout และ stderr ของกระบวนการที่เริ่มต้นโดยไม่บล็อกเธรดหลัก
ฉันกำลังสร้างกระบวนการใน Java โดยใช้ ProcessBuilder ดังนี้: ProcessBuilder pb = new ProcessBuilder() .command("somecommand", "arg1", "arg2") .redirectErrorStream(true); Process p = pb.start(); InputStream stdOut = p.getInputStream(); ตอนนี้ปัญหาของฉันมีดังต่อไปนี้: ฉันต้องการจับภาพสิ่งที่กำลังดำเนินการผ่าน stdout และ / หรือ stderr ของกระบวนการนั้นและเปลี่ยนเส้นทางเป็นSystem.outแบบอะซิงโครนัส ฉันต้องการให้กระบวนการและการเปลี่ยนเส้นทางเอาต์พุตทำงานในพื้นหลัง จนถึงตอนนี้วิธีเดียวที่ฉันพบคือการสร้างเธรดใหม่ด้วยตนเองซึ่งจะอ่านอย่างต่อเนื่องจากstdOutนั้นเรียกwrite()วิธีการที่เหมาะสมของSystem.out. new Thread(new Runnable(){ public void run(){ byte[] buffer = new byte[8192]; int len = -1; while((len = stdOut.read(buffer)) …

6
Java เทียบเท่ากับ Explode และ Implode (PHP) [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันเป็นคนใหม่ใน Java แม้ว่าจะมีประสบการณ์ที่ดีใน PHP และกำลังมองหาการแทนที่ที่สมบูรณ์แบบสำหรับฟังก์ชันระเบิดและการระเบิด (มีใน PHP) ใน Java ฉันใช้ Google แบบเดียวกัน แต่ไม่พอใจกับผลลัพธ์ ใครมีทางออกที่ดีสำหรับปัญหาของฉันจะได้รับการชื่นชม ตัวอย่างเช่น: String s = "x,y,z"; //Here I need a function to divide the string into an array based on a character. array a = javaExplode(',', s); …
94 java  arrays  string  split 

8
Java socket API: จะทราบได้อย่างไรว่าการเชื่อมต่อถูกปิดแล้ว?
ฉันพบปัญหาบางอย่างกับ Java socket API ฉันกำลังพยายามแสดงจำนวนผู้เล่นที่เชื่อมต่อกับเกมของฉันอยู่ ง่ายต่อการตรวจสอบว่าผู้เล่นเชื่อมต่อเมื่อใด อย่างไรก็ตามดูเหมือนว่าจะยากโดยไม่จำเป็นที่จะระบุว่าเมื่อใดที่ผู้เล่นตัดการเชื่อมต่อโดยใช้ socket API การเรียกisConnected()ซ็อกเก็ตที่ถูกตัดการเชื่อมต่อจากระยะไกลดูเหมือนจะกลับมาtrueเสมอ ในทำนองเดียวกันเรียกบนซ็อกเก็ตที่ได้รับการปิดระยะไกลเสมอดูเหมือนว่าจะกลับมาisClosed() falseฉันได้อ่านแล้วเพื่อตรวจสอบว่าซ็อกเก็ตถูกปิดจริงหรือไม่ข้อมูลจะต้องถูกเขียนไปยังสตรีมเอาต์พุตและต้องมีข้อยกเว้น นี่ดูเหมือนเป็นวิธีที่ไม่สะอาดจริงๆในการจัดการกับสถานการณ์นี้ เราจะต้องส่งสแปมข้อความขยะผ่านเครือข่ายอย่างต่อเนื่องเพื่อที่จะได้รู้ว่าเมื่อซ็อกเก็ตปิดไปแล้ว มีทางออกอื่นอีกไหม?

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