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

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

30
Java Hashmap: วิธีรับคีย์จากค่า
หากฉันมีค่า"foo"และ a HashMap<String> ftwที่ftw.containsValue("foo")ส่งคืนtrueฉันจะรับคีย์ที่เกี่ยวข้องได้อย่างไร ฉันต้องวนซ้ำ hashmap หรือไม่ วิธีที่ดีที่สุดในการทำเช่นนั้นคืออะไร?
451 java  hashmap 

21
“ ไฟล์ลายเซ็นไม่ถูกต้อง” เมื่อพยายามเรียกใช้. jar
โปรแกรมภาษาจาวาของฉันถูกทำแพคเกจในไฟล์ jar และใช้ประโยชน์จากไลบรารี่ไลบรารี, ปราสาทเด้ง รหัสของฉันรวบรวมได้ดี แต่การเรียกใช้ jar นำไปสู่ข้อผิดพลาดต่อไปนี้: ข้อยกเว้นในเธรด "main" java.lang.SecurityException: สรุปไฟล์ลายเซ็นไม่ถูกต้องสำหรับแอตทริบิวต์หลัก Manifest ฉันค้นหามากกว่าหนึ่งชั่วโมงเพื่อค้นหาคำอธิบายและพบว่ามีค่าน้อยมาก หากใครเคยเห็นข้อผิดพลาดนี้มาก่อนและสามารถให้ความช่วยเหลือฉันจะต้องรับผิดชอบ
450 java  jar  executable-jar 

10
Spring @Transactional - การแยกการเผยแพร่
บางคนสามารถอธิบายพารามิเตอร์การแยกและการเผยแพร่ที่ใช้สำหรับ@Transactionalคำอธิบายประกอบผ่านตัวอย่างในโลกแห่งความจริงได้หรือไม่ โดยทั่วไปเมื่อใดและทำไมฉันควรเลือกที่จะเปลี่ยนค่าเริ่มต้น

14
วิธีทดสอบหน่วยนามธรรมชั้นเรียน: ขยายด้วยต้นขั้ว?
ฉันสงสัยว่าจะทดสอบหน่วยนามธรรมได้อย่างไรและคลาสที่ขยายคลาสนามธรรม ฉันควรจะทดสอบคลาสนามธรรมโดยขยายคลาสนั้นออกวิธีที่เป็นนามธรรมแล้วทดสอบวิธีคอนกรีตทั้งหมดหรือไม่ จากนั้นทดสอบวิธีที่ฉันเขียนทับและทดสอบวิธีนามธรรมในการทดสอบหน่วยสำหรับวัตถุที่ขยายคลาสนามธรรมของฉันหรือไม่ ฉันควรจะมีกรณีทดสอบนามธรรมที่สามารถใช้ในการทดสอบวิธีการของระดับนามธรรมและขยายชั้นนี้ในกรณีทดสอบของฉันสำหรับวัตถุที่ขยายระดับนามธรรม? โปรดทราบว่าชั้นนามธรรมของฉันมีวิธีที่เป็นรูปธรรมบางอย่าง

6
Mockito สามารถจับข้อโต้แย้งของวิธีที่เรียกหลาย ๆ ครั้งได้หรือไม่?
ฉันมีวิธีที่ได้รับการเรียกสองครั้งและฉันต้องการจับอาร์กิวเมนต์ของการเรียกใช้เมธอดที่สอง นี่คือสิ่งที่ฉันได้ลอง: ArgumentCaptor<Foo> firstFooCaptor = ArgumentCaptor.forClass(Foo.class); ArgumentCaptor<Foo> secondFooCaptor = ArgumentCaptor.forClass(Foo.class); verify(mockBar).doSomething(firstFooCaptor.capture()); verify(mockBar).doSomething(secondFooCaptor.capture()); // then do some assertions on secondFooCaptor.getValue() แต่ฉันได้รับTooManyActualInvocationsข้อยกเว้นเนื่องจาก Mockito คิดว่าdoSomethingควรเรียกเพียงครั้งเดียว ฉันจะตรวจสอบข้อโต้แย้งของการโทรครั้งที่สองได้doSomethingอย่างไร?

