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

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

13
ไม่มีคำสั่ง return ในคอมไพล์ที่ไม่ใช่ช่องว่าง
ฉันพบสถานการณ์ที่ไม่มีวิธีการที่เป็นโมฆะไม่มีคำสั่งการส่งคืนและรหัสยังคงรวบรวม ฉันรู้ว่างบหลังจากห่วงขณะที่ไม่สามารถเข้าถึงได้ (รหัสตาย) และจะไม่ถูกดำเนินการ แต่ทำไมคอมไพเลอร์ถึงไม่เตือนเรื่องการคืนบางอย่าง หรือทำไมภาษาถึงยอมให้เรามีวิธีที่ไม่เป็นโมฆะที่มีการวนซ้ำไม่สิ้นสุดและไม่ส่งคืนอะไรเลย? public int doNotReturnAnything() { while(true) { //do something } //no return statement } ถ้าฉันเพิ่มคำสั่ง break (แม้แต่เงื่อนไขที่มีเงื่อนไข) ใน while loop คอมไพเลอร์จะบ่นถึงข้อผิดพลาดที่น่าอับอาย: Method does not return a valueใน Eclipse และNot all code paths return a valueใน Visual Studio public int doNotReturnAnything() { while(true) { if(mustReturn) break; …
189 java  c#  oop 


9
ฉันจะใช้ลูป for-each loop กับตัวละครทุกตัวใน String ได้อย่างไร
ดังนั้นฉันต้องการย้ำสำหรับตัวละครแต่ละตัวในสตริง ดังนั้นฉันคิดว่า: for (char c : "xyz") แต่ฉันได้รับข้อผิดพลาดของคอมไพเลอร์: MyClass.java:20: foreach not applicable to expression type ฉันจะทำสิ่งนี้ได้อย่างไร
189 java  string  loops  foreach  char 


1
ฉันต้องเก็บเกลือด้วย bcrypt หรือไม่?
javadoc ของ bCryptมีรหัสนี้สำหรับวิธีการเข้ารหัสรหัสผ่าน: String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); ในการตรวจสอบว่ารหัสผ่านแบบธรรมดานั้นตรงกับรหัสผ่านที่แฮชก่อนหน้านี้หรือไม่ให้ใช้วิธีการ checkpw: if (BCrypt.checkpw(candidate_password, stored_hash)) System.out.println("It matches"); else System.out.println("It does not match"); ตัวอย่างโค้ดเหล่านี้บอกฉันว่าเกลือที่สร้างขึ้นแบบสุ่มถูกโยนทิ้งไป เป็นกรณีนี้หรือเป็นเพียงข้อมูลโค้ดที่ทำให้เข้าใจผิด?

12
เปรียบเทียบสองอ็อบเจ็กต์ใน Java ด้วยค่า Null ที่เป็นไปได้
ฉันต้องการที่จะเปรียบเทียบสองสายเพื่อความเท่าเทียมกันใน Java เมื่อหนึ่งหรือทั้งสองอาจจะเป็นดังนั้นฉันไม่สามารถเพียงแค่โทรnull .equals()วิธีที่ดีที่สุดคืออะไร? boolean compare(String str1, String str2) { ... } แก้ไข: return ((str1 == str2) || (str1 != null && str1.equals(str2)));
189 java  null  equality 

10
เกิดข้อผิดพลาดในการขยายเมื่อขยายชั้นเรียน
ฉันพยายามที่จะสร้างมุมมองที่กำหนดเองที่ขยายGhostSurfaceCameraView SurfaceViewนี่คือไฟล์คำจำกัดความของชั้นเรียน GhostSurfaceCameraView.java: public class GhostSurfaceCameraView extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder mHolder; Camera mCamera; GhostSurfaceCameraView(Context context) { super(context); // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed. mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(SurfaceHolder holder) { // The Surface …
188 java  android  xml  class  surfaceview 

8
คุณสมบัติภาษา Java 7 พร้อม Android
แค่สงสัยว่ามีใครลองใช้คุณสมบัติภาษา Java 7 ใหม่กับ Android หรือไม่ ฉันรู้ว่า Android อ่าน bytecode ที่ Java พ่นออกมาและเปลี่ยนเป็น dex ดังนั้นฉันเดาคำถามของฉันคือมันสามารถเข้าใจ bytecode ของ Java 7 ได้หรือไม่?
188 java  android  bytecode  java-7 

18
วิธีการลบองค์ประกอบ null ทั้งหมดออกจาก ArrayList หรือ String Array
ฉันลองวนซ้ำแบบนั้น // ArrayList tourists for (Tourist t : tourists) { if (t != null) { t.setId(idForm); } } แต่มันก็ไม่ดี ใครช่วยแนะนำฉันได้ดีกว่า เกณฑ์มาตรฐานที่มีประโยชน์เพื่อการตัดสินใจที่ดีกว่า: ในขณะที่ลูปสำหรับการทดสอบลูปและ Iterator

25
รับ java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory ข้อยกเว้น
ฉันกำลังรันโปรแกรมฉีดพึ่งพาของสปริงและรับข้อยกเว้นนี้ ฉันได้รวมไฟล์ common-logging1.1.1.jar และ spring.jar แล้ว คุณช่วยออกไปได้ไหม Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:119) at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:55) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56) at com.client.StoryReader.main(StoryReader.java:15) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) …

