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

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

7
ฉันจะตั้งค่าโลแคลเริ่มต้นใน JVM ได้อย่างไร?
ฉันต้องการที่จะตั้งค่าเริ่มต้นLocaleสำหรับ JVM fr_CAของฉันไป ตัวเลือกที่เป็นไปได้ในการทำเช่นนี้คืออะไร? ฉันรู้ทางเลือกเดียวเท่านั้น Locale.setDefault()

12
IntelliJ IDEA 13 ใช้ Java 1.5 แม้จะตั้งเป็น 1.7
แม้จะระบุ JDK 1.7 ในการตั้งค่าโครงการทั้งหมด (รวมถึงFile -> Project Structure -> Project :: Project SDK) ข้อผิดพลาดต่อไปนี้เกิดขึ้นIntelliJ 13เมื่อพยายามรวบรวมรหัส Java 7 แบบง่าย ๆ ซึ่งใช้ตัวดำเนินการข้าวหลามตัด: java: diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator) มีสถานที่อื่นในการกำหนดค่าที่-source 7ควรเปิดใช้งานตัวเลือกที่คาดไว้หรือไม่

3
การใช้ที่เหมาะสมของพารามิเตอร์บรรทัดคำสั่ง Java -D
เมื่อผ่านพารามิเตอร์ -D ใน Java วิธีที่เหมาะสมในการเขียนบรรทัดคำสั่งคืออะไรแล้วเข้าถึงจากโค้ด? ตัวอย่างเช่นฉันได้ลองเขียนสิ่งนี้ ... if (System.getProperty("test").equalsIgnoreCase("true")) { //Do something } แล้วเรียกมันว่าสิ่งนี้ ... java -jar myApplication.jar -Dtest="true" แต่ฉันได้รับ NullPointerException ผมทำอะไรผิดหรือเปล่า?

8
เป็นไปได้ไหมที่จะอ่านจาก InputStream ด้วยการหมดเวลา?
โดยเฉพาะปัญหาคือการเขียนวิธีเช่นนี้: int maybeRead(InputStream in, long timeout) โดยที่ค่าส่งคืนจะเหมือนกับ in.read () หากข้อมูลมีให้ใช้งานภายใน 'ระยะหมดเวลา' มิลลิวินาทีและเป็นอย่างอื่น ก่อนที่เมธอดจะส่งคืนเธรดที่เกิดใหม่ใด ๆ จะต้องออก เพื่อหลีกเลี่ยงการขัดแย้งหัวเรื่องที่นี่ java.io.InputStream ตามที่ Sun (รับรอง Java เวอร์ชันใด ๆ ) โปรดทราบว่านี่ไม่ง่ายอย่างที่เห็น ด้านล่างนี้คือข้อเท็จจริงบางประการซึ่งได้รับการสนับสนุนโดยตรงจากเอกสารของซัน เมธอด in.read () อาจไม่สามารถอินเตอร์รัปต์ได้ การตัด InputStream ใน Reader หรือ InterruptibleChannel ไม่ได้ช่วยเพราะคลาสเหล่านั้นทั้งหมดสามารถทำได้คือวิธีการโทรของ InputStream ถ้ามันเป็นไปได้ที่จะใช้คลาสเหล่านั้นมันจะเป็นไปได้ที่จะเขียนวิธีแก้ปัญหาที่รันตรรกะเดียวกันโดยตรงบน InputStream เป็นที่ยอมรับเสมอสำหรับ in.available () เพื่อส่งคืน 0 เมธอด in.close () อาจบล็อกหรือไม่ทำอะไรเลย ไม่มีวิธีทั่วไปในการฆ่าเธรดอื่น

5
การตรวจสอบว่ารายการไม่ว่างใน Hamcrest
ฉันสงสัยว่าใครรู้วิธีการตรวจสอบว่ารายการว่างเปล่าใช้assertThat()และMatchers? วิธีที่ดีที่สุดที่ฉันเห็นเพียงใช้ JUnit: assertFalse(list.isEmpty()); แต่ฉันหวังว่าจะมีวิธีการทำเช่นนี้ใน Hamcrest

11
โฟลเดอร์ Java SDK อยู่ที่ไหนในคอมพิวเตอร์ของฉัน Ubuntu 12.04
ฉันรู้ว่ามันติดตั้งเพราะเมื่อฉันพิมพ์: $java -version ฉันเข้าใจ: OpenJDK Runtime Environment (IcedTea6 1.12.5) (6b27-1.12.5-0ubuntu0.12.04.1) OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) และเมื่อฉันพิมพ์: $locate jdk ฉันเข้าใจ: /home/arturo/Documents/2012a/sys/java/jre/glnxa64/jre/lib/servicetag/jdk_header.png /usr/share/app-install/desktop/openjdk-6-jre:openjdk-6-java.desktop /usr/share/app-install/desktop/openjdk-7-jre:openjdk-7-java.desktop /usr/share/app-install/icons/openjdk-6.png /usr/share/app-install/icons/openjdk-7.png สิ่งที่ทำให้ฉันกังวลเกี่ยวกับรายการแรกในรายการคือโฟลเดอร์ 2012a คือโฟลเดอร์ MATLAB ของฉันไม่ใช่โฟลเดอร์ 'usr / lib' มาตรฐาน ฉันสับสนว่า JDK และ JRE ติดตั้งไว้ที่ใดเพราะฉันต้องตั้งค่าพา ธ $ JAVA_HOME ที่ชี้ไปยังโฟลเดอร์ ฉันหายไปจากที่ไหน
147 java  java-home 

