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

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

4
เธรด HashMap ปลอดภัยสำหรับคีย์อื่นหรือไม่
หากฉันมีเธรดหลายเธรดที่เข้าถึง HashMap แต่รับประกันได้ว่าพวกเขาจะไม่เข้าถึงคีย์เดียวกันในเวลาเดียวกันนั่นอาจทำให้เกิดสภาวะการแข่งขันได้หรือไม่


8
มีอย่างเช่น instanceOf (Class <?> c) ​​ใน Java หรือไม่
ฉันต้องการตรวจสอบว่าวัตถุoเป็นอินสแตนซ์ของคลาสCหรือคลาสย่อยของC. ตัวอย่างเช่นถ้าpเป็นของชั้นPointที่ฉันต้องการx.instanceOf(Point.class)ที่จะเป็นtrueและจะเป็นx.instanceOf(Object.class)true ฉันต้องการให้มันใช้งานได้กับประเภทดั้งเดิมแบบบรรจุกล่อง ตัวอย่างเช่นถ้าxเป็นIntegerแล้วควรจะเป็นx.instanceOf(Integer.class)true มีอย่างนั้นหรือ? ถ้าไม่ฉันจะใช้วิธีการดังกล่าวได้อย่างไร?

5
Java 1.8 ASM ClassReader ล้มเหลวในการแยกวิเคราะห์ไฟล์คลาส - อาจเป็นเพราะไฟล์คลาส Java เวอร์ชันใหม่ที่ยังไม่รองรับ
เว็บแอปพลิเคชันของฉันทำงานได้ดีบน JDK 1.7 แต่ขัดข้องบน 1.8 โดยมีข้อยกเว้นต่อไปนี้ (ระหว่างการเริ่มต้นแอ็พพลิเคชันเซิร์ฟเวอร์ด้วย Jetty 8) ฉันใช้ Spring version: 3.2.5.RELEASE ข้อยกเว้น: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet ฉันคิดว่าปัญหาเกิดขึ้นเนื่องจากสปริงและไลบรารี "asm.jar" ซึ่งขึ้นอยู่กับ ฉันจะแก้ไขปัญหานี้ได้อย่างไร
88 java  spring  java-8 

8
วิธีการวาดสามเหลี่ยมเต็มในผืนผ้าใบ Android
ฉันวาดสามเหลี่ยมนี้ในแผนที่ Android โดยใช้โค้ดด้านล่างในวิธีการวาดของฉัน: paint.setARGB(255, 153, 29, 29); paint.setStyle(Paint.Style.FILL_AND_STROKE); paint.setAntiAlias(true); Path path = new Path(); path.moveTo(point1_returned.x, point1_returned.y); path.lineTo(point2_returned.x, point2_returned.y); path.moveTo(point2_returned.x, point2_returned.y); path.lineTo(point3_returned.x, point3_returned.y); path.moveTo(point3_returned.x, point3_returned.y); path.lineTo(point1_returned.x, point1_returned.y); path.close(); canvas.drawPath(path, paint); pointX_returned คือพิกัดที่ฉันได้รับจากฟิลด์ โดยทั่วไปคือละติจูดและลองจิจูด ผลลัพธ์ที่ได้คือรูปสามเหลี่ยมที่สวยงาม แต่ภายในว่างเปล่าดังนั้นฉันจึงสามารถดูแผนที่ได้ มีวิธีเติมบ้างไหม?