7
จุดของตัวดำเนินการไดมอนด์ (<>) ใน Java 7 คืออะไร
ตัวดำเนินการไดมอนด์ใน java 7 อนุญาตให้ใช้โค้ดดังนี้: List&lt;String&gt; list = new LinkedList&lt;&gt;(); อย่างไรก็ตามใน Java 5/6 ฉันสามารถเขียน: List&lt;String&gt; list = new LinkedList(); ความเข้าใจของฉันเกี่ยวกับการลบประเภทคือสิ่งเหล่านี้เหมือนกันทุกประการ (ทั่วไปจะถูกลบออกที่รันไทม์อยู่แล้ว) ทำไมต้องกังวลกับเพชรเลย? ฟังก์ชั่น / ประเภทความปลอดภัยใหม่อนุญาตให้มีอะไรบ้าง ถ้ามันไม่ได้ผลการทำงานใหม่ ๆ ทำไมพวกเขาพูดถึงมันเป็นคุณสมบัติ? ความเข้าใจของฉันเกี่ยวกับแนวคิดนี้มีข้อบกพร่องหรือไม่

8
Tomcat, JBoss และ Glassfish ต่างกันอย่างไร
ฉันเริ่มมองหา Enterprise Java และหนังสือที่ฉันกำลังกล่าวถึงว่าจะใช้ JBoss Netbeans มาพร้อมกับ Glassfish ฉันเคยใช้ Tomcat มาแล้ว โปรแกรมทั้งสามนี้มีความแตกต่างกันอย่างไร?

23
วิธีง่ายๆในการเขียนเนื้อหาของ Java InputStream ไปยัง OutputStream
ฉันประหลาดใจที่พบว่าวันนี้ฉันไม่สามารถติดตามวิธีง่ายๆในการเขียนเนื้อหาของ a InputStreamไปยังOutputStreamใน Java เห็นได้ชัดว่ารหัสบัฟเฟอร์ไบต์ไม่ยากที่จะเขียน แต่ฉันสงสัยว่าฉันเพิ่งหายไปบางสิ่งบางอย่างที่จะทำให้ชีวิตของฉันง่ายขึ้น (และรหัสชัดเจนขึ้น) ดังนั้นเมื่อได้รับInputStream inและOutputStream outมีวิธีที่ง่ายกว่าในการเขียนต่อไปนี้หรือไม่? byte[] buffer = new byte[1024]; int len = in.read(buffer); while (len != -1) { out.write(buffer, 0, len); len = in.read(buffer); }
445 java  io  stream 

4
วิธีการหลีกเลี่ยง% ใน String รูปแบบ?
ฉันกำลังจัดเก็บแบบสอบถาม SQL ในไฟล์ strings.xml ของฉันและฉันต้องการใช้String.Formatเพื่อสร้างสตริงสุดท้ายในรหัส SELECTคำสั่งใช้เหมือนอะไรเช่นนี้ SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%' เพื่อจัดรูปแบบที่ฉันแทนที่ 'บางสิ่งบางอย่าง' ด้วย% 1 $ s ดังนั้นจึงกลายเป็น: SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\' ฉันหนีเครื่องหมายคำพูดเดี่ยวด้วยแบ็กสแลช อย่างไรก็ตามฉันไม่สามารถหลีกเลี่ยงเครื่องหมาย% ได้ ฉันจะรวมคำสั่ง like ในไฟล์ strings.xml ของฉันได้อย่างไร
445 java  android  string  syntax 

21
คำหลัก 'คงที่' ทำอะไรในชั้นเรียน
เพื่อเป็นการเฉพาะฉันได้ลองใช้รหัสนี้: package hello; public class Hello { Clock clock = new Clock(); public static void main(String args[]) { clock.sayTime(); } } แต่มันทำให้เกิดข้อผิดพลาด ไม่สามารถเข้าถึงฟิลด์ที่ไม่คงที่ในวิธีหลักคงที่ ดังนั้นฉันจึงเปลี่ยนการประกาศของclockนี้: static Clock clock = new Clock(); และมันก็ใช้งานได้ การใส่คำหลักนั้นไว้ข้างหน้าหมายถึงอะไร? มันจะทำอะไรและ / หรือ จำกัด ในแง่ของสิ่งที่สามารถทำได้กับวัตถุนั้น?