6
หมายเลขตัวแปร Java หรืออาร์กิวเมนต์สำหรับเมธอด
เป็นไปได้ไหมที่จะประกาศเมธอดที่อนุญาตพารามิเตอร์จำนวนตัวแปร? สัญลักษณ์ที่ใช้ในคำจำกัดความที่ระบุว่าวิธีการควรอนุญาตให้มีจำนวนตัวแปรของพารามิเตอร์คืออะไร? คำตอบ: varargs

13
ที่รันไทม์ค้นหาคลาสทั้งหมดในแอ็พพลิเคชัน Java ที่ขยายคลาสฐาน
ฉันต้องการทำสิ่งนี้: List<Animal> animals = new ArrayList<Animal>(); for( Class c: list_of_all_classes_available_to_my_app() ) if (c is Animal) animals.add( new c() ); ดังนั้นฉันต้องการดูคลาสทั้งหมดในแอปพลิเคชันจักรวาลของฉันและเมื่อฉันพบสิ่งที่สืบทอดมาจาก Animal ฉันต้องการสร้างวัตถุใหม่ของประเภทนั้นและเพิ่มลงในรายการ สิ่งนี้ทำให้ฉันสามารถเพิ่มฟังก์ชันการทำงานโดยไม่ต้องอัปเดตรายการสิ่งต่าง ๆ ฉันสามารถหลีกเลี่ยงสิ่งต่อไปนี้: List<Animal> animals = new ArrayList<Animal>(); animals.add( new Dog() ); animals.add( new Cat() ); animals.add( new Donkey() ); ... ด้วยวิธีการข้างต้นฉันสามารถสร้างคลาสใหม่ที่ขยายขอบเขตสัตว์และมันจะถูกเลือกโดยอัตโนมัติ ปรับปรุง: 10/16/2008 9:00 น. เวลามาตรฐานแปซิฟิก: คำถามนี้ได้สร้างคำตอบที่ดีมากขอบคุณ …

6
ความแตกต่างระหว่าง JVM และ HotSpot?
HotSpot คืออะไรและเกี่ยวข้องกับ JVM และ OpenJDK อย่างไร มันเป็นห้องสมุดหรือไม่? มันทำอะไรกันแน่? นอกจากนี้ความแตกต่างระหว่าง OpenJDK และ HotSpot คืออะไร?
147 java  jvm-hotspot 

28
ฉันจะคำนวณอายุของใครบางคนใน Java ได้อย่างไร
ฉันต้องการคืนอายุในปีเป็น int ในวิธีการ Java สิ่งที่ฉันมีตอนนี้คือสิ่งต่อไปนี้ที่ getBirthDate () ส่งคืนวัตถุวันที่ (พร้อมกับวันเกิด ;-)): public int getAge() { long ageInMillis = new Date().getTime() - getBirthDate().getTime(); Date age = new Date(ageInMillis); return age.getYear(); } แต่เนื่องจาก getYear () เลิกใช้แล้วฉันสงสัยว่ามีวิธีที่ดีกว่าในการทำเช่นนี้หรือไม่ ฉันไม่แน่ใจด้วยซ้ำว่าทำงานได้อย่างถูกต้องเนื่องจากยังไม่มีการทดสอบหน่วยในสถานที่
147 java  date  calendar 

