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

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

12
android: การเปลี่ยนรายการเมนูตัวเลือกโดยทางโปรแกรม
สามารถเปลี่ยนรายการเมนูตัวเลือกโดยใช้โปรแกรมได้หรือไม่? ใครช่วยยกตัวอย่างให้ฉันหน่อยได้ไหม นอกจากนี้ฉันต้องการปิดการใช้งานบางรายการเพื่อไม่ให้ฟังคลิกเป็นไปได้หรือไม่?

8
ตัวดำเนินการทางลัด“ or-assignment” (| =) ใน Java
ฉันมีการเปรียบเทียบที่ต้องทำใน Java มานานและฉันอยากรู้ว่าอย่างน้อยหนึ่งอย่างออกมาเป็นจริงหรือไม่ สตริงของการเปรียบเทียบเป็นเวลานานและยากที่จะอ่านดังนั้นฉันโพล่งขึ้นเพื่อให้สามารถอ่านและจะไปใช้ประกอบการทางลัดมากกว่า|=negativeValue = negativeValue || boolean boolean negativeValue = false; negativeValue |= (defaultStock < 0); negativeValue |= (defaultWholesale < 0); negativeValue |= (defaultRetail < 0); negativeValue |= (defaultDelivery < 0); ฉันคาดว่าnegativeValueจะเป็นจริงหากค่า <something> เริ่มต้นใด ๆ เป็นลบ ใช้ได้หรือไม่ มันจะทำตามที่ฉันคาดหวังหรือไม่? ฉันไม่เห็นมันกล่าวถึงบนไซต์ของ Sun หรือ stackoverflow แต่ดูเหมือนว่า Eclipse จะไม่มีปัญหากับมันและโค้ดจะคอมไพล์และรัน ในทำนองเดียวกันถ้าฉันต้องการทำการตัดกันเชิงตรรกะหลาย ๆ จุดฉันสามารถใช้&=แทนได้&&หรือไม่?

4
อะไรคือจุดสำคัญของคลาสตัวเลือกของ Guava
ฉันเพิ่งอ่านเกี่ยวกับเรื่องนี้และเห็นคนที่ใช้คลาสนี้ แต่ในทุกกรณีการใช้งานnullจะได้ผลเช่นกัน - ถ้าไม่เข้าใจง่ายกว่านั้น ใครสามารถยกตัวอย่างที่เป็นรูปธรรมที่Optionalจะบรรลุสิ่งที่nullทำไม่ได้หรือในวิธีที่สะอาดกว่านี้ได้หรือไม่? สิ่งเดียวที่ฉันคิดได้คือใช้กับMapsที่ไม่ยอมรับnullคีย์ แต่ถึงอย่างนั้นก็ทำได้โดยใช้ "การแมป" ด้านข้างของค่า null ใครสามารถให้ข้อโต้แย้งที่น่าเชื่อถือกว่านี้แก่ฉันได้ไหม ขอขอบคุณ.
89 java  generics  guava 

7
เหตุใดจึงไม่โยน NullPointerException
คำชี้แจงสำหรับรหัสต่อไปนี้: StringBuilder sample = new StringBuilder(); StringBuilder referToSample = sample; referToSample.append("B"); System.out.println(sample); สิ่งนี้จะพิมพ์Bเพื่อพิสูจน์sampleและreferToSampleวัตถุอ้างถึงการอ้างอิงหน่วยความจำเดียวกัน StringBuilder sample = new StringBuilder(); StringBuilder referToSample = sample; sample.append("A"); referToSample.append("B"); System.out.println(referToSample); นี่จะเป็นการพิมพ์ABที่พิสูจน์ได้เช่นเดียวกัน StringBuilder sample = new StringBuilder(); StringBuilder referToSample = sample; referToSample = null; referToSample.append("A"); System.out.println(sample); เห็นได้ชัดว่าสิ่งนี้จะNullPointerExceptionเกิดขึ้นเพราะฉันพยายามเรียกappendใช้การอ้างอิงที่เป็นโมฆะ StringBuilder sample = new StringBuilder(); StringBuilder referToSample = sample; …

17
วิธีการใช้งานแอปพลิเคชัน Java แบบอินสแตนซ์เดียว
บางครั้งฉันเห็นแอปพลิเคชั่นมากมายเช่น msn, windows media player และอื่น ๆ ที่เป็นแอปพลิเคชันอินสแตนซ์เดียว (เมื่อผู้ใช้ดำเนินการในขณะที่แอปพลิเคชันกำลังเรียกใช้แอปพลิเคชันใหม่จะไม่สร้างขึ้น) ใน C # ฉันใช้Mutexคลาสสำหรับสิ่งนี้ แต่ฉันไม่รู้วิธีทำใน Java

