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

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

15
สตรีม Java 8 พร้อมการประมวลผลแบทช์
ฉันมีไฟล์ขนาดใหญ่ที่มีรายการ ฉันต้องการสร้างชุดรายการสร้างคำขอ HTTP ด้วยชุดนี้ (รายการทั้งหมดจำเป็นต้องใช้เป็นพารามิเตอร์ในคำขอ HTTP) ฉันสามารถทำได้อย่างง่ายดายด้วยการforวนซ้ำ แต่ในฐานะคนรัก Java 8 ฉันต้องการลองเขียนสิ่งนี้ด้วย Stream framework ของ Java 8 (และเก็บเกี่ยวผลประโยชน์จากการประมวลผลแบบขี้เกียจ) ตัวอย่าง: List<String> batch = new ArrayList<>(BATCH_SIZE); for (int i = 0; i < data.size(); i++) { batch.add(data.get(i)); if (batch.size() == BATCH_SIZE) process(batch); } if (batch.size() > 0) process(batch); ฉันต้องการทำบางสิ่งบางอย่างที่เป็นแนวยาว lazyFileStream.group(500).map(processBatch).collect(toList()) วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?

10
Maven: จะรวมไหซึ่งไม่มีในตัวแทนเข้าในโครงการ J2EE ได้อย่างไร
ในโครงการ J2EE ของฉันฉันมีการอ้างอิงสองสามรายการซึ่งไม่มีอยู่ในที่เก็บ Maven ใด ๆ เนื่องจากเป็นไลบรารีที่เป็นกรรมสิทธิ์ ไลบรารีเหล่านี้จำเป็นต้องพร้อมใช้งานที่รันไทม์ดังนั้นจึงต้องคัดลอกไปยังเป้าหมาย /.../ WEB-INF / lib ... ตอนนี้ฉันแสดงรายการเป็นการพึ่งพาระบบใน POM ของฉัน แต่ด้วยวิธีนี้ปัญหาคือจะไม่ถูกคัดลอกไปยังบิลด์เป้าหมายระหว่างการคอมไพล์ นอกจากนี้วิธีนี้ยังไม่สง่างามมาก วิธีใดที่ดีที่สุดในการรวมเข้ากับ Maven หมายเหตุ: ฉันไม่ต้องการสร้างที่เก็บ Maven ของตัวเอง

30
Android java.lang.VerifyError?
ในแอป Android ของฉันฉันมักจะได้รับ VerifyErrors! และฉันคิดไม่ออกว่าทำไม เมื่อใดก็ตามที่ฉันรวม JAR ภายนอกฉันมักจะได้รับ VerifyErrors เมื่อฉันพยายามเปิดแอป (ยกเว้นครั้งเดียวเมื่อฉันรวม Apache Log4j) ฉันมักจะได้รับรอบนี้โดยการใช้แหล่งที่มาของห้องสมุดและเพิ่มลงในโครงการของฉัน แต่ฉันพยายามที่จะนำห้องสมุดลูกค้า GData ฉันสามารถรับสิ่งนี้ได้จากแหล่งที่มา แต่เป็นการอ้างอิง (mail.jar, activation.jar, servlet-api.jar) ฉันทำไม่ได้ดังนั้นฉันจึงได้รับการตรวจสอบข้อผิดพลาด ฉันอยากจะไปที่ต้นตอของปัญหานี้สักครั้งและสำหรับทุกคน ฉันดูในอินเทอร์เน็ต แต่ดูเหมือนว่าพวกเขาทั้งหมดจะพูดถึงไฟล์คลาสที่ไม่สมบูรณ์? ซึ่งฉันไม่รู้จัก

6
รายการอ่านอย่างเดียวหรือรายการที่ไม่สามารถแก้ไขได้ใน. NET 4.0
จากสิ่งที่ฉันสามารถบอกได้ว่า. NET 4.0 ยังขาดรายการแบบอ่านอย่างเดียว เหตุใดเฟรมเวิร์กจึงยังขาดฟังก์ชันนี้ นี่เป็นฟังก์ชันที่ใช้กันทั่วไปสำหรับการออกแบบที่ขับเคลื่อนด้วยโดเมนไม่ใช่หรือ ข้อดีอย่างหนึ่งที่ Java มีเหนือ C # คือในรูปแบบของเมธอดCollections.unmodifiablelist (list)ซึ่งดูเหมือนว่าจะค้างชำระเป็นเวลานานใน IList <T> หรือ List <T> การใช้IEnumerable<T>เป็นวิธีแก้ปัญหาที่ง่ายที่สุด - ToListสามารถใช้และส่งคืนสำเนาได้

