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

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

12
การใช้ Java 8 เป็นตัวเลือกกับ Stream :: flatMap
เฟรมเวิร์ก Java 8 ใหม่และเพื่อน ๆ สร้างขึ้นมาเพื่อโค้ดจาวาที่รัดกุม แต่ฉันได้เจอกับสถานการณ์ที่เรียบง่ายซึ่งดูเหมือนจะยุ่งยาก พิจารณาและวิธีการList<Thing> things Optional<Other> resolve(Thing thing)ผมต้องการที่จะทำแผนที่Thingเพื่อOptional<Other>s Otherและได้รับเป็นครั้งแรก วิธีแก้ปัญหาที่ชัดเจนคือการใช้things.stream().flatMap(this::resolve).findFirst()แต่flatMapต้องการให้คุณส่งกระแสข้อมูลและOptionalไม่มีstream()วิธี (หรือเป็นCollectionหรือให้วิธีการแปลงเป็นหรือดูเป็นCollection) สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือ: things.stream() .map(this::resolve) .filter(Optional::isPresent) .map(Optional::get) .findFirst(); แต่ดูเหมือนว่าจะยืดยาวไปมากสำหรับสิ่งที่ดูเหมือนว่าเป็นกรณีที่พบบ่อยมาก ใครมีความคิดที่ดีกว่า

18
ฉันจะโหลดไฟล์จากโฟลเดอร์ทรัพยากรได้อย่างไร
โครงการของฉันมีโครงสร้างดังต่อไปนี้: /src/main/java/ /src/main/resources/ /src/test/java/ /src/test/resources/ ฉันมีไฟล์อยู่/src/test/resources/test.csvและฉันต้องการโหลดไฟล์จากการทดสอบหน่วยใน/src/test/java/MyTest.java ฉันมีรหัสนี้ซึ่งใช้งานไม่ได้ มันบ่นว่า "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" BufferedReader br = new BufferedReader (new FileReader(test.csv)) ฉันก็ลองทำเช่นนี้ InputStream is = (InputStream) MyTest.class.getResourcesAsStream(test.csv)) สิ่งนี้ยังใช้งานไม่ได้ มันกลับnullมา ฉันใช้ Maven เพื่อสร้างโครงการของฉัน
240 java  file  maven 

13
วิธีการแปลง Strings ไปเป็นและจากอาร์เรย์ UTF8 ไบต์ใน Java
ใน Java ฉันมี String และฉันต้องการเข้ารหัสเป็นอาร์เรย์ไบต์ (ใน UTF8 หรือการเข้ารหัสอื่น ๆ ) อีกวิธีหนึ่งฉันมีอาร์เรย์ไบต์ (ในการเข้ารหัสที่รู้จักกันบางส่วน) และฉันต้องการแปลงเป็นสตริง Java ฉันจะแปลงเหล่านี้ได้อย่างไร

14
คุณจะค้นหาแบบ จำกัด ใน JPQL หรือ HQL ได้อย่างไร
ใน Hibernate 3 มีวิธีทำข้อ จำกัด MySQL ต่อไปนี้ใน HQL หรือไม่? select * from a_table order by a_table_column desc limit 0, 20; ฉันไม่ต้องการใช้ setMaxResults ถ้าเป็นไปได้ สิ่งนี้เป็นไปได้แน่นอนใน Hibernate / HQL รุ่นเก่า แต่ดูเหมือนว่าจะหายไป

14
วิธีที่ดีที่สุดในการแบ่งปันข้อมูลระหว่างกิจกรรมคืออะไร
ฉันมีกิจกรรมหนึ่งกิจกรรมซึ่งเป็นกิจกรรมหลักที่ใช้ทั่วทั้งแอพและมีตัวแปรจำนวนมาก ฉันมีสองกิจกรรมอื่น ๆ ที่ฉันต้องการใช้ข้อมูลจากกิจกรรมแรก ตอนนี้ฉันรู้ว่าฉันสามารถทำสิ่งนี้: GlobalState gs = (GlobalState) getApplication(); String s = gs.getTestMe(); อย่างไรก็ตามฉันต้องการแบ่งปันตัวแปรจำนวนมากและบางคนอาจค่อนข้างใหญ่ดังนั้นฉันไม่ต้องการสร้างสำเนาของพวกเขาเหมือนด้านบน มีวิธีรับและเปลี่ยนแปลงตัวแปรโดยตรงโดยไม่ต้องใช้วิธีรับและตั้งค่าหรือไม่ ฉันจำได้ว่าอ่านบทความบนเว็บไซต์ Google dev โดยบอกว่านี่ไม่เหมาะสำหรับการทำงานบน Android
239 java  android  sharing 

