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

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

26
การเปลี่ยนไม่ได้ของสตริงใน Java
ลองพิจารณาตัวอย่างต่อไปนี้ String str = new String(); str = "Hello"; System.out.println(str); //Prints Hello str = "Help!"; System.out.println(str); //Prints Help! ตอนนี้ใน Java วัตถุ String จะไม่เปลี่ยนรูป ถ้าอย่างนั้นทำไมวัตถุstrจึงสามารถกำหนดค่า "Help!" สิ่งนี้ไม่ขัดแย้งกับความไม่เปลี่ยนแปลงของสตริงใน Java ใช่ไหม ใครช่วยอธิบายแนวคิดเรื่องการเปลี่ยนไม่ได้ของฉันให้ฉันหน่อยได้ไหม แก้ไข: ตกลง. ตอนนี้ฉันได้รับแล้ว แต่มีเพียงคำถามติดตามหนึ่งข้อ เกี่ยวกับรหัสต่อไปนี้: String str = "Mississippi"; System.out.println(str); // prints Mississippi str = str.replace("i", "!"); System.out.println(str); // prints M!ss!ss!pp! …

6
ฉันจะสร้าง Java 8 LocalDate จากเวลาที่ยาวนานเป็นมิลลิวินาทีได้อย่างไร
ฉันมี API ภายนอกที่ให้วันที่ฉันเป็นlongs แสดงเป็นมิลลิวินาทีนับตั้งแต่เริ่มยุค ด้วย Java API แบบเก่าฉันก็แค่สร้างDateจากมันด้วย Date myDate = new Date(startDateLong) อะไรคือสิ่งที่เทียบเท่าใน Java 8's LocalDate/ LocalDateTimeคลาส? ฉันสนใจที่จะแปลงเวลาlongให้เป็น a LocalDateในเขตเวลาปัจจุบันของฉัน

10
แบบแผนการตั้งชื่อ Java ด้วยตัวย่อ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ชื่อที่ถูกต้องสำหรับคลาส Java ต่อไปนี้ คืออะไรDVDPlayerหรือDvdPlayer?


18
อะไรทำให้ java.lang.IncompatibleClassChangeError?
ฉันบรรจุไลบรารี Java เป็น JAR และมันกำลังขว้างหลายjava.lang.IncompatibleClassChangeErrorครั้งเมื่อฉันพยายามเรียกใช้เมธอดจากมัน ข้อผิดพลาดเหล่านี้ดูเหมือนจะสุ่ม ปัญหาประเภทใดที่ทำให้เกิดข้อผิดพลาดนี้