7
โปรไฟล์เริ่มต้นใน Spring 3.1
ในใบสมัครของฉันฉันมีถั่วที่มีคำอธิบายประกอบ@Profile("prod")และ@Profile("demo"). อันแรกอย่างที่คุณเดาได้ :) ใช้กับถั่วที่เชื่อมต่อกับฐานข้อมูลการผลิตและอันที่สองใส่คำอธิบายประกอบถั่วที่ใช้ DB ปลอม ( HashMapหรืออะไรก็ได้) เพื่อให้การพัฒนาเร็วขึ้น สิ่งที่ฉันต้องการคือโปรไฟล์เริ่มต้น ( "prod") ที่จะใช้เสมอหากไม่ถูกแทนที่ด้วย " อย่างอื่น " สมบูรณ์แบบจะมีในweb.xml: <context-param> <param-name>spring.profiles.active</param-name> <param-value>prod</param-value> </context-param> แล้วลบล้างสิ่งนี้ด้วย-Dspring.profiles.active="demo"เพื่อที่ฉันจะได้: mvn jetty:run -Dspring.profiles.active="demo". แต่น่าเศร้าที่มันไม่ทำงาน มีความคิดอย่างไรที่ฉันจะทำได้ การตั้งค่า-Dspring.profiles.active="prod"ในสภาพแวดล้อมทั้งหมดของฉันไม่ใช่ตัวเลือก
100 java  spring  profiles 

2
Eclipse: ไม่รวมแพ็กเกจเฉพาะเมื่อเติมชื่อคลาสโดยอัตโนมัติ
เมื่อกรอกชื่อคลาสใน Eclipse โดยอัตโนมัติเช่นถ้าคุณพิมพ์: ListITab เมนูป๊อปอัปจะปรากฏขึ้นเพื่อให้คุณจับคู่ชื่อชั้นเรียนให้เสร็จสมบูรณ์ (ซึ่งคุณสามารถเลือกด้วยเมาส์หรือใช้ปุ่มลูกศร: ในตัวอย่างนี้ฉันเกือบจะต้องการjava.util.ListIteratorและแทบไม่ต้องการcom.sun.xml.internal.bind.v2.runtime.reflect.ListIterator(หรือสิ่งอื่นใดจากแพ็คเกจนั้นเลย) คลาสนี้จะปรากฏในรายการบ่อยๆ (ทุกครั้งที่ฉันประกาศกListIterator) ฉันต้องการที่จะแยกแพ็กเกจออกจากการค้นหาการเติมข้อความอัตโนมัติซึ่งjava.util.ListIteratorจะทำให้เสร็จสมบูรณ์โดยอัตโนมัติโดยไม่ต้องใช้เมนูป๊อปอัป เป็นไปได้หรือไม่

10
ลบรายการออกจาก ArrayList
ฉันArrayListคิดว่าlistมันมี 8 รายการ AH และตอนนี้ฉันต้องการลบตำแหน่ง 1,3,5 รายการที่เก็บไว้ในอาร์เรย์ int จากlistวิธีที่ฉันจะทำได้ ฉันกำลังพยายามทำสิ่งนี้ด้วย ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); list.add("E"); list.add("F"); list.add("G"); list.add("H"); int i[] = {1,3,5}; for (int j = 0; j < i.length; j++) { list.remove(i[j]); } แต่หลังจากรายการแรกที่ลบตำแหน่งของอาร์เรย์จะเปลี่ยนไปและในการทำซ้ำครั้งถัดไปจะลบองค์ประกอบที่ไม่ถูกต้องหรือให้ข้อยกเว้น
100 java  arraylist 