5
เหตุใด Java Streams จึงปิดทันที
ซึ่งแตกต่างจาก C # IEnumerableที่ไพพ์ไลน์การประมวลผลสามารถดำเนินการได้หลายครั้งตามที่เราต้องการใน Java สตรีมสามารถ 'ซ้ำ' เพียงครั้งเดียว การเรียกใช้งานเทอร์มินัลใด ๆ จะปิดสตรีมทำให้ไม่สามารถใช้งานได้ 'คุณสมบัติ' นี้ใช้พลังงานจำนวนมาก ฉันคิดว่าเหตุผลนี้ไม่ใช่เทคนิค สิ่งที่ต้องพิจารณาในการออกแบบภายใต้ข้อ จำกัด ที่แปลกประหลาดนี้คืออะไร? แก้ไข: เพื่อแสดงสิ่งที่ฉันกำลังพูดถึงให้พิจารณาการนำไปใช้งาน Quick-Sort ใน C #: IEnumerable<int> QuickSort(IEnumerable<int> ints) { if (!ints.Any()) { return Enumerable.Empty<int>(); } int pivot = ints.First(); IEnumerable<int> lt = ints.Where(i => i < pivot); IEnumerable<int> gt = ints.Where(i => …

8
System.currentTimeMillis () เทียบกับวันที่ใหม่ () กับ Calendar.getInstance (). getTime ()
ถ้าเป็นเช่นนี้คุณจะได้รับStack Overflow ที่ว่างเปล่า : คำจำกัดความ - System.currentTimeMillis () และวันที่ (). getTime ()? ใน Java ประสิทธิภาพการทำงานและทรัพยากรของการใช้คืออะไร System.currentTimeMillis() เมื่อเทียบกับ new Date() เมื่อเทียบกับ Calendar.getInstance().getTime() เท่าที่ฉันเข้าใจมันSystem.currentTimeMillis()เป็นสิ่งที่มีประสิทธิภาพมากที่สุด อย่างไรก็ตามในแอปพลิเคชั่นส่วนใหญ่ค่าที่มีความยาวนั้นจะต้องถูกแปลงเป็น Date หรือวัตถุที่คล้ายกันเพื่อทำสิ่งที่มีความหมายต่อมนุษย์

4
ที่เก็บ Android buildscript: jcenter VS mavencentral
ครั้งสุดท้ายที่ผมใช้ Android สตูดิโอก็สร้าง.gradleไฟล์ที่มีmavencentral()ที่เก็บ buildscript jcenter()ในขณะที่ตอนนี้มี ใครสามารถอธิบายปัญหาที่เกี่ยวข้องกับเรื่องนี้ มี repos อื่น ๆ บ้างไหม? เมื่อใดที่เราควรเปลี่ยน พวกเขามีผลกระทบต่อโครงการโมดูล libs อย่างไร จำเป็นสำหรับนักพัฒนา Android หรือไม่? ใครเป็นผู้รับผิดชอบในการรักษา repos เหล่านั้น?