9
ฉันจำเป็นต้องปิด () ทั้ง FileReader และ BufferedReader หรือไม่
ฉันกำลังอ่านไฟล์ในเครื่องโดยใช้ BufferedReader ที่พันรอบ FileReader: BufferedReader reader = new BufferedReader(new FileReader(fileName)); // read the file // (error handling snipped) reader.close(); ฉันจำเป็นต้องได้close()รับFileReaderเช่นกันหรือเสื้อคลุมจะจัดการที่? ฉันเคยเห็นรหัสที่ผู้คนทำสิ่งนี้: FileReader fReader = new FileReader(fileName); BufferedReader bReader = new BufferedReader(fReader); // read the file // (error handling snipped) bReader.close(); fReader.close(); วิธีการนี้เรียกจาก servlet และฉันต้องการให้แน่ใจว่าฉันไม่เปิดมือจับไว้

25
วิธีการกำหนดวันในสัปดาห์โดยผ่านวันที่ที่ระบุ?
ตัวอย่างเช่นฉันมีวันที่: "23/2/2010" (23 กุมภาพันธ์ 2010) ฉันต้องการที่จะผ่านไปยังฟังก์ชั่นที่จะกลับมาเป็นวันของสัปดาห์ ฉันจะทำสิ่งนี้ได้อย่างไร ในตัวอย่างนี้ฟังก์ชั่นควรกลับString"อ." นอกจากนี้หากต้องการเพียงลำดับวันก็จะสามารถเรียกดูได้อย่างไร
188 java  date 

11
HTTP POST โดยใช้ JSON ใน Java
ฉันต้องการสร้าง HTTP POST อย่างง่ายโดยใช้ JSON ใน Java สมมติว่าเป็น URL www.site.com และใช้ในค่าที่{"name":"myname","age":"20"}ระบุว่าเป็น'details'ตัวอย่าง ฉันจะสร้างไวยากรณ์สำหรับ POST ได้อย่างไร ฉันดูเหมือนจะไม่พบวิธีการโพสต์ใน JSON Javadocs
188 java  json  http  post 

8
Java 8 - วิธีที่ดีที่สุดในการแปลงรายการ: แผนที่หรือ foreach?
ฉันมีรายการmyListToParseที่ฉันต้องการกรององค์ประกอบและใช้วิธีการในแต่ละองค์ประกอบและเพิ่มผลลัพธ์ในรายการอื่นmyFinalListที่ฉันต้องการกรององค์ประกอบและวิธีการใช้ในแต่ละองค์ประกอบและเพิ่มผลในรายการอื่น ด้วย Java 8 ฉันสังเกตเห็นว่าฉันสามารถทำได้สองวิธีที่แตกต่างกัน ฉันต้องการทราบวิธีที่มีประสิทธิภาพมากขึ้นระหว่างพวกเขาและเข้าใจว่าทำไมวิธีหนึ่งจึงดีกว่าอีกวิธีหนึ่ง ฉันเปิดรับข้อเสนอแนะเกี่ยวกับวิธีที่สาม วิธีที่ 1: myFinalList = new ArrayList<>(); myListToParse.stream() .filter(elt -> elt != null) .forEach(elt -> myFinalList.add(doSomething(elt))); วิธีที่ 2: myFinalList = myListToParse.stream() .filter(elt -> elt != null) .map(elt -> doSomething(elt)) .collect(Collectors.toList());
188 java  java-8  java-stream 

9
Java 8 lambda Void โต้แย้ง
สมมติว่าฉันมีส่วนต่อประสานการทำงานใน Java 8: interface Action<T, U> { U execute(T t); } และสำหรับบางกรณีฉันต้องการการดำเนินการโดยไม่มีข้อโต้แย้งหรือประเภทการคืนสินค้า ดังนั้นฉันจึงเขียนสิ่งนี้: Action<Void, Void> a = () -> { System.out.println("Do nothing!"); }; อย่างไรก็ตามมันทำให้ฉันรวบรวมข้อผิดพลาดฉันต้องเขียนมันเป็น Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;}; ซึ่งน่าเกลียด มีวิธีกำจัดVoidพารามิเตอร์ประเภทหรือไม่
188 java  lambda  java-8  void 

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