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

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

8
java.nio.file.Path สำหรับรีซอร์ส classpath
มี API เพื่อรับ classpath ทรัพยากร (เช่นสิ่งที่ฉันได้รับจากClass.getResource(String)) เป็นjava.nio.file.Path? เป็นการดีที่ฉันต้องการใช้PathAPI ใหม่ที่แปลกใหม่กับแหล่งข้อมูล classpath
143 java  java-7  nio2 


16
Kotlin-android: ฐานข้อมูลอ้างอิงที่ไม่ได้รับการแก้ไข
ฉันมีคลาสแฟรกเมนต์ต่อไปนี้เขียนใน Java โดยใช้ไลบรารี databinding ใหม่ import com.example.app.databinding.FragmentDataBdinding; public class DataFragment extends Fragment { @Nullable private FragmentDataBinding mBinding; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_data, container, false); return mBinding.getRoot(); } } มันรวบรวมและทำงานได้ดี ฉันพยายามเขียนมันใหม่ใน Kotlin และทำสิ่งต่อไปนี้: import com.example.app.databinding.FragmentDataBdinding class ProfileFragment : Fragment() { private …

12
คุณใช้แบบแผนการตั้งชื่อแพคเกจใดสำหรับโครงการส่วนตัว / งานอดิเรกใน Java
ฉันคุ้นเคยกับการตั้งชื่อแพ็คเกจ Java มาตรฐานของการใช้ชื่อโดเมนเพื่อสร้างชื่อแพ็คเกจที่ไม่ซ้ำกัน (เช่นแพ็คเกจ com.stackoverflow.widgets ) อย่างไรก็ตามฉันไม่เคยเห็นคำแนะนำเกี่ยวกับวิธีเลือกชื่อแพ็คเกจสำหรับโครงการส่วนบุคคล ฉันคิดว่าเป็นเพราะนี่เป็นเรื่องของรสนิยมส่วนตัวจริงๆ ดังนั้นคุณจะเลือกชื่อแพคเกจสำหรับโครงการส่วนบุคคลที่จะไม่ทำให้เป็นเรื่องการผลิตได้อย่างไร (คุณอาจทดลองใช้เฟรมเวิร์กใหม่ในเวลาว่าง) สมมติว่าคุณไม่มีเว็บไซต์ส่วนตัวที่มีโดเมนที่คุณสามารถใช้เพื่อสร้างโครงสร้างแพ็คเกจของคุณคุณจะทำอะไร (หรือจะ) คุณมีระบบลอจิคัลในการสร้างชื่อแพ็กเกจใหม่สำหรับโครงการงานอดิเรกหรือคุณเพียงแค่ใช้ชื่อแพคเกจที่ใช้งานง่ายเช่นmypackage ? เนื่องจากฉันแค่อยากรู้ว่าความคิดของผู้คนต่างกันอย่างไรฉันจึงทำให้นี่เป็นวิกิชุมชน สำหรับฉันเป็นการส่วนตัวฉันไม่เคยคิดมาก แต่ฉันอยากจะเล่นกับWicketคืนนี้และมันเกิดขึ้นกับฉันว่าฉันไม่มีความคิดที่ชัดเจนว่าฉันต้องการจัดระเบียบโครงการงานอดิเรกของฉันอย่างไร การกำหนดชื่อแพคเกจที่แยกต่างหากและแตกต่างกันสำหรับโครงการงานอดิเรก (อย่างน้อยก็ในใจของฉัน) จะทำหน้าที่เป็นวิธีที่ดีในการเก็บรหัสส่วนตัวและที่เกี่ยวข้องกับงานไว้อย่างชัดเจน ฉันกำลังคิดถึงแผนการตั้งชื่อแบบลำดับชั้นที่เรียบง่ายเพื่อเก็บซอร์สสำหรับโปรเจ็กต์ส่วนตัวของฉันไว้ในโฟลเดอร์รูทเดียว: ใช้myprojectsเป็นโฟลเดอร์รูท ผนวกชื่อโครงการ เพิ่มชื่อแพ็คเกจย่อยเพิ่มเติม ดังนั้นโครงการประตูของฉันจะอยู่ในแพ็คเกจmyprojects.learningwicketและการทดสอบหน่วยจะอยู่ในแพ็คเกจmyprojects.learningwicket.tests(ตัวอย่าง)

11
“ Java DateFormat ไม่ใช่ threadsafe” สิ่งนี้นำไปสู่อะไร
ทุกคนควรระวังเกี่ยวกับ Java DateFormat ที่ไม่ได้เป็นเธรดที่ปลอดภัยและฉันเข้าใจแนวคิดในทางทฤษฎี แต่ฉันไม่สามารถมองเห็นปัญหาที่แท้จริงที่เราสามารถเผชิญได้เนื่องจากปัญหานี้ บอกว่าฉันเป็นเขตข้อมูล DateFormat ในชั้นเรียนและมีการใช้วิธีเดียวกันในชั้นเรียน (การจัดรูปแบบวันที่) ในสภาพแวดล้อมแบบมัลติเธรด สาเหตุนี้จะ: ข้อยกเว้นใด ๆ เช่นข้อยกเว้นรูปแบบ ความคลาดเคลื่อนของข้อมูล ปัญหาอื่น ๆ ? นอกจากนี้โปรดอธิบายว่าทำไม

4
ทำความเข้าใจกับ Spliterator, Collector และ Stream ใน Java 8
ฉันมีปัญหาในการเข้าใจStreamอินเตอร์เฟสใน Java 8 โดยเฉพาะอย่างยิ่งที่เกี่ยวข้องกับSpliteratorและCollectorอินเตอร์เฟส ปัญหาของฉันคือฉันไม่เข้าใจSpliteratorและCollectorอินเทอร์เฟซเลยและด้วยเหตุนี้Streamอินเทอร์เฟซยังค่อนข้างคลุมเครือสำหรับฉัน อะไรคือ a Spliteratorและ a Collectorและฉันจะใช้ได้อย่างไร หากฉันยินดีที่จะเขียนของตัวเองSpliteratorหรือCollector(และอาจเป็นของฉันเองStreamในกระบวนการนั้น) ฉันควรทำอย่างไรและไม่ควรทำอย่างไร ฉันอ่านตัวอย่างกระจัดกระจายไปทั่วเว็บ แต่เนื่องจากทุกอย่างที่นี่ยังใหม่และอาจมีการเปลี่ยนแปลงตัวอย่างและแบบฝึกหัดก็ยังกระจัดกระจายมาก

14
มีวิธีที่สง่างามที่จะทำให้ทุกวิธีในชั้นเรียนเริ่มต้นด้วยรหัสบล็อกหนึ่ง ๆ หรือไม่?
ฉันมีชั้นเรียนที่ทุกวิธีเริ่มต้นด้วยวิธีเดียวกัน: class Foo { public void bar() { if (!fooIsEnabled) return; //... } public void baz() { if (!fooIsEnabled) return; //... } public void bat() { if (!fooIsEnabled) return; //... } } มีวิธีที่ดีที่จะต้องการ (และหวังว่าจะไม่เขียนในแต่ละครั้ง) fooIsEnabledส่วนหนึ่งสำหรับวิธีการสาธารณะในชั้นเรียนหรือไม่?


4
แปลง JsonNode เป็น POJO
นี้อาจดูเหมือนผิดปกติเล็ก ๆ น้อย ๆ แต่ฉันกำลังมองหาวิธีที่มีประสิทธิภาพในการแปลง / แมปเป็นJsonNodePOJO ฉันเก็บข้อมูลโมเดลของฉันไว้ในไฟล์ json และฉันต้องสนับสนุนโมเดลของฉันสองสามรุ่น สิ่งที่ฉันทำคือโหลดไฟล์ json ในหน่วยความจำใน JsonNode ใช้กลยุทธ์การกำหนดรุ่นสองสามอย่างเพื่อให้ตรงกับรุ่นล่าสุดของรุ่นของฉัน ObjectMapper mapper = new ObjectMapper(); BufferedReader fileReader = new BufferedReader(new FileReader(projPath)); JsonNode rootNode = mapper.readTree(fileReader); //Upgrade our file in memory applyVersioningStrategy(rootNode); ProjectModel project = mapJsonNodeToProject(rootNode); หากไม่มีวิธีที่เร็วกว่าในการทำเช่นนั้นฉันอาจจะลงเอยด้วยตนเองเพียงแค่นำJsonNodesโมเดลของฉันไปใช้ด้วยตนเอง
143 java  json  jackson 

8
ฉันจะขัดจังหวะวิธี ServerSocket accept () ได้อย่างไร?
ในเธรดหลักของฉันฉันมีการwhile(listening)วนรอบซึ่งเรียกaccept()บนวัตถุ ServerSocket ของฉันจากนั้นเริ่มเธรดไคลเอนต์ใหม่และเพิ่มลงในคอลเลกชันเมื่อยอมรับไคลเอนต์ใหม่ ฉันยังมีเธรดผู้ดูแลระบบที่ฉันต้องการใช้ในการออกคำสั่งเช่น 'exit' ซึ่งจะทำให้เธรดไคลเอนต์ทั้งหมดถูกปิดตัวเองปิดตัวเองและปิดเธรดหลักโดยเปลี่ยนการฟังเป็นเท็จ อย่างไรก็ตามการaccept()โทรในwhile(listening)บล็อกวนซ้ำและดูเหมือนจะไม่มีทางขัดขวางดังนั้นจึงไม่สามารถตรวจสอบเงื่อนไขในขณะที่อีกครั้งและโปรแกรมไม่สามารถออกได้! มีวิธีที่ดีกว่าในการทำเช่นนี้? หรือวิธีการขัดจังหวะวิธีการบล็อก?

4
ความแตกต่างระหว่างเมธอด getRequestURI และ getPathInfo ใน HttpServletRequest คืออะไร
ฉันกำลังสร้างส่วนควบคุมด้านหน้าที่เรียบง่ายและมีน้ำหนักเบามาก ฉันต้องจับคู่พา ธ คำขอกับตัวจัดการที่แตกต่างกัน (การกระทำ) เพื่อเลือกอันที่ถูกต้อง ในเครื่องท้องถิ่นของฉันHttpServletRequest.getPathInfo()และHttpServletRequest.getRequestURI()ส่งคืนผลลัพธ์เดียวกัน แต่ฉันไม่แน่ใจว่าสิ่งที่พวกเขาจะกลับมาในสภาพแวดล้อมการผลิต ดังนั้นความแตกต่างระหว่างวิธีการเหล่านี้กับสิ่งที่ฉันควรเลือกคืออะไร
143 java  servlets 

4
จะระบุประเภทฟังก์ชั่นสำหรับวิธี void (ไม่ใช่ Void) ใน Java8 ได้อย่างไร?
ฉันกำลังเล่นกับ Java 8 เพื่อหาวิธีการทำงานในฐานะพลเมืองชั้นหนึ่ง ฉันมีตัวอย่างต่อไปนี้: package test; import java.util.*; import java.util.function.*; public class Test { public static void myForEach(List<Integer> list, Function<Integer, Void> myFunction) { list.forEach(functionToBlock(myFunction)); } public static void displayInt(Integer i) { System.out.println(i); } public static void main(String[] args) { List<Integer> theList = new ArrayList<>(); theList.add(1); theList.add(2); theList.add(3); theList.add(4); theList.add(5); …
143 java  java-8 

7
Java 8 Streams - รวบรวม vs ลด
เมื่อคุณจะใช้collect()VS reduce()? มีใครบ้างที่เป็นตัวอย่างที่ดีและเป็นรูปธรรมว่าเมื่อใดควรไปทางเดียวหรือดีกว่า javadoc กล่าวว่าการเก็บรวบรวม () การลดลงแน่นอน ระบุว่าเป็นการลดที่ไม่แน่นอนฉันคิดว่ามันต้องมีการประสาน (ภายใน) ซึ่งในทางกลับกันอาจเป็นอันตรายต่อประสิทธิภาพการทำงาน สันนิษฐานได้ว่าreduce()เป็นแบบขนานที่พร้อมใช้งานมากขึ้นโดยไม่ต้องสร้างโครงสร้างข้อมูลใหม่เพื่อให้ได้รับผลตอบแทนหลังจากทุกขั้นตอนในการลด ข้อความข้างต้นเป็นการคาดเดาอย่างไรก็ตามและฉันรักผู้เชี่ยวชาญในการพูดสอดที่นี่
143 java  java-8  java-stream 

6
สร้างคู่สุ่มในช่วง
ฉันมีสองคู่ดังต่อไปนี้ double min = 100; double max = 101; และด้วยตัวสร้างแบบสุ่มฉันต้องสร้างค่าสองเท่าระหว่างช่วงของ min และ max Random r = new Random(); r.nextDouble(); แต่ไม่มีอะไรที่นี่ที่เราสามารถระบุช่วงได้
143 java  random 

10
ฉันจะค้นหา MySQL URL โฮสต์พอร์ตและชื่อผู้ใช้ได้อย่างไร
ฉันต้องการค้นหาชื่อผู้ใช้ MySQL ของฉัน เมื่อฉันเปิดไคลเอนต์บรรทัดคำสั่ง MySQL จะถามรหัสผ่านของฉันเท่านั้น ฉันจำชื่อผู้ใช้ไม่ได้ และสำหรับการเชื่อมต่อกับ JDBC ฉันต้องการ URL โฮสต์และหมายเลขพอร์ต ฉันจะหาสิ่งเหล่านี้ได้จากที่ไหน?

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