21
ตัวรับสัญญาณออกอากาศสำหรับตรวจสอบการเชื่อมต่ออินเทอร์เน็ตในแอพ Android
ฉันกำลังพัฒนาตัวรับสัญญาณออกอากาศ android สำหรับตรวจสอบการเชื่อมต่ออินเทอร์เน็ต ปัญหาคือตัวรับสัญญาณออกอากาศของฉันถูกเรียกสองครั้ง ฉันต้องการให้เรียกเฉพาะเมื่อเครือข่ายพร้อมใช้งาน หากไม่สามารถใช้งานได้ฉันไม่ต้องการรับการแจ้งเตือน นี่คือตัวรับสัญญาณออกอากาศ public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { final ConnectivityManager connMgr = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); final android.net.NetworkInfo wifi = connMgr .getNetworkInfo(ConnectivityManager.TYPE_WIFI); final android.net.NetworkInfo mobile = connMgr .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (wifi.isAvailable() || mobile.isAvailable()) { // Do something …

30
ฉันจะย้อนกลับอาร์เรย์ int ใน Java ได้อย่างไร
Наэтотвопросестьответына กองมากเกินнарусском : КакперевернутьмассиввДжаве? ฉันพยายามที่จะย้อนกลับอาร์เรย์ int ใน Java วิธีนี้จะไม่ย้อนกลับอาร์เรย์ for(int i = 0; i < validData.length; i++) { int temp = validData[i]; validData[i] = validData[validData.length - i - 1]; validData[validData.length - i - 1] = temp; } มีอะไรผิดปกติกับมัน?
238 java  arrays  idioms  idiomatic 


7
Java generics ประเภทลบ: เมื่อใดและจะเกิดอะไรขึ้น
ฉันอ่านเกี่ยวกับการลบประเภทของ Java บนเว็บไซต์ของออราเคิล การลบประเภทเกิดขึ้นเมื่อใด ในเวลารวบรวมหรือรันไทม์? เมื่อชั้นเรียนถูกโหลด? เมื่อชั้นเรียนถูกยกตัวอย่าง? มีไซต์จำนวนมาก (รวมถึงบทแนะนำอย่างเป็นทางการที่กล่าวถึงข้างต้น) พูดว่าการลบประเภทเกิดขึ้นในเวลารวบรวม หากข้อมูลประเภทจะถูกลบออกอย่างสมบูรณ์ในเวลารวบรวมวิธีการตรวจสอบความเข้ากันได้ของประเภท JDK เมื่อวิธีการใช้ข้อมูลทั่วไปจะถูกเรียกโดยไม่มีข้อมูลประเภทหรือข้อมูลประเภทที่ไม่ถูกต้อง? ลองพิจารณาตัวอย่างต่อไปนี้: ระดับ Say มีวิธีการที่A empty(Box<? extends Number> b)เรารวบรวมและรับไฟล์ชั้นเรียนA.javaA.class public class A { public static void empty(Box<? extends Number> b) {} } public class Box<T> {} ตอนนี้เราสร้างชั้นอื่นBซึ่งเรียกวิธีการที่emptyมีข้อโต้แย้งที่ไม่แปร empty(new Box())(ชนิดดิบ): ถ้าเรารวบรวมB.javaกับA.classใน classpath ที่ javac เป็นพอสมาร์ทที่จะยกระดับการเตือน ดังนั้นจึงA.class มีข้อมูลประเภทที่เก็บอยู่ในนั้น public class …

15
จะทดสอบได้อย่างไรว่าไม่มีข้อยกเว้นเกิดขึ้น?
ฉันรู้ว่าวิธีหนึ่งที่จะทำได้: @Test public void foo(){ try{ //execute code that you expect not to throw Exceptions. } catch(Exception e){ fail("Should not have thrown any exception"); } } มีวิธีใดที่สะอาดกว่าในการทำสิ่งนี้ (อาจใช้ Junit @Ruleหรือไม่?)

4
ประเภทใดที่สามารถใช้สำหรับสมาชิกคำอธิบายประกอบ Java?
วันนี้ฉันต้องการที่จะสร้างอินเตอร์เฟซคำอธิบายประกอบแรกของฉันตามเอกสารนี้และฉันได้รับข้อผิดพลาดของคอมไพเลอร์นี้ Invalid type for annotation member": public @interface MyAnnotation { Object myParameter; ^^^^^^ } แน่นอนObjectไม่สามารถใช้เป็นประเภทของสมาชิกคำอธิบายประกอบ น่าเสียดายที่ฉันไม่พบข้อมูลใด ๆ ที่สามารถใช้งานทั่วไปได้ ฉันพบสิ่งนี้โดยใช้การทดลองและข้อผิดพลาด: String →ถูกต้อง int →ถูกต้อง Integer →ไม่ถูกต้อง (น่าแปลกใจ) String[] →ใช้ได้ (น่าแปลกใจ) Object →ไม่ถูกต้อง บางทีใครบางคนสามารถหลั่งน้ำตาแสงที่อนุญาตประเภทจริงและทำไม
238 java  annotations 

6
การเติม Spring @Value ระหว่างการทดสอบหน่วย
ฉันกำลังพยายามเขียนการทดสอบหน่วยสำหรับถั่วง่ายๆที่ใช้ในโปรแกรมของฉันเพื่อตรวจสอบแบบฟอร์ม bean มีคำอธิบายประกอบด้วย@Componentและมีตัวแปรคลาสที่ถูกเตรียมข้อมูลเบื้องต้นโดยใช้ @Value("${this.property.value}") private String thisProperty; ฉันต้องการเขียนการทดสอบหน่วยสำหรับวิธีการตรวจสอบภายในคลาสนี้อย่างไรก็ตามถ้าเป็นไปได้ฉันต้องการจะทำโดยไม่ต้องใช้ไฟล์คุณสมบัติ เหตุผลของฉันที่อยู่เบื้องหลังคือถ้าค่าที่ฉันดึงจากการเปลี่ยนแปลงไฟล์คุณสมบัติฉันต้องการที่จะไม่ส่งผลกระทบต่อกรณีทดสอบของฉัน กรณีทดสอบของฉันกำลังทดสอบรหัสที่ตรวจสอบความถูกต้องของค่าไม่ใช่ตัวของตัวเอง มีวิธีใช้รหัส Java ในคลาสทดสอบของฉันเพื่อเริ่มต้นคลาส Java และเติมคุณสมบัติ Spring @Value ภายในคลาสนั้นแล้วใช้เพื่อทดสอบด้วยหรือไม่ ฉันพบวิธีการที่ดูเหมือนว่าจะปิด แต่ยังคงใช้ไฟล์คุณสมบัติ ฉันต้องการทั้งหมดเป็นรหัส Java

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