4
เทคนิคการกลับด้านลูปคืออะไร?
ฉันกำลังอ่านเอกสารที่พูดถึงเทคนิคการเพิ่มประสิทธิภาพคอมไพเลอร์แบบทันเวลา (JIT) สำหรับ Java หนึ่งในนั้นคือ "loop inversion" และเอกสารระบุว่า: คุณแทนที่whileลูปปกติด้วยdo-whileลูป และ do-whileลูปถูกตั้งค่าภายในifอนุประโยค การเปลี่ยนนี้ทำให้กระโดดน้อยลงสองครั้ง การผกผันของลูปทำงานอย่างไรและเพิ่มประสิทธิภาพเส้นทางรหัสของเราอย่างไร หมายเหตุ: จะดีมากถ้าใครสักคนสามารถอธิบายด้วยตัวอย่างของโค้ด Java และวิธีที่ JIT ปรับให้เหมาะสมกับโค้ดเนทีฟและเหตุใดจึงเหมาะสมที่สุดในโปรเซสเซอร์สมัยใหม่

8
รับ enum ที่เกี่ยวข้องกับค่า int
ก่อนหน้านี้ฉันมี LegNo enums ของฉันที่กำหนดไว้ง่ายๆว่า: NO_LEG, LEG_ONE, LEG_TWO และด้วยการโทรreturn LegNo.values()[i];ฉันสามารถรับค่าที่เกี่ยวข้องกับแต่ละ enum แต่ตอนนี้ฉันตัดสินใจแล้วว่าฉันต้องการให้LegNoenum NO_LEGเป็น int -1 แทนที่จะเป็น 0 ดังนั้นฉันจึงตัดสินใจใช้ตัวสร้างส่วนตัวเพื่อเริ่มต้นและตั้งค่า int NO_LEG(-1), LEG_ONE(1), LEG_TWO(2); private LegNo(final int leg) { legNo = leg; } สิ่งเดียวตอนนี้ก็คือเพราะฉันทำแบบนี้วิธีนี้values()จะไม่ได้ผลกับNO_LEGenum ฉันจะรับ enum ที่เกี่ยวข้องกับ int ได้อย่างไร มีวิธีใดที่มีประสิทธิภาพในการทำสิ่งนี้นอกเหนือจากการใช้คำสั่ง case switch หรือ if-elseif-elseif ฉันเห็นคำถาม SO มากมายเกี่ยวกับการรับค่า int จาก enum แต่ฉันกลับหลัง
89 java  enums 

10
ข้อผิดพลาด Java: Implicit super constructor ไม่ได้กำหนดไว้สำหรับตัวสร้างเริ่มต้น
ฉันมีโค้ด Java ง่ายๆที่มีลักษณะคล้ายกับสิ่งนี้ในโครงสร้าง: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String someString) { super(someString); } public String getName() { return "name value for ASubClass"; } } ฉันจะมีคลาสย่อยไม่กี่คลาสBaseClassแต่ละคลาสใช้getName()วิธีการในแบบของตัวเอง ( รูปแบบวิธีเทมเพลต ) …

8
จะสร้าง jar ที่มีไลบรารีภายนอกที่รวมอยู่ใน Eclipse ได้อย่างไร?
ฉันทำโครงการที่เชื่อมต่อกับฐานข้อมูล (MySQL) เสร็จแล้ว ตอนนี้ฉันต้องการส่งออกโครงการเป็นขวดโหล แต่ฉันไม่รู้ว่าจะรวมการอ้างอิงภายนอกอย่างไร? มีวิธีใดบ้างในการทำ Eclipse หรือฉันควรใช้สคริปต์ใด ๆ สำหรับสิ่งนั้น?
89 java  eclipse  jar 

10
ประเมินรายการมีสตริงใน JSTL
ฉันต้องการซ่อนองค์ประกอบหากมีค่าบางอย่างอยู่ใน JSP ค่าจะถูกเก็บไว้ในรายการดังนั้นฉันจึงลอง: <c:if test="${ mylist.contains( myValue ) }">style='display:none;'</c:if> แต่มันไม่ได้ผล ฉันจะประเมินได้อย่างไรว่ารายการมีค่าใน JSTL รายการและค่าเป็นสตริง
89 java  jsp  jstl 