5
เหตุใดจึงสามารถกู้คืนจาก StackOverflowError ได้
ฉันประหลาดใจที่เป็นไปได้ที่จะดำเนินการต่อแม้ว่าStackOverflowErrorจะเกิดขึ้นใน Java แล้วก็ตาม ฉันรู้ว่าStackOverflowErrorเป็นคลาสย่อยของคลาส Error ข้อผิดพลาดของคลาสถูกแยกออกเป็น "คลาสย่อยของ Throwable ที่บ่งชี้ถึงปัญหาร้ายแรงที่แอปพลิเคชันที่สมเหตุสมผลไม่ควรพยายามจับ" สิ่งนี้ฟังดูเหมือนคำแนะนำมากกว่ากฎโดยระบุว่าการจับข้อผิดพลาดเช่น StackOverflowError นั้นได้รับอนุญาตในความเป็นจริงและขึ้นอยู่กับเหตุผลของโปรแกรมเมอร์ที่จะไม่ทำเช่นนั้น และดูฉันทดสอบรหัสนี้และมันจะสิ้นสุดตามปกติ public class Test { public static void main(String[] args) { try { foo(); } catch (StackOverflowError e) { bar(); } System.out.println("normal termination"); } private static void foo() { System.out.println("foo"); foo(); } private static void bar() { System.out.println("bar"); …

1
Android: ระบุภาพสองภาพที่แตกต่างกันสำหรับปุ่มสลับโดยใช้ XML
ฉันกำลังพยายามลบล้างToggleButtonรูปลักษณ์เริ่มต้น นี่คือ XML ที่กำหนดToggleButton: <ToggleButton android:id="@+id/FollowAndCenterButton" android:layout_width="30px" android:layout_height="30px" android:textOn="" android:textOff="" android:layout_alignParentLeft="true" android:layout_marginLeft="5px" android:layout_marginTop="5px" android:background="@drawable/locate_me"/> ตอนนี้เรามีไอคอน 30 x 30 สองไอคอนที่เราต้องการใช้สำหรับสถานะที่คลิก / ไม่คลิก ตอนนี้เรามีรหัสที่เปลี่ยนไอคอนพื้นหลังโดยทางโปรแกรมขึ้นอยู่กับสถานะ: centeredOnLocation.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (centeredOnLocation.isChecked()) { centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me_on)); } else { centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me)); } } }); เห็นได้ชัดว่าฉันกำลังมองหาวิธีที่ดีกว่านี้ในการทำเช่นนี้ ฉันพยายามสร้างตัวเลือกสำหรับภาพพื้นหลังซึ่งจะสลับระหว่างสถานะโดยอัตโนมัติ: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/locate_me" /> <!-- default …

6
Google Guice กับ PicoContainer สำหรับ Dependency Injection
ทีมของฉันกำลังค้นคว้าเกี่ยวกับกรอบการพึ่งพาการฉีดขึ้นรูปและกำลังพยายามตัดสินใจระหว่างการใช้ Google-Guice และ PicoContainer เรากำลังมองหาหลายสิ่งในกรอบของเรา: รอยเท้ารหัสขนาดเล็ก - สิ่งที่ฉันหมายถึงรอยเท้ารหัสขนาดเล็กคือเราไม่ต้องการให้มีการฉีดรหัสการพึ่งพาทุกที่ในฐานรหัสของเรา หากเราจำเป็นต้องปรับโครงสร้างใหม่บนท้องถนนเราต้องการให้ง่ายที่สุด ประสิทธิภาพ - แต่ละเฟรมเวิร์กมีค่าใช้จ่ายเท่าใดเมื่อสร้างและฉีดวัตถุ? ใช้งานง่าย - มีเส้นการเรียนรู้ขนาดใหญ่หรือไม่? เราต้องเขียนโค้ดเพื่อให้ทำงานง่าย ๆ หรือไม่? เราต้องการให้มีการกำหนดค่าน้อยที่สุด ขนาดชุมชน - ชุมชนที่ใหญ่ขึ้นมักจะหมายความว่าโครงการจะยังคงได้รับการดูแลต่อไป เราไม่ต้องการใช้เฟรมเวิร์กและต้องแก้ไขข้อบกพร่องของเราเอง) นอกจากนี้คำถามใด ๆ ที่เรามีระหว่างทางก็สามารถ (หวังว่า) จะได้รับคำตอบจากชุมชนผู้พัฒนา / ผู้ใช้ของเฟรมเวิร์ก การเปรียบเทียบสองกรอบกับเกณฑ์ที่ระบุไว้จะได้รับการชื่นชมอย่างมาก ประสบการณ์ส่วนตัวใด ๆ ที่ช่วยเปรียบเทียบทั้งสองอย่างก็จะเป็นประโยชน์อย่างยิ่ง ข้อจำกัดความรับผิดชอบ: ฉันค่อนข้างใหม่สำหรับการฉีดพึ่งพาดังนั้นขอโทษที่ไม่มีใครรู้ว่าฉันถามคำถามที่ไม่ตรงกับการสนทนานี้

