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

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

7
เหตุใดจึงสามารถแก้ไขวัตถุสุดท้ายได้
ฉันเจอรหัสต่อไปนี้ในฐานรหัสที่ฉันกำลังทำอยู่: public final class ConfigurationService { private static final ConfigurationService INSTANCE = new ConfigurationService(); private List providers; private ConfigurationService() { providers = new ArrayList(); } public static void addProvider(ConfigurationProvider provider) { INSTANCE.providers.add(provider); } ... INSTANCEถูกประกาศเป็นfinal. ทำไมจึงสามารถเพิ่มวัตถุเข้าไปได้INSTANCE? ไม่ควรทำให้การใช้ขั้นสุดท้ายเป็นโมฆะ (มันไม่) ฉันสมมติว่าคำตอบต้องทำอะไรบางอย่างกับตัวชี้และหน่วยความจำ แต่อยากจะรู้แน่
90 java  final 

7
ฉันจะส่งออก org.w3c.dom.Element ในรูปแบบสตริงใน java ได้อย่างไร
ฉันมีorg.w3c.dom.Elementวัตถุที่ส่งเข้ามาในวิธีการของฉัน ฉันต้องการดูสตริง xml ทั้งหมดรวมถึงโหนดลูก (กราฟวัตถุทั้งหมด) ฉันกำลังมองหาวิธีการที่สามารถแปลงElementเป็นสตริงรูปแบบ XML ที่ฉันสามารถทำได้System.out.printlnบน เพียงแค่println()บนวัตถุ 'องค์ประกอบ' จะไม่ทำงานเนื่องจากtoString()จะไม่ส่งออกรูปแบบ xml และจะไม่ผ่านโหนดลูก มีวิธีง่ายๆโดยไม่ต้องเขียนวิธีการของตัวเองหรือไม่? ขอบคุณ.
90 java  xml  dom 

2
ทางเลือกในการ java.lang.reflect.Proxy สำหรับการสร้างพร็อกซีของคลาสนามธรรม (แทนที่จะเป็นอินเทอร์เฟซ)
ตามเอกสาร : [ java.lang.reflect.] Proxyจัดเตรียมเมธอดแบบคงที่สำหรับการสร้างคลาสพร็อกซีและอินสแตนซ์แบบไดนามิกและยังเป็นซูเปอร์คลาสของคลาสพร็อกซีแบบไดนามิกทั้งหมดที่สร้างโดยเมธอดเหล่านั้น newProxyMethodวิธี (รับผิดชอบในการสร้างผู้รับมอบฉันทะแบบไดนามิก) มีลายเซ็นต่อไปนี้: public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException น่าเสียดายที่สิ่งนี้ป้องกันไม่ให้สร้างพร็อกซีแบบไดนามิกที่ขยายคลาสนามธรรมเฉพาะ (แทนที่จะใช้อินเทอร์เฟซเฉพาะ) สิ่งนี้สมเหตุสมผลเมื่อพิจารณาว่าjava.lang.reflect.Proxyเป็น "superclass ของไดนามิกพร็อกซีทั้งหมด" ดังนั้นจึงป้องกันไม่ให้คลาสอื่นเป็นซูเปอร์คลาส ดังนั้นมีทางเลือกอื่นjava.lang.reflect.Proxyที่สามารถสร้างพร็อกซีแบบไดนามิกที่สืบทอดมาจากคลาสนามธรรมเฉพาะโดยเปลี่ยนเส้นทางการเรียกทั้งหมดไปยังเมธอดนามธรรมไปยังตัวจัดการการเรียกใช้หรือไม่ ตัวอย่างเช่นสมมติว่าฉันมีคลาสนามธรรมDog: public abstract class Dog { public void bark() { System.out.println("Woof!"); } public abstract void fetch(); } มีชั้นเรียนที่อนุญาตให้ฉันทำสิ่งต่อไปนี้หรือไม่? Dog dog = SomeOtherProxy.newProxyInstance(classLoader, Dog.class, h); …

15
Windows ละเว้น JAVA_HOME: จะตั้งค่า JDK เป็นค่าเริ่มต้นได้อย่างไร
ฉันจะชักชวนให้ Windows ใช้ JDK แทน JRE ได้อย่างไร คำถามนี้เคยถามมาก่อนที่นี่และที่อื่น ๆ : ฉันจะตั้งค่าเริ่มต้นการติดตั้ง Java / รันไทม์ (Windows) ได้อย่างไร? ปัญหาคือ Windows เพิกเฉยJAVA_HOMEและยังเพิกเฉยต่อข้อเท็จจริงที่ว่าฉันทำให้ไดเร็กทอรีถังขยะ JDK เป็นรายการแรกในพา ธ เมื่อฉันเรียกใช้java -versionจากบรรทัดคำสั่งแทนที่จะเรียกใช้การติดตั้ง JDK 1.6 ของฉันมันจะเรียกใช้ 1.7 JRE ฉันเดาว่านี่เป็นปัญหาเฉพาะของ 1.7 และ Windows 7 กำลังทำบางสิ่งที่ไม่ควรเกิดขึ้นกับรีจิสทรี มีแนวคิดในการแก้ไขปัญหานี้อย่างไร แก้ไข : อ๊ะ ฉันเขียน "รายการแรกใน classpath" ด้านบนเมื่อฉันหมายถึง "เส้นทาง" ขออภัย.
90 windows  java 

9
JFrame Maximize window
ฉันกำลังรวบรวมภาพเคลื่อนไหวที่รวดเร็วและสกปรกโดยใช้วงสวิง ฉันต้องการให้หน้าต่างขยายใหญ่สุด ฉันจะทำเช่นนั้นได้อย่างไร?

6
JTable วิธีรีเฟรชโมเดลตารางหลังจากแทรกลบหรืออัปเดตข้อมูล
นี่คือ jTable ของฉัน private JTable getJTable() { String[] colName = { "Name", "Email", "Contact No. 1", "Contact No. 2", "Group", "" }; if (jTable == null) { jTable = new JTable() { public boolean isCellEditable(int nRow, int nCol) { return false; } }; } DefaultTableModel contactTableModel = (DefaultTableModel) jTable .getModel(); …

10
ประเภทใดที่ควรเลือกสำหรับโปรเจ็กต์ Java แบบง่าย
mvn archetype: สร้างมีตัวเลือกมากเกินไปและฉันกำลังมองหาการสร้างยูทิลิตี้ java อย่างง่ายพร้อมกรณีทดสอบ junit ฉันต้องการทราบว่าฉันควรใช้แม่แบบใดที่นี่?

17
@Autowired - ไม่พบถั่วที่มีคุณสมบัติสำหรับการพึ่งพา
ฉันเริ่มโครงการโดยสร้างเอนทิตีบริการและการทดสอบ JUnit สำหรับบริการโดยใช้ Spring และ Hibernate ทั้งหมดนี้ใช้งานได้ดี จากนั้นฉันได้เพิ่ม spring-mvc เพื่อสร้างเว็บแอปพลิเคชันนี้โดยใช้แบบฝึกหัดทีละขั้นตอน แต่เมื่อฉันพยายามสร้าง Controller ด้วยคำอธิบายประกอบ @Autowired ฉันได้รับข้อผิดพลาดจาก Glassfish ในระหว่างการปรับใช้ ฉันเดาว่าด้วยเหตุผลบางอย่าง Spring ไม่เห็นบริการของฉัน แต่หลังจากพยายามหลายครั้งฉันก็ยังไม่สามารถจัดการได้ ทดสอบบริการด้วย @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/beans.xml"}) และ @Autowired MailManager mailManager; ทำงานได้อย่างถูกต้อง ตัวควบคุมที่ไม่มี @Autowired ด้วยฉันสามารถเปิดโครงการของฉันในเว็บเบราว์เซอร์ได้โดยไม่มีปัญหา /src/main/resources/beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd …

8
วิธีสแกนหลายเส้นทางโดยใช้คำอธิบายประกอบ @ComponentScan
ฉันใช้ Spring 3.1 และบูตแอปพลิเคชันโดยใช้แอตทริบิวต์@Configurationand@ComponentScan เริ่มต้นจริงด้วย new AnnotationConfigApplicationContext(MyRootConfigurationClass.class); คลาส Configuration นี้มีคำอธิบายประกอบ @Configuration @ComponentScan("com.my.package") public class MyRootConfigurationClass และใช้งานได้ดี อย่างไรก็ตามฉันต้องการเจาะจงมากขึ้นเกี่ยวกับแพ็คเกจที่ฉันสแกนดังนั้นฉันจึงลอง @Configuration @ComponentScan("com.my.package.first,com.my.package.second") public class MyRootConfigurationClass อย่างไรก็ตามสิ่งนี้ล้มเหลวโดยมีข้อผิดพลาดบอกฉันว่าไม่พบส่วนประกอบที่ระบุโดยใช้@Componentคำอธิบายประกอบ วิธีที่ถูกต้องในการทำสิ่งที่ฉันต้องการคืออะไร? ขอบคุณ

7
WELD-000072 Managed bean ที่ประกาศขอบเขตการพาสซีฟต้องสามารถส่งผ่านได้
ฉันเขียนโปรแกรมง่ายๆในเว็บฟอร์ม java แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: WELD-000072 ถั่วที่มีการจัดการที่ประกาศขอบเขตการส่งผ่านจะต้องสามารถส่งผ่านได้ Bean: Managed Bean [คลาสBeanPakage.DemoBeans] ที่มีคุณสมบัติ [ @Any @Default @Named] ใครช่วยบอกทีว่าข้อผิดพลาดนี้มาจากไหน import javax.enterprise.context.SessionScoped; import javax.inject.Named; @Named("DemoBeans") @SessionScoped public class DemoBeans { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
90 java  cdi  jboss-weld 

10
คุณกำหนดคลาสของค่าคงที่ใน Java ได้อย่างไร?
สมมติว่าคุณจำเป็นต้องกำหนดคลาสซึ่งทั้งหมดนี้เป็นค่าคงที่ public static final String SOME_CONST = "SOME_VALUE"; วิธีที่ต้องการในการทำเช่นนี้คืออะไร? อินเตอร์เฟซ คลาสนามธรรม ชั้นสุดท้าย ฉันควรใช้อันไหนและทำไม? คำชี้แจงบางคำตอบ: Enums - ฉันจะไม่ใช้ enums ฉันไม่ได้แจกแจงอะไรเลยเพียงแค่รวบรวมค่าคงที่บางส่วนซึ่งไม่เกี่ยวข้องกัน แต่อย่างใด อินเทอร์เฟซ - ฉันจะไม่ตั้งคลาสใด ๆ เป็นคลาสที่ใช้อินเทอร์เฟซ ISomeInterface.SOME_CONSTเพียงแค่ต้องการที่จะใช้อินเตอร์เฟซที่จะเรียกค่าคงที่เช่นดังนั้น:

5
จำลองตัวสร้างด้วยพารามิเตอร์
ฉันมีคลาสดังนี้: public class A { public A(String test) { bla bla bla } public String check() { bla bla bla } } ตรรกะในตัวสร้างA(String test)และcheck()เป็นสิ่งที่ฉันพยายามล้อเลียน ฉันต้องการโทรใด ๆ เช่น: ผลตอบแทนสตริงหุ่นnew A($$$any string$$$).check()"test" ฉันเหนื่อย: A a = mock(A.class); when(a.check()).thenReturn("test"); String test = a.check(); // to this point, everything works. test shows as "tests" …

5
เหตุใด findFirst () จึงโยน NullPointerException หากองค์ประกอบแรกที่พบเป็นโมฆะ
ทำไมถึงโยนjava.lang.NullPointerException? List<String> strings = new ArrayList<>(); strings.add(null); strings.add("test"); String firstString = strings.stream() .findFirst() // Exception thrown here .orElse("StringWhenListIsEmpty"); //.orElse(null); // Changing the `orElse()` to avoid ambiguity รายการแรกstringsคือnullซึ่งเป็นมูลค่าที่ยอมรับได้อย่างสมบูรณ์ นอกจากนี้ยังfindFirst()ส่งคืนตัวเลือกซึ่งเหมาะสมยิ่งกว่าfindFirst()ที่จะสามารถจัดการกับnulls ได้ แก้ไข: อัปเดตorElse()ให้มีความคลุมเครือน้อยลง


4
วิธีการเทียบเคียงโครงการ maven? และมีกี่วิธีที่จะทำให้สำเร็จ?
ฉันยังใหม่กับ Docker และไม่รู้วิธีรันโปรเจ็กต์ java ด้วย maven แม้ว่าฉันจะอ่านเอกสารมากมายและลองหลายวิธีแล้วก็ตาม ฉันควรสร้างภาพโดยใช้Dockerfile? คำสั่งเช่นเมื่อเรียกใช้โครงการ maven ในโฮสต์ด้วยDockerfileอะไร?
90 java  maven  docker 

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