14
คลาสนามธรรมเทียบกับอินเตอร์เฟสใน Java
ฉันถูกถามคำถามฉันต้องการรับคำตอบของฉันตรวจสอบที่นี่ ถาม:ในสถานการณ์ใดที่เหมาะสมกว่าในการขยายคลาสนามธรรมมากกว่าการใช้อินเทอร์เฟซ ตอบ:หากเราใช้รูปแบบวิธีการออกแบบเทมเพลต ฉันถูกไหม ? ขออภัยหากไม่สามารถระบุคำถามได้อย่างชัดเจน ฉันรู้ความแตกต่างพื้นฐานระหว่างคลาสนามธรรมและอินเทอร์เฟซ 1) ใช้คลาสนามธรรมเมื่อความต้องการเป็นเช่นนั้นเราจำเป็นต้องใช้ฟังก์ชันเดียวกันในทุกคลาสย่อยสำหรับการดำเนินการเฉพาะ (ใช้วิธีการ) และฟังก์ชันการทำงานที่แตกต่างกันสำหรับการดำเนินการอื่น ๆ (เฉพาะลายเซ็นของวิธีการเท่านั้น) 2) ใช้อินเทอร์เฟซหากคุณต้องการกำหนดลายเซ็นให้เหมือนกัน (และการนำไปใช้งานที่แตกต่างกัน) เพื่อให้คุณสามารถปฏิบัติตามการใช้งานอินเทอร์เฟซได้ 3) เราสามารถขยายคลาสนามธรรมได้สูงสุดหนึ่งคลาส แต่สามารถใช้งานได้มากกว่าหนึ่งอินเทอร์เฟซ การย้ำคำถาม:มีสถานการณ์อื่น ๆ นอกเหนือจากที่กล่าวมาข้างต้นหรือไม่โดยเฉพาะที่เราต้องการให้ใช้คลาสนามธรรม (สิ่งที่เห็นคือรูปแบบวิธีการออกแบบเทมเพลตเป็นแนวคิดตามแนวคิดนี้เท่านั้น) อินเทอร์เฟซเทียบกับคลาสนามธรรม การเลือกระหว่างสองสิ่งนี้ขึ้นอยู่กับว่าคุณต้องการทำอะไร แต่โชคดีสำหรับเรา Erich Gamma สามารถช่วยเราได้เล็กน้อย เช่นเคยมีการปิด, อินเตอร์เฟซที่ช่วยให้คุณมีอิสระในเรื่องเกี่ยวกับชั้นฐานกับระดับนามธรรมจะช่วยให้คุณมีอิสระในการเพิ่มวิธีการใหม่ในภายหลัง - เอริชแกมมา คุณไม่สามารถเปลี่ยนอินเทอร์เฟซได้โดยไม่ต้องเปลี่ยนสิ่งอื่น ๆ มากมายในโค้ดของคุณดังนั้นวิธีเดียวที่จะหลีกเลี่ยงปัญหานี้ได้คือการสร้างอินเทอร์เฟซใหม่ทั้งหมดซึ่งอาจไม่ใช่สิ่งที่ดีเสมอไป Abstract classesควรใช้เป็นหลักสำหรับวัตถุที่เกี่ยวข้องอย่างใกล้ชิด Interfacesจะดีกว่าในการจัดหาฟังก์ชันการทำงานทั่วไปสำหรับคลาสที่ไม่เกี่ยวข้อง