24
วิธีการเลียนแบบชั้นเรียนสุดท้ายด้วย mockito
ฉันมีชั้นเรียนสุดท้ายสิ่งนี้: public final class RainOnTrees{ public void startRain(){ // some code here } } ฉันใช้คลาสนี้ในคลาสอื่นเช่นนี้: public class Seasons{ RainOnTrees rain = new RainOnTrees(); public void findSeasonAndRain(){ rain.startRain(); } } และในชั้นทดสอบ JUnit ของฉันสำหรับSeasons.javaฉันต้องการเยาะเย้ยRainOnTreesชั้นเรียน ฉันจะทำสิ่งนี้กับ Mockito ได้อย่างไร
218 java  junit  mockito 


13
คลาสซ้อนแบบคงที่ใน Java ทำไม
ฉันดูโค้ด Java LinkedListและสังเกตว่ามันใช้คลาสที่ซ้อนกันแบบคงที่Entry . public class LinkedList<E> ... { ... private static class Entry<E> { ... } } อะไรคือสาเหตุของการใช้คลาสที่ซ้อนกันแบบคงที่มากกว่าคลาสภายในปกติ? เหตุผลเดียวที่ฉันคิดได้ก็คือรายการนั้นไม่มีการเข้าถึงตัวแปรอินสแตนซ์ดังนั้นจากมุมมอง OOP มันมีการห่อหุ้มที่ดีกว่า แต่ฉันคิดว่าอาจมีเหตุผลอื่น ๆ บางทีอาจจะเป็นการแสดง มันจะเป็นอะไร? บันทึก. ฉันหวังว่าฉันมีเงื่อนไขของฉันถูกต้องฉันจะได้เรียกมันว่าเป็นชั้นในแบบคงที่ แต่ฉันคิดว่านี่เป็นสิ่งที่ผิด: http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
217 java  class  static  member 

9
ฉันจะเปลี่ยน JDK เริ่มต้น IntelliJ IDEA ได้อย่างไร
ฉันใช้ IntelliJ IDEA เป็นสภาพแวดล้อมการพัฒนาของฉันและ Maven สำหรับการจัดการการพึ่งพา ฉันมักสร้างโครงสร้างของฉันโครงการ (ไดเรกทอรีปอม ฯลฯ ) Import project from external modelด้านนอกของความคิดและนำเข้าโครงการเข้ามาในความคิดโดยใช้ วิธีนี้ใช้งานได้ดียกเว้นว่าใน poms ของฉันฉันระบุว่า maven-compiler-plugin ควรใช้ JDK 1.6 และเมื่อฉันนำเข้า IDEA แจ้งให้ฉันทราบว่าLanguage Level ChangedและLanguage level changes will take effect on project reloadและจากนั้นแจ้งให้โหลดโครงการอีกครั้ง สิ่งนี้น่ารำคาญเพราะฉันใช้ JDK รุ่นเดียวกันทุกครั้ง ฉันจะเปลี่ยน JDK เริ่มต้นที่ IntelliJ IDEA ใช้ได้อย่างไรฉันจึงไม่ต้องโหลดโครงการของฉันทุกครั้งที่ฉันนำเข้าโครงการใหม่

17
พริตตี้พิมพ์ JSON ใน Java
ฉันกำลังใช้ JSON ง่าย และฉันต้องการพิมพ์ข้อมูล JSON ให้สวยขึ้น (ทำให้มนุษย์อ่านง่ายขึ้น) ฉันไม่สามารถค้นหาฟังก์ชั่นนี้ภายในห้องสมุดนั้นได้ สิ่งนี้ประสบความสำเร็จได้อย่างไร

1
การปัด BigDecimal เป็น * always * มีทศนิยมสองตำแหน่ง
ฉันพยายามปัดเศษ BigDecimal ให้เป็นทศนิยมสองตำแหน่ง ฉันกำลังใช้ BigDecimal rounded = value.round(new MathContext(2, RoundingMode.CEILING)); logger.trace("rounded {} to {}", value, rounded); แต่มันไม่ได้ทำสิ่งที่ฉันต้องการอย่างสม่ำเสมอ: rounded 0.819 to 0.82 rounded 1.092 to 1.1 rounded 1.365 to 1.4 // should be 1.37 rounded 2.730 to 2.8 // should be 2.74 rounded 0.819 to 0.82 ฉันไม่สนใจตัวเลขที่สำคัญฉันแค่ต้องการทศนิยมสองตำแหน่ง ฉันจะทำสิ่งนี้กับ BigDecimal ได้อย่างไร หรือมีคลาส …

10
วิธีการเปรียบเทียบจำนวนเต็มสองตัวใน Java อย่างถูกต้องเป็นอย่างไร
ฉันรู้ว่าถ้าคุณเปรียบเทียบจำนวนเต็มดั้งเดิมของกล่องกับค่าคงที่เช่น: Integer a = 4; if (a < 5) a จะถูกเลิกทำโดยอัตโนมัติและการเปรียบเทียบจะใช้งานได้ อย่างไรก็ตามจะเกิดอะไรขึ้นเมื่อคุณเปรียบเทียบสองกล่องIntegersและต้องการเปรียบเทียบความเท่าเทียมกันหรือน้อยกว่า / มากกว่า Integer a = 4; Integer b = 5; if (a == b) โค้ดด้านบนจะส่งผลให้มีการตรวจสอบเพื่อดูว่าพวกเขาเป็นวัตถุเดียวกันหรือไม่หรือจะกล่องอัตโนมัติในกรณีนั้น? เกี่ยวกับ: Integer a = 4; Integer b = 5; if (a < b) ?
217 java  integer  autoboxing 

10
ข้อผิดพลาด: ไม่สามารถเรียกใช้เครื่องมือ mksdcard SDK
ได้รับข้อผิดพลาดในตัวช่วยสร้างการตั้งค่าในขณะที่พยายามติดตั้ง android studio บน Ubuntu "Unable to run mksdcard SDK tool." นอกจากนี้ใน terminal ฉันได้รับ: [ 115528] ERROR - tRunWizard$SetupProgressStep$1 - Android Studio 1.1.0 Build #AI-135.1740770 [ 115531] ERROR - tRunWizard$SetupProgressStep$1 - JDK: 1.8.0_40 [ 115531] ERROR - tRunWizard$SetupProgressStep$1 - VM: Java HotSpot(TM) 64-Bit Server VM [ 115531] ERROR - tRunWizard$SetupProgressStep$1 …

11
JAX-RS / Jersey วิธีการจัดการข้อผิดพลาดที่กำหนดเอง?
ฉันกำลังเรียนรู้ JAX-RS (aka, JSR-311) โดยใช้ Jersey ฉันสร้างทรัพยากรรูทสำเร็จแล้วและกำลังเล่นกับพารามิเตอร์: @Path("/hello") public class HelloWorldResource { @GET @Produces("text/html") public String get( @QueryParam("name") String name, @QueryParam("birthDate") Date birthDate) { // Return a greeting with the name and age } } วิธีนี้ใช้งานได้ดีและจัดการรูปแบบใด ๆ ในสถานที่ปัจจุบันซึ่งเป็นที่เข้าใจกันโดยตัวสร้าง Date (String) (เช่น YYYY / mm / dd และ mm / dd …

12
ฉันจะรันโปรแกรม Java จากบรรทัดคำสั่งบน Windows ได้อย่างไร
ฉันพยายามรันโปรแกรม Java จากบรรทัดคำสั่งใน Windows นี่คือรหัสของฉัน: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class CopyFile { public static void main(String[] args) { InputStream inStream = null; OutputStream outStream = null; try { File afile = new File("input.txt"); File bfile = new File("inputCopy.txt"); inStream = new …
216 java 

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