11
แตกต่างกันระหว่าง parseInt () และ valueOf () ใน java?
เป็นวิธีการที่parseInt()แตกต่างจากvalueOf()? พวกเขาดูเหมือนจะทำสิ่งเดียวกันกับผม (ยังไปสำหรับparseFloat(), parseDouble(), parseLong()ฯลฯ วิธีการที่พวกเขาแตกต่างจากLong.valueOf(string)? นอกจากนี้หนึ่งในสิ่งเหล่านี้เป็นที่นิยมและใช้บ่อยโดยการประชุม?
443 java 

30
จะพิมพ์ XML จาก Java ได้อย่างไร?
ฉันมี Java String ที่มี XML โดยไม่มีการป้อนบรรทัดหรือการเยื้อง ฉันต้องการที่จะแปลงเป็นสตริงด้วย XML ที่จัดรูปแบบได้ ฉันจะทำสิ่งนี้ได้อย่างไร String unformattedXml = "&lt;tag&gt;&lt;nested&gt;hello&lt;/nested&gt;&lt;/tag&gt;"; String formattedXml = new [UnknownClass]().format(unformattedXml); หมายเหตุ: การป้อนข้อมูลของฉันเป็นสตริง การส่งออกของฉันเป็นสตริง (พื้นฐาน) ผลการจำลอง: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;root&gt; &lt;tag&gt; &lt;nested&gt;hello&lt;/nested&gt; &lt;/tag&gt; &lt;/root&gt;
443 java  xml  pretty-print 


14
วิธีตั้งโปรแกรม drawableLeft บนปุ่ม Android โดยทางโปรแกรม
ฉันกำลังสร้างปุ่มแบบไดนามิก ฉันจัดรูปแบบพวกเขาโดยใช้ XML ก่อนและฉันพยายามที่จะใช้ XML ด้านล่างและทำให้มันเป็นโปรแกรม &lt;Button android:id="@+id/buttonIdDoesntMatter" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="buttonName" android:drawableLeft="@drawable/imageWillChange" android:onClick="listener" android:layout_width="fill_parent"&gt; &lt;/Button&gt; นี่คือสิ่งที่ฉันมี ฉันสามารถทำทุกอย่างได้ linear = (LinearLayout) findViewById(R.id.LinearView); Button button = new Button(this); button.setText("Button"); button.setOnClickListener(listener); button.setLayoutParams( new LayoutParams( android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT ) ); linear.addView(button);

13
Google Gson - ยกเลิกการลบรายการ <class> รายการวัตถุหรือไม่ (ประเภททั่วไป)
ฉันต้องการถ่ายโอนวัตถุรายการผ่าน Google Gson แต่ฉันไม่ทราบวิธียกเลิกการกำหนดประเภททั่วไป สิ่งที่ฉันลองหลังจากดูที่คำตอบนี้ (คำตอบของ BalusC): MyClass mc = new Gson().fromJson(result, new List&lt;MyClass&gt;(){}.getClass()); แต่จากนั้นฉันได้รับข้อผิดพลาดใน eclipse ที่พูดว่า "The new list () {} ต้องใช้วิธีนามธรรมที่สืบทอดมา ... " และถ้าฉันใช้การแก้ไขอย่างรวดเร็วฉันจะได้มอนสเตอร์มากกว่า 20 วิธี ฉันค่อนข้างมั่นใจว่ามีวิธีแก้ปัญหาที่ง่ายกว่า แต่ฉันก็หาไม่เจอ! แก้ไข: ตอนนี้ฉันมี Type listType = new TypeToken&lt;List&lt;MyClass&gt;&gt;() { }.getType(); MyClass mc = new Gson().fromJson(result, listType); อย่างไรก็ตามฉันได้รับข้อยกเว้นต่อไปนี้ที่บรรทัด "fromJson": java.lang.NullPointerException at org.apache.harmony.luni.lang.reflect.ListOfTypes.length(ListOfTypes.java:47) …
441 java  json  generics  gson 

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