6
Java: ตรวจสอบว่าอาร์กิวเมนต์บรรทัดคำสั่งเป็นโมฆะหรือไม่
ฉันต้องการตรวจสอบข้อผิดพลาดบางอย่างเพื่อหาอาร์กิวเมนต์บรรทัดคำสั่งของฉัน public static void main(String[] args) { if(args[0] == null) { System.out.println("Proper Usage is: java program filename"); System.exit(0); } } อย่างไรก็ตามสิ่งนี้จะส่งคืนอาร์เรย์นอกขอบเขตข้อยกเว้นซึ่งเหมาะสม ฉันแค่มองหาการใช้งานที่เหมาะสม

5
เหตุใดเราจึงใช้ DataSource แทน DriverManager
ฉันกำลังอ่านข้อกำหนด Java JDBC (ข้อ 4) และพบคำสั่งนี้: แหล่งข้อมูล - อินเทอร์เฟซนี้ถูกนำมาใช้ใน JDBC 2.0 Optional Package API เป็นที่ต้องการมากกว่า DriverManager เนื่องจากช่วยให้รายละเอียดเกี่ยวกับแหล่งข้อมูลพื้นฐานโปร่งใสกับแอปพลิเคชัน สิ่งที่ฉันพยายามทำความเข้าใจคือความแตกต่างระหว่าง a Connectionและ a DataSourceและเหตุใดจึงมีอยู่ ฉันหมายถึงบล็อกด้านบนบอกว่ารายละเอียดเกี่ยวกับแหล่งข้อมูลนั้นโปร่งใสสำหรับแอปพลิเคชัน แต่จะไม่ทำให้คุณสมบัติฐานข้อมูลภายนอกเช่นชื่อผู้ใช้รหัสผ่าน url ฯลฯ ในไฟล์คุณสมบัติแล้วใช้ DriverManager ทำงานในลักษณะเดียวกันหรือไม่ และDataSourceอินเทอร์เฟซถูกสร้างขึ้นเพื่อให้มีวิธีส่งคืนการเชื่อมต่อทั่วไปที่สามารถรวมกันได้หรือไม่? ใน Java EE แอ็พพลิเคชันเซิร์ฟเวอร์ใช้อินเทอร์เฟซนี้และแอปพลิเคชันที่ปรับใช้เพื่อให้มีการอ้างอิงไปยังแหล่งข้อมูลแทนการเชื่อมต่อหรือไม่
89 java  jdbc  datasource 

6
แบบแจ็คสัน + บิลเดอร์?
ฉันต้องการให้แจ็คสันยกเลิกการกำหนดค่าคลาสด้วยตัวสร้างต่อไปนี้: public Clinic(String name, Address address) การแยกอาร์กิวเมนต์แรกเป็นเรื่องง่าย ปัญหาคือ Address ถูกกำหนดเป็น: public class Address { private Address(Map<LocationType, String> components) ... public static class Builder { public Builder setCity(String value); public Builder setCountry(String value); public Address create(); } } และถูกสร้างขึ้นเช่นนี้: new Address.Builder().setCity("foo").setCountry("bar").create(); มีวิธีรับคู่คีย์ - ค่าจาก Jackson เพื่อสร้าง Address ด้วยตัวเองหรือไม่? หรือมีวิธีทำให้ Jackson ใช้คลาส …
89 java  json  jersey  jackson 

9
(String) หรือ. toString ()?
ฉันมีวิธีการที่มีObject oพารามิเตอร์ ในวิธีนี้ฉันรู้ว่ามีStringใน "o" ซึ่งไม่เป็นโมฆะ ไม่จำเป็นต้องตรวจสอบหรือทำอย่างอื่น ฉันต้องปฏิบัติต่อมันเหมือนกับStringสิ่งของ แค่อยากรู้อยากเห็น - อะไรถูกกว่า - โยนให้Stringหรือใช้Object.toString()? หรือมันเหมือนกันตามเวลา - / cpu- / mem- ราคา? อัปเดต: วิธีนี้ยอมรับObjectเนื่องจากเป็นการใช้งานอินเทอร์เฟซ ไม่มีวิธีใดในการเปลี่ยนประเภทพารามิเตอร์ และมันไม่ได้nullเลย ฉันแค่อยากจะบอกว่าฉันไม่จำเป็นต้องตรวจสอบความว่างเปล่าหรือความว่างเปล่า ในกรณีของฉันมักจะมีสตริงที่ไม่ว่างเปล่า
89 java  casting 


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