5
`someObject.new` ทำอะไรใน Java?
ใน Java ฉันเพิ่งพบว่ารหัสต่อไปนี้ถูกกฎหมาย: KnockKnockServer newServer = new KnockKnockServer(); KnockKnockServer.receiver receive = newServer.new receiver(clientSocket); FYI ผู้รับเป็นเพียงคลาสผู้ช่วยที่มีลายเซ็นดังต่อไปนี้: public class receiver extends Thread { /* code_inside */ } ฉันไม่เคยเห็นXYZ.newสัญกรณ์มาก่อน ทำงานอย่างไร? มีวิธีใดในการเขียนโค้ดที่ตรงตามอัตภาพมากกว่านี้หรือไม่?
100 java 

15
โยนข้อยกเว้นในบล็อกสุดท้าย
มีวิธีที่สวยงามในการจัดการข้อยกเว้นที่เกิดขึ้นในfinallyบล็อกหรือไม่? ตัวอย่างเช่น: try { // Use the resource. } catch( Exception ex ) { // Problem with the resource. } finally { try{ resource.close(); } catch( Exception ex ) { // Could not close the resource? } } คุณจะหลีกเลี่ยงtry/ catchในfinallyบล็อกได้อย่างไร?

2
วิธีวิเคราะห์การถ่ายโอนข้อมูลเธรด java
ฉันพยายามทำความเข้าใจเพิ่มเติมเกี่ยวกับ java โดยเฉพาะเกี่ยวกับการจัดการหน่วยความจำและเธรด ด้วยเหตุนี้ฉันเพิ่งพบความสนใจในการดูที่ทิ้งเธรด นี่คือไม่กี่บรรทัดที่นำมาจากเว็บแอปโดยใช้ VisualVM ซึ่งเป็นเครื่องมือในตัวสำหรับ java: "Finalizer" daemon prio=8 tid=0x02b3d000 nid=0x898 in Object.wait() [0x02d0f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x27ef0288> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x27ef0288> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) Locked ownable synchronizers: - None "Reference Handler" daemon prio=10 …

7
ฉันจะแสดงจุดไข่ปลาบน TextView ของฉันได้อย่างไรหากมีค่ามากกว่า 1 บรรทัด
ฉันมีเค้าโครงต่อไปนี้ซึ่งใช้งานไม่ได้: <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:id="@+id/experienceLayout" android:background="#ffffff" android:layout_height="match_parent" android:paddingLeft="6dp" android:paddingRight="6dp" android:paddingBottom="6dp" android:paddingTop="6dp"> <TextView android:layout_weight="1" android:id="@+id/experienceLabel" android:text="Experience" android:layout_height="wrap_content" android:textColor="#000000" android:layout_width="wrap_content" android:textStyle="bold"> </TextView> <TextView android:id="@+id/experienceTextView" android:text="TextView" android:layout_height="wrap_content" android:textColor="#000000" android:layout_width="wrap_content" android:ellipsize="end" android:lines="1" android:maxLines="1" android:singleLine="true" android:fadeScrollbars="false"> </TextView> </LinearLayout>

11
ทำไม "ไม่พบโครงการที่จะนำเข้า"
ฉันกำลังพยายาม "นำเข้าโครงการที่มีอยู่ไปยังพื้นที่ทำงาน" ในฐานะ "ไดเรกทอรีราก" ฉันเลือกไดเร็กทอรีที่มีไฟล์. java (และ. class) ทั้งหมดของฉัน Eclipse เขียนว่า "ไม่พบโครงการที่จะนำเข้า" ทำไม?
100 java  eclipse  import  project 

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