9
อะไรคือความแตกต่างระหว่าง <? super E> และ <? ขยาย E> หรือไม่
ความแตกต่างระหว่าง&lt;? super E&gt;และ&lt;? extends E&gt;คืออะไร? ตัวอย่างเช่นเมื่อคุณดูคลาสjava.util.concurrent.LinkedBlockingQueueมีลายเซ็นต่อไปนี้สำหรับตัวสร้าง: public LinkedBlockingQueue(Collection&lt;? extends E&gt; c) และหนึ่งสำหรับวิธีการ: public int drainTo(Collection&lt;? super E&gt; c)
147 java  generics 

4
วิธีการโพสต์ข้อมูลในแบบฟอร์มด้วย Spring RestTemplate
ฉันต้องการแปลงตัวอย่างข้อมูล curl (ทำงาน) ต่อไปนี้เป็นการเรียก RestTemplate: curl -i -X POST -d "email=first.last@example.com" https://app.example.com/hr/email ฉันจะส่งพารามิเตอร์อีเมลได้อย่างถูกต้องได้อย่างไร รหัสต่อไปนี้ส่งผลให้เกิดการตอบสนอง 404 ไม่พบ: String url = "https://app.example.com/hr/email"; Map&lt;String, String&gt; params = new HashMap&lt;String, String&gt;(); params.put("email", "first.last@example.com"); RestTemplate restTemplate = new RestTemplate(); ResponseEntity&lt;String&gt; response = restTemplate.postForEntity( url, params, String.class ); ฉันพยายามกำหนดการโทรที่ถูกต้องใน PostMan และฉันสามารถทำให้มันทำงานได้อย่างถูกต้องโดยการระบุพารามิเตอร์อีเมลเป็นพารามิเตอร์ "form-data" ในเนื้อหา วิธีที่ถูกต้องเพื่อให้บรรลุหน้าที่การทำงานนี้ใน RestTemplate คืออะไร?

8
ชื่อผู้ใช้และรหัสผ่านคืออะไรเมื่อเริ่มต้น Spring Boot ด้วย Tomcat
เมื่อฉันปรับใช้แอปพลิเคชัน Spring ผ่าน Spring Boot และการเข้าถึงlocalhost:8080ฉันต้องตรวจสอบสิทธิ์ แต่ชื่อผู้ใช้และรหัสผ่านคืออะไรฉันจะตั้งค่าได้อย่างไร ฉันพยายามที่จะเพิ่มลงในtomcat-usersไฟล์ของฉันแต่มันไม่ทำงาน: &lt;role rolename="manager-gui"/&gt; &lt;user username="admin" password="admin" roles="manager-gui"/&gt; นี่คือจุดเริ่มต้นของแอปพลิเคชัน: @SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } } และนี่คือการพึ่งพา Tomcat: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-tomcat&lt;/artifactId&gt; &lt;scope&gt;provided&lt;/scope&gt; &lt;/dependency&gt; ฉันจะตรวจสอบความถูกต้องได้localhost:8080อย่างไร

11
วิธี unescape หน่วยงานตัวอักษร HTML ใน Java?
โดยทั่วไปฉันต้องการที่จะถอดรหัสเอกสาร HTML ที่กำหนดและแทนที่ตัวอักษรพิเศษทั้งหมดเช่น"&amp;nbsp;"-&gt; " ", -&gt;"&amp;gt;""&gt;" ใน. NET เราสามารถใช้ประโยชน์HttpUtility.HtmlDecodeได้ ฟังก์ชั่นที่เทียบเท่าใน Java คืออะไร?
147 java  html  string  eclipse  decode 

10
วิธีเขียนบันทึกในไฟล์ข้อความเมื่อใช้ java.util.logging.Logger
ฉันมีสถานการณ์ที่ฉันต้องการเขียนบันทึกทั้งหมดที่ฉันสร้างขึ้นเป็นไฟล์ข้อความ เรากำลังใช้ java.util.logging.Logger API เพื่อสร้างบันทึก ฉันเหนื่อย: private static Logger logger = Logger.getLogger(className.class.getName()); FileHandler fh; fh = new FileHandler("C:/className.log"); logger.addHandler(fh); แต่ยังได้รับบันทึกของฉันบนคอนโซลเท่านั้น ....
147 java  logging 

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