14
จะแทนที่ toString () อย่างถูกต้องใน Java ได้อย่างไร?
ฟังดูโง่ไปหน่อย แต่ฉันต้องการความช่วยเหลือเกี่ยวกับtoString()วิธีการของฉันและมันน่ารำคาญมาก ฉันพยายามค้นหาทางออนไลน์เพราะtoStringเป็นสิ่งที่ทำให้สับสนและ "ไม่พบ Kid constructor # 2" แม้ว่าจะอยู่ที่นั่นและฉันจะทำอย่างอื่นด้วยซ้ำ แต่ก็ไม่ได้ผล ตกลงนั่นเป็นจำนวนมากดังนั้นนี่คือรหัสของฉัน: import java.util.*; class Kid { String name; double height; GregorianCalendar bDay; public Kid () { this.name = "HEAD"; this.height = 1; this.bDay = new GregorianCalendar(1111,1,1); } public Kid (String n, double h, String date) { // method that toString() …
88 java 

13
การแก้ไขไฟล์ภายใน jar
ฉันต้องการแก้ไขไฟล์ในขวดโหลของฉัน เป็นไปได้หรือไม่ที่จะทำสิ่งนี้โดยไม่ต้องดึงข้อมูลและสร้างความเสียหายจากภายในแอปพลิเคชัน ไฟล์ที่ฉันต้องการแก้ไขเป็นไฟล์คอนฟิกูเรชันซึ่งส่วนใหญ่ใช้ xml เหตุผลที่ฉันสนใจที่จะไม่ยกเลิกการหยุดชะงักคือแอปพลิเคชันถูกห่อด้วย launch4j หากฉันไม่ได้รับการเข้ารหัสฉันจะไม่สามารถสร้างไฟล์. exe ได้อีก
88 java  jar 

7
ตัวแปรคงเริ่มต้นเมื่อใด
ฉันสงสัยว่าเมื่อใดที่ตัวแปรคงที่เริ่มต้นเป็นค่าเริ่มต้น ถูกต้องหรือไม่ที่เมื่อโหลดคลาสแล้วจะมีการสร้างตัวแปรแบบสแตติก (จัดสรร) จากนั้นตัวเริ่มต้นแบบคงที่และการกำหนดค่าเริ่มต้นในการประกาศจะถูกดำเนินการ มีการกำหนดค่าเริ่มต้นที่จุดใด สิ่งนี้นำไปสู่ปัญหาการอ้างอิงไปข้างหน้า นอกจากนี้โปรดหากคุณสามารถอธิบายสิ่งนี้โดยอ้างอิงถึงคำถามที่ถามว่าทำไมฟิลด์แบบคงที่ไม่เริ่มต้นในเวลา และโดยเฉพาะอย่างยิ่งคำตอบที่ได้รับจาก Kevin Brock ในเว็บไซต์เดียวกัน ฉันไม่เข้าใจจุดที่ 3

4
ทำความเข้าใจกับเอาต์พุต FFT
ฉันต้องการความช่วยเหลือในการทำความเข้าใจผลลัพธ์ของการคำนวณ DFT / FFT ฉันเป็นวิศวกรซอฟต์แวร์ที่มีประสบการณ์และต้องการตีความการอ่านค่ามาตรความเร่งของสมาร์ทโฟนบางอย่างเช่นการค้นหาความถี่หลัก น่าเสียดายที่ฉันเข้าเรียนในชั้นเรียน EE ของวิทยาลัยส่วนใหญ่เมื่อสิบห้าปีที่แล้ว แต่ฉันได้อ่าน DFT และ FFT ในช่วงหลายวันที่ผ่านมา (เห็นได้ชัดว่ามีประโยชน์เพียงเล็กน้อย) ได้โปรดไม่มีคำตอบของ "ไปเรียน EE" ฉันวางแผนที่จะทำเช่นนั้นจริงๆถ้านายจ้างจะจ่ายเงินให้ฉัน :) นี่คือปัญหาของฉัน: ฉันจับสัญญาณได้ที่ 32 Hz นี่คือตัวอย่าง 1 วินาทีจาก 32 คะแนนซึ่งฉันได้สร้างแผนภูมิไว้ใน Excel จากนั้นฉันได้รับโค้ด FFT ที่เขียนด้วยภาษา Java จาก Columbia University (หลังจากทำตามคำแนะนำในโพสต์เรื่อง " FFT ที่เชื่อถือได้และรวดเร็วใน Java ") ผลลัพธ์ของโปรแกรมนี้มีดังนี้ ฉันเชื่อว่ามันกำลังเรียกใช้ FFT ในสถานที่ดังนั้นจึงใช้บัฟเฟอร์เดียวกันอีกครั้งสำหรับทั้งอินพุตและเอาต์พุต Before: Re: [0.887 1.645 …

4
แปลงค่าสี RGB เป็นสตริงเลขฐานสิบหก
ในแอปพลิเคชัน Java ของฉันฉันได้รับColora JButtonในรูปแบบของสีแดงสีเขียวและสีน้ำเงิน ฉันเก็บค่าเหล่านี้ไว้เป็นสามintวินาที ฉันจะแปลงค่า RGB เหล่านั้นให้เป็นค่าStringแทนเลขฐานสิบหกที่เทียบเท่าได้อย่างไร เช่น#0033fA
88 java  swing 

4
การรัน jmap ทำให้ไม่สามารถเปิดไฟล์ซ็อกเก็ตได้
ฉันต้องรันjmapเพื่อที่จะถ่ายฮีปดัมพ์ของกระบวนการของฉัน แต่jvmกลับ: Unable to open socket file: target process not responding or HotSpot VM not loaded The -F option can be used when the target process is not responding ดังนั้นฉันจึงใช้-F: ./jmap -F -dump:format=b,file=heap.bin 10330 Attaching to process ID 10331, please wait... Debugger attached successfully. Server compiler detected. JVM version is …
88 java  linux  jvm  jvm-hotspot 

7
วิธีปิดการใช้งาน Spring Security สำหรับ URL เฉพาะ
ฉันใช้ระบบรักษาความปลอดภัยสปริงแบบไม่ระบุสถานะ แต่ในกรณีของการสมัครใช้งานฉันต้องการปิดใช้งานการรักษาความปลอดภัยสปริงฉันปิดการใช้งานโดยใช้ antMatchers("/api/v1/signup").permitAll(). แต่ใช้งานไม่ได้ฉันได้รับข้อผิดพลาดด้านล่าง: message=An Authentication object was not found in the SecurityContext, type=org.springframework.security.authentication.AuthenticationCredentialsNotFoundException ฉันคิดว่านี่หมายความว่าตัวกรองความปลอดภัยของสปริงกำลังทำงาน ลำดับ URL ของฉันจะเป็น "/ api / v1" เสมอ การกำหนดค่าสปริงของฉันคือ @Override protected void configure(HttpSecurity http) throws Exception { http. csrf().disable(). sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS). and(). authorizeRequests(). antMatchers("/api/v1/signup").permitAll(). anyRequest().authenticated(). and(). anonymous().disable(); http.addFilterBefore(new AuthenticationFilter(authenticationManager()), BasicAuthenticationFilter.class); } ตัวกรองการพิสูจน์ตัวตนของฉันคือ @Override public void doFilter(ServletRequest …

8
การส่งคืนออบเจ็กต์ JSON เป็นการตอบสนองใน Spring Boot
ฉันมี RestController ตัวอย่างใน Spring Boot: @RestController @RequestMapping("/api") class MyRestController { @GetMapping(path = "/hello") public JSONObject sayHello() { return new JSONObject("{'aa':'bb'}"); } } ฉันใช้ไลบรารี JSON org.json เมื่อฉันกด API /helloฉันได้รับข้อยกเว้นว่า: Servlet.service () สำหรับ servlet [dispatcherServlet] ในบริบทที่มีพา ธ [] ข้อยกเว้นที่ถูกโยน [การประมวลผลคำขอล้มเหลว; ข้อยกเว้นที่ซ้อนกันคือ java.lang.IllegalArgumentException: ไม่พบตัวแปลงสำหรับค่าส่งคืนของประเภท: class org.json.JSONObject] ที่มีสาเหตุ java.lang.IllegalArgumentException: ไม่พบตัวแปลงสำหรับค่าส่งคืนของประเภท: class org.json.JSONObject ปัญหาคืออะไร? ใครช่วยอธิบายได้ว่าเกิดอะไรขึ้น?

10
วิธีทดสอบคลาสนามธรรมใน Java ด้วย JUnit
ฉันยังใหม่กับการทดสอบ Java ด้วย JUnit ฉันต้องทำงานกับ Java และฉันต้องการใช้การทดสอบหน่วย ปัญหาของฉันคือฉันมีคลาสนามธรรมที่มีวิธีนามธรรม แต่มีบางวิธีที่ไม่เป็นนามธรรม ฉันจะทดสอบคลาสนี้ด้วย JUnit ได้อย่างไร? ตัวอย่างรหัส (ง่ายมาก): abstract class Car { public Car(int speed, int fuel) { this.speed = speed; this.fuel = fuel; } private int speed; private int fuel; abstract void drive(); public int getSpeed() { return this.speed; } public int getFuel() …

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