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

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

18
การพิจารณาว่าออบเจ็กต์เป็นประเภทดั้งเดิมหรือไม่
ฉันมีObject[]อาร์เรย์และฉันกำลังพยายามค้นหาอาร์เรย์ที่เป็นแบบดั้งเดิม ผมเคยลองใช้Class.isPrimitive()แต่ดูเหมือนว่าฉันทำอะไรผิด: int i = 3; Object o = i; System.out.println(o.getClass().getName() + ", " + o.getClass().isPrimitive()); พิมพ์ java.lang.Integer, falseพิมพ์ มีวิธีที่ถูกต้องหรือทางเลือกอื่นหรือไม่?
114 java  reflection 

27
จะตรวจสอบได้อย่างไรว่าต้นไม้ไบนารีสมดุลหรือไม่?
เป็นเวลานานจากโรงเรียนเหล่านั้น ได้งานเป็นผู้เชี่ยวชาญด้านไอทีที่โรงพยาบาล พยายามที่จะย้ายไปทำรายการจริงบางอย่างในขณะนี้ ตอนนี้ฉันกำลังทำงานกับต้นไม้ไบนารีและฉันสงสัยว่าอะไรจะเป็นวิธีที่ดีที่สุดในการพิจารณาว่าต้นไม้มีความสมดุลของความสูงหรือไม่ ฉันกำลังคิดบางอย่างจากสิ่งนี้: public boolean isBalanced(Node root){ if(root==null){ return true; //tree is empty } else{ int lh = root.left.height(); int rh = root.right.height(); if(lh - rh > 1 || rh - lh > 1){ return false; } } return true; } นี่เป็นการใช้งานที่ดีหรือไม่? หรือฉันขาดอะไรไป?

13
เหตุใด Java จึงต้องการอินเตอร์เฟสแบบอนุกรม
เราทำงานอย่างหนักกับการทำให้เป็นอนุกรมและการต้องระบุแท็กต่อเนื่องบนวัตถุทุกชิ้นที่เราใช้ถือเป็นภาระ โดยเฉพาะอย่างยิ่งเมื่อเป็นคลาสของบุคคลที่สามที่เราไม่สามารถเปลี่ยนแปลงได้จริงๆ คำถามคือ: เนื่องจาก Serializable เป็นอินเทอร์เฟซที่ว่างเปล่าและ Java ให้ซีเรียลไลเซชั่นที่แข็งแกร่งเมื่อคุณเพิ่ม implements Serializable- ทำไมพวกเขาไม่ทำให้ทุกอย่างเป็นอนุกรมและนั่นล่ะ ฉันขาดอะไรไป?

3
คุณจะหยุด Console ไม่ให้โผล่ขึ้นมาโดยอัตโนมัติใน Eclipse ได้อย่างไร
ฉันมีเว็บแอปพลิเคชันที่ทำงานใน Eclipse ด้วย Tomcat มีข้อผิดพลาดเล็กน้อยที่ทำให้คอนโซลป๊อปอัปทุกๆสองสามวินาที ฉันจะหยุดไม่ให้โผล่ขึ้นมาและโฟกัสโดยอัตโนมัติได้อย่างไร
114 java  eclipse 

13
ทางเลือกอื่นของ Singleton คืออะไร
เรามีคลาสที่เก็บข้อมูลการกำหนดค่าสำหรับแอปพลิเคชัน ที่นี่เคยเป็นซิงเกิลตัน หลังจากการตรวจสอบสถาปัตยกรรมบางส่วนเราได้รับคำสั่งให้ลบซิงเกิลตันออก เราเห็นประโยชน์บางประการของการไม่ใช้ซิงเกิลตันในการทดสอบหน่วยเนื่องจากเราสามารถทดสอบการกำหนดค่าต่างๆพร้อมกันได้ หากไม่มีซิงเกิลตันเราต้องส่งอินสแตนซ์ไปทั่วทุกที่ในโค้ดของเรา มันยุ่งมากเราเลยเขียนเสื้อคลุมซิงเกิลตัน ตอนนี้เรากำลังย้ายรหัสเดียวกันไปยัง PHP และ. NET ฉันสงสัยว่ามีรูปแบบที่ดีกว่าที่เราสามารถใช้กับวัตถุกำหนดค่าได้หรือไม่

15
JPA: อะไรคือรูปแบบที่เหมาะสมสำหรับการทำซ้ำชุดผลลัพธ์ขนาดใหญ่?
สมมติว่าฉันมีตารางที่มีแถวเป็นล้าน การใช้ JPA วิธีใดเป็นวิธีที่เหมาะสมในการวนซ้ำแบบสอบถามกับตารางนั้นเช่นฉันไม่มีรายการในหน่วยความจำทั้งหมดที่มีวัตถุนับล้าน ตัวอย่างเช่นฉันสงสัยว่าสิ่งต่อไปนี้จะระเบิดหากตารางมีขนาดใหญ่: List<Model> models = entityManager().createQuery("from Model m", Model.class).getResultList(); for (Model model : models) { System.out.println(model.getId()); } การแบ่งหน้า (การวนซ้ำและการอัปเดตsetFirstResult()/ setMaxResult()) ด้วยตนเองเป็นทางออกที่ดีที่สุดหรือไม่? แก้ไข : กรณีการใช้งานหลักที่ฉันกำหนดเป้าหมายเป็นงานแบตช์ประเภทหนึ่ง ถ้าใช้เวลานานจะดีกว่า ไม่มีเว็บไคลเอ็นต์ที่เกี่ยวข้อง ฉันแค่ต้อง "ทำอะไรบางอย่าง" สำหรับแต่ละแถวทีละหนึ่ง (หรือ N ขนาดเล็ก) ฉันแค่พยายามหลีกเลี่ยงไม่ให้พวกเขาทั้งหมดอยู่ในความทรงจำในเวลาเดียวกัน
114 java  hibernate  jpa 

3
การแปลงคู่เป็นจำนวนเต็มใน java
ใน Java ฉันต้องการแปลงคู่เป็นจำนวนเต็มฉันรู้ว่าคุณทำสิ่งนี้: double x = 1.5; int y = (int)x; คุณจะได้รับ y = 1 หากคุณทำสิ่งนี้: int y = (int)Math.round(x); คุณน่าจะได้ 2 อย่างไรก็ตามฉันสงสัยว่า: เนื่องจากบางครั้งการแทนค่าจำนวนเต็มสองครั้งดูเหมือน 1.9999999998 หรือบางอย่างมีความเป็นไปได้หรือไม่ที่การคัดเลือกคู่ที่สร้างขึ้นผ่านทาง Math.round () จะยังคงส่งผลให้ตัวเลขที่ถูกตัดทอนลง กว่าจำนวนปัดเศษที่เรากำลังมองหา (เช่น: 1 แทนที่จะเป็น 2 ในรหัสที่แสดง)? (และใช่ฉันไม่ได้หมายความว่ามันเป็นเช่นนี้: มีใด ๆค่าสำหรับ X, Y ที่จะแสดงผลที่เป็นมากกว่าการตัดทอนเป็นตัวแทนโค้งมนของ x หรือไม่?) ถ้าเป็นเช่นนั้น: มีวิธีที่ดีกว่าในการเพิ่มค่า int สองเท่าโดยไม่เสี่ยงต่อการตัดทอนหรือไม่? คิดอะไรบางอย่าง: Math.round (x) …
114 java  casting  double  rounding 


7
ใน JPA 2 โดยใช้ CriteriaQuery วิธีนับผลลัพธ์
ฉันค่อนข้างใหม่กับ JPA 2 และเป็น CriteriaBuilder / CriteriaQuery API: CriteriaQuery Javadoc CriteriaQuery ในบทช่วยสอน Java EE 6 ฉันต้องการนับผลลัพธ์ของ CriteriaQuery โดยไม่ต้องดึงข้อมูลออกมาจริงๆ เป็นไปได้ไหมฉันไม่พบวิธีการดังกล่าววิธีเดียวที่จะทำสิ่งนี้: CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQuery<MyEntity> cq = cb .createQuery(MyEntityclass); // initialize predicates here return entityManager.createQuery(cq).getResultList().size(); และนั่นไม่ใช่วิธีที่เหมาะสมที่จะทำ ... มีวิธีแก้ไขไหม

15
Regex สำหรับการแยกสตริงโดยใช้ช่องว่างเมื่อไม่ล้อมรอบด้วยเครื่องหมายคำพูดเดี่ยวหรือคู่
ฉันยังใหม่กับนิพจน์ทั่วไปและขอขอบคุณสำหรับความช่วยเหลือ ฉันพยายามรวบรวมนิพจน์ที่จะแยกสตริงตัวอย่างโดยใช้ช่องว่างทั้งหมดที่ไม่ได้ล้อมรอบด้วยเครื่องหมายคำพูดเดี่ยวหรือคู่ ความพยายามครั้งสุดท้ายของฉันมีลักษณะดังนี้(?!")และไม่ค่อยได้ผล มันแยกออกจากช่องว่างก่อนใบเสนอราคา ตัวอย่างการป้อนข้อมูล: This is a string that "will be" highlighted when your 'regular expression' matches something. ผลลัพธ์ที่ต้องการ: This is a string that will be highlighted when your regular expression matches something. สังเกต"will be"และ'regular expression'รักษาช่องว่างระหว่างคำ
114 java  regex  split 

4
เกิดข้อผิดพลาดในการกำหนด Layout: BoxLayout ไม่สามารถแชร์ได้
ฉันมีนี้ Java JFrameชั้นในสิ่งที่ฉันต้องการที่จะใช้ BoxLayout java.awt.AWTError: BoxLayout can't be sharedแต่ผมได้รับข้อผิดพลาดว่า ฉันเคยเห็นคนอื่นมีปัญหานี้ แต่พวกเขาแก้ไขได้โดยการสร้าง boxlayout บนแผงเนื้อหา แต่นั่นคือสิ่งที่ฉันทำที่นี่ นี่คือรหัสของฉัน: class EditDialog extends JFrame { JTextField title = new JTextField(); public editDialog() { setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setTitle("New entity"); getContentPane().setLayout( new BoxLayout(this, BoxLayout.PAGE_AXIS)); add(title); pack(); setVisible(true); } }
114 java  swing  layout  boxlayout 

7
Hamcrest เปรียบเทียบคอลเล็กชัน
ฉันกำลังพยายามเปรียบเทียบ 2 รายการ: assertThat(actual.getList(), is(Matchers.containsInAnyOrder(expectedList))); แต่ความคิด java: no suitable method found for assertThat(java.util.List<Agent>,org.hamcrest.Matcher<java.lang.Iterable<? extends model.Agents>>) method org.junit.Assert.<T>assertThat(T,org.hamcrest.Matcher<T>) is not applicable (no instance(s) of type variable(s) T exist so that argument type org.hamcrest.Matcher<java.lang.Iterable<? extends model.Agents>> conforms to formal parameter type org.hamcrest.Matcher<T>) method org.junit.Assert.<T>assertThat(java.lang.String,T,org.hamcrest.Matcher<T>) is not applicable (cannot instantiate from arguments because …
114 java  junit  hamcrest 

9
ฉันจะจัดรูปแบบตัวเลขใน Java ได้อย่างไร
ฉันจะจัดรูปแบบตัวเลขใน Java ได้อย่างไร อะไรคือการปฏิบัติที่ดีที่สุด"? ฉันจะต้องปัดเศษตัวเลขก่อนที่จะจัดรูปแบบหรือไม่ 32.302342342342343 => 32.30 .7323 => 0.73 เป็นต้น

13
ไม่สามารถแก้ไขการนำเข้า org.junit
ฉันต้องการแก้ปัญหา java สำหรับการสัมภาษณ์และพวกเขาได้ส่งคลาสทดสอบมาให้ฉัน เริ่มต้นด้วย import org.junit.Before; และยังมีไวยากรณ์ต่อไปนี้ใน places: @RunWith(JUnit4.class) ... @Before ... @Test ฉันไม่ได้ใช้ Java มาสักพักแล้วสิ่งนี้ทำให้ฉันสับสนเล็กน้อย ฉันดาวน์โหลด eclipse และเมื่อฉันพยายามรวบรวมไฟล์ทดสอบนี้มีข้อผิดพลาดในการนำเข้าและที่เครื่องหมาย @ ข้อผิดพลาดในการนำเข้าทำให้เกิด: The import org.junit cannot be resolved. และไม่รู้จัก @RunWith ด้วยซ้ำเพราะพยายามแก้ไขเป็นประเภท
114 java  eclipse 

8
แก้ไขพารามิเตอร์การร้องขอด้วยตัวกรอง servlet
เว็บแอปพลิเคชันที่มีอยู่กำลังทำงานบน Tomcat 4.1 มีปัญหา XSS กับเพจ แต่ฉันไม่สามารถแก้ไขแหล่งที่มาได้ ฉันตัดสินใจที่จะเขียนตัวกรอง servlet เพื่อล้างพารามิเตอร์ก่อนที่หน้าจะเห็น ฉันต้องการเขียนคลาสตัวกรองดังนี้: import java.io.*; import javax.servlet.*; public final class XssFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String badValue = request.getParameter("dangerousParamName"); String goodValue = sanitize(badValue); request.setParameter("dangerousParamName", goodValue); chain.doFilter(request, response); } public void destroy() …

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