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

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

1
remove หากรายละเอียดการใช้งาน
ArrayList::removeIfฉันมีคำถามรายละเอียดการดำเนินงานขนาดเล็กที่ฉันไม่เข้าใจใน ฉันไม่คิดว่าฉันจะทำได้อย่างที่ไม่เคยมีมาก่อน เป็นเช่น: การดำเนินการนั้นเป็นจำนวนมาก ซึ่งแตกต่างจากremove ArrayList::removeตัวอย่างควรทำให้เข้าใจง่ายขึ้น สมมติว่าฉันมีรายการนี้: List<Integer> list = new ArrayList<>(); // 2, 4, 6, 5, 5 list.add(2); list.add(4); list.add(6); list.add(5); list.add(5); และฉันต้องการลบองค์ประกอบทุกอย่างที่เท่ากัน ฉันทำได้: Iterator<Integer> iter = list.iterator(); while (iter.hasNext()) { int elem = iter.next(); if (elem % 2 == 0) { iter.remove(); } } หรือ : list.removeIf(x -> …
9 java  java-8  iterator 

2
ฟังก์ชัน Javascript ที่เขียนใหม่ใน Java ให้ผลลัพธ์ที่แตกต่าง
มีฟังก์ชัน Javascript ที่ฉันพยายามเขียนใน Java: function normalizeHash(encondindRound2) { if (encondindRound2 < 0) { encondindRound2 = (encondindRound2 & 0x7fffffff) + 0x80000000; } return encondindRound2 % 1E6; } การปรับ Java ของฉัน: public long normalizeHash(long encondindRound2) { if (encondindRound2 < 0) { encondindRound2 = (((int) encondindRound2) & 0x7fffffff) + 0x80000000; } return (((int) encondindRound2) …

2
ไม่พบคำสั่ง Synology Scheduler .sh java
ฉันมีสคริปต์ทุบตีที่ทำงานเฉพาะคือการดำเนินการไฟล์ jar sms.sh java -jar /volume1/homes/jar/smssender.jar การใช้ Synology NAS ของฉันฉันตั้งค่างาน การเพิ่มคำสั่งเพื่อเรียกใช้งานสคริปต์ทุบตี การเพิ่มเอาต์พุตบันทึก ดำเนินงานใหม่ของฉัน การตรวจสอบบันทึกเพื่อดูข้อผิดพลาดต่อไปนี้: /volume1/homes/jar/sms.sh: บรรทัด 1: ไม่พบคำสั่ง java: กำลังตรวจสอบเวอร์ชั่น / การติดตั้ง Java: การตรวจสอบการดำเนินการของสคริปต์ sh ด้วยตนเอง (ทำงาน): ใครที่มีกรณีแปลก ๆ นี้ การแก้ไขปัญหาใด ๆ / ความคิด? ฉันเหนื่อย กำลังรีสตาร์ท NAS ของฉัน ถอนการติดตั้ง / ติดตั้งแพ็คเกจ Java8 แต่ไม่มีใครทำงาน
9 java  bash  synology 

5
แอพ spring boot พื้นฐานไม่ทำงานแสดง: ไม่สามารถรีเฟรชข้อมูลสดจากกระบวนการ xxxx
ฉันเป็นผู้เริ่มต้นสำหรับการบูตฤดูใบไม้ผลิ ฉันเริ่มต้นโครงการใหม่และพยายามเรียกใช้ แต่ไม่ทำงานสำเร็จ เมื่อฉันเรียกใช้สิ่งนี้เป็นแอพพลิเคชั่นสปริงบูตมันจะเริ่มทำงาน ในแถบคอมไพเลอร์ / สถานะด้านล่างจะแสดงการประมวลผลและลองใหม่ มันเกิน 10 ครั้งและเกิดข้อผิดพลาดต่อไปนี้ ไม่สามารถรีเฟรชข้อมูลสดจากกระบวนการ xxxx รายละเอียดเพิ่มเติมที่นี่ TanmayTestApplication.java package com.example.tanmay_test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class TanmayTestApplication { public static void main(String[] args) { SpringApplication.run(TanmayTestApplication.class, args); } } DemoControler.java package com.example.cntr; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class DemoControler { @RequestMapping(path = "/index") …

3
Java Stream: กรองด้วยหลายช่วง
ฉันกำลังพยายามกรองทรัพยากรและไม่รวมองค์ประกอบบางอย่างตามเขตข้อมูล หากต้องการยกเว้นฉันมีชุด (ที่มีรหัสที่ต้องยกเว้น) และรายการ (มีรหัสช่วงที่ต้องแยกออกหลายช่วง) ฉันเขียนตรรกะด้านล่างและฉันไม่พอใจกับตรรกะตัวกรองที่สอง มีวิธีที่ดีกว่าที่เราสามารถทำได้ด้วย Java 8 หรือไม่? ฉันต้องทำสิ่งเดียวกันเพื่อรวมช่วงต่างๆด้วย Set<String> extensionsToExclude = new HashSet<>(Arrays.asList("20","25","60","900")); List<String> rangesToExclude = new ArrayList<>(Arrays.asList("1-10","20-25","50-70","1000-1000000")); return directoryRecords.stream() .filter((directoryRecord) -> !extensionsToExclude.contains(directoryRecord.getExtensionNumber())) .filter((directoryRecord -> { Boolean include = true; for(String s : rangesToExclude) { String [] rangeArray = s.split("-"); Integer extension = Integer.parseInt(directoryRecord.getExtensionNumber()); if(extension <= Integer.parseInt(rangeArray[0]) …

2
WebView พร้อมสำหรับ snapshot เมื่อใด ()
JavaFX เอกสารรัฐที่WebViewพร้อมเมื่อWorker.State.SUCCEEDEDถึงแต่ถ้าคุณรอในขณะที่ (เช่นAnimation, Transition, PauseTransitionฯลฯ ) หน้าว่างที่มีการแสดง สิ่งนี้ชี้ให้เห็นว่ามีเหตุการณ์ที่เกิดขึ้นภายใน WebView ที่พร้อมสำหรับการดักจับ แต่มันคืออะไร มีตัวอย่างโค้ดมากกว่า 7,000 รายการใน GitHub ที่ใช้SwingFXUtils.fromFXImageแต่ส่วนใหญ่ดูเหมือนว่าไม่เกี่ยวข้องกับWebViewมันเป็นแบบอินเทอร์แอคทีฟ (มาสก์มนุษย์ที่มีสภาพการแข่งขัน) หรือใช้การเปลี่ยนแปลงตามอำเภอใจ ฉันได้พยายาม: ฟังchanged(...)จากภายในส่วนWebViewข้อมูล ( DoublePropertyใช้คุณสมบัติความสูงและความกว้างObservableValueซึ่งสามารถตรวจสอบสิ่งเหล่านี้ได้) v ไม่สามารถทำงานได้ บางครั้งค่าดูเหมือนจะเปลี่ยนจากรูทีนการระบายสีซึ่งนำไปสู่เนื้อหาบางส่วน บอกอะไร ๆ ทุกอย่างไปrunLater(...)ที่ FX Application Thread techniques เทคนิคหลายอย่างใช้สิ่งนี้ แต่การทดสอบหน่วยของฉันเอง (เช่นเดียวกับข้อเสนอแนะที่ยอดเยี่ยมจากนักพัฒนาอื่น ๆ ) อธิบายว่าเหตุการณ์มักจะอยู่ในเธรดที่ถูกต้องและการโทรนี้ซ้ำซ้อน สิ่งที่ดีที่สุดที่ฉันสามารถนึกได้ก็คือการเพิ่มความล่าช้าเพียงพอผ่านการเข้าคิวที่ใช้งานได้สำหรับบางคน การเพิ่มผู้ฟัง / ทริกเกอร์ DOM หรือทริกเกอร์ / ทริกเกอร์ JavaScript ให้กับ WebView JavaScript …

2
ทำไม EnumMap ไม่ใช่ SortedMap ใน Java?
EnumMap<K extends Enum<K>, V> ใน Java ถูกจัดเรียงอย่างชัดเจนโดยนิยามของ enum ที่เกี่ยวข้องอย่างที่คุณเห็นใน javadoc: แผนที่ Enum นั้นได้รับการบำรุงรักษาตามลำดับของกุญแจ (ตามลำดับที่ประกาศค่าคงที่ Enum) นี่คือภาพสะท้อนใน iterators กลับโดยมุมมองที่คอลเลกชัน ( keySet(), entrySet()และvalues()) สิ่งที่ฉันต้องการคือการSortedMapใช้ enum เป็นประเภทคีย์ ฉันต้องการใช้วิธีการเช่นheadMap()หรือfirstKey()แต่ฉันต้องการกำไรจากการเพิ่มประสิทธิภาพของซีพียู + หน่วยความจำของEnumMaps TreeMapเสียงเหมือนวิธีที่มากเกินไปค่าใช้จ่ายที่นี่ คำถาม : สิ่งนี้เพิ่งพลาดในการนำไปใช้หรือไม่มันเป็นความเกียจคร้าน (มาจากAbstractMap) หรือมีเหตุผลที่ดีว่าทำไมจึงEnumMapไม่ใช่SortedMap?

1
ทำลายการเพิ่มประสิทธิภาพของ JIT พร้อมการสะท้อนกลับ
เมื่อเล่นซอกับการทดสอบหน่วยสำหรับคลาสซิงเกิลตันที่เกิดขึ้นพร้อมกันสูงฉันสะดุดกับพฤติกรรมแปลก ๆ ต่อไปนี้ (ทดสอบบน JDK 1.8.0_162): private static class SingletonClass { static final SingletonClass INSTANCE = new SingletonClass(0); final int value; static SingletonClass getInstance() { return INSTANCE; } SingletonClass(int value) { this.value = value; } } public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { System.out.println(SingletonClass.getInstance().value); // 0 // Change …

4
รับพนักงานก่อนและหลังวันที่เฉพาะเจาะจงของการเข้าร่วมจากรายชื่อพนักงานที่มีสตรีม Java
ฉันมีListของEmployees กับวันที่มาร่วมงานที่แตกต่างกัน ฉันต้องการรับพนักงานก่อนและหลังวันที่เฉพาะเจาะจงของการเข้าร่วมจากรายการโดยใช้สตรีม ฉันลองรหัสต่อไปนี้ List<Employee> employeeListAfter = employeeList.stream() .filter(e -> e.joiningDate.isAfter(specificDate)) .collect(Collectors.toList()); List<Employee> employeeListBefore = employeeList.stream() .filter(e -> e.joiningDate.isBefore(specificDate)) .collect(Collectors.toList()); class Employee{ int id; String name; LocalDate joiningDate; } มีวิธีการทำเช่นนี้ในกระแสเดียว?

5
วิธีสร้างหลายเธรดสำหรับแต่ละรายการที่ร้องขอ
ฉันพยายามประมวลผลโค้ดด้านล่างโดยใช้มัลติเธรดที่ระดับคำสั่งซื้อ List<String> orders = Arrays.asList("order1", "order2", "order3", "order4", "order1"); การดำเนินการตามลำดับปัจจุบัน: orders.stream().forEach(order -> { rules.forEach(rule -> { finalList.add(beanMapper.getBean(rule) .applyRule(createTemplate.apply(getMetaData.apply(rule), command), order)); }); }); ฉันได้ลองใช้: orders.parallelStream().forEach(order -> {}} // code snippet. แต่มันกำลังเปลี่ยนกฎสำหรับคำสั่งforEach (กฎ -> {}} ตัวอย่างเช่น: อินพุต: List<String> orders = Arrays.asList("order1", "order2", "order3", "order4", "order1"); List<String> rules = Arrays.asList("rule1", "rule2", "rule3"); ผลลัพธ์ที่คาดหวัง: …

1
MIUI 10 ไม่อนุญาตให้มีกิจกรรมเริ่มบริการ - Xiaomi Redmi Note
แอพของฉันมีบริการและกิจกรรม จากบริการกิจกรรมถูกเรียกด้วยรหัสต่อไปนี้: Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); แม้ไม่มีแฟล็กโดยปกติหน้าต่างกิจกรรมจะแสดงด้วยโครงร่างที่ถูกต้อง อย่างไรก็ตามใน Xiaomi Redmi Note 4 พร้อม Android 7 รูปแบบกิจกรรมจะไม่ปรากฏขึ้น ฉันเห็นบรรทัดต่อไปนี้บน logcat เท่านั้น: I / Timeline: Timeline: Activity_launch_request เวลา: 281438674 เจตนา: เจตนา {flg = 0x30000000 cmp = com.test.app / .MainActivity} ฉันเชื่อว่านี่ไม่ใช่ปัญหา Android 7 (API 24) เพราะบนอุปกรณ์อื่นที่ใช้ Android 7 บริการสามารถเริ่มกิจกรรมได้สำเร็จ …
9 java  android  miui 

2
java.net.SocketException: รีเซ็ตการเชื่อมต่อในเทมเพลต Spring rest
ฉันมีปัญหาแปลก ๆ ที่นี่ รหัสด้านล่างใช้งานได้ดีจนกระทั่งฉันรีสตาร์ทเซิร์ฟเวอร์ Tomcat ที่ฝั่งไคลเอ็นต์ เมื่อฉันรีสตาร์ทเซิร์ฟเวอร์ Tomcat (โปรแกรมไคลเอนต์มีอยู่ในไฟล์ war) พร้อมไฟล์ war ล่าสุดของรหัสเดียวกันมันจะพ่นข้อผิดพลาดด้านล่าง ฉันใช้ JDK 8 ด้านล่างนี้คือตัวอย่างรหัส จากเบราว์เซอร์ฉันสามารถรับการตอบสนองจาก URL ที่ใช้ในโปรแกรมด้านล่าง แต่ไม่สามารถรับข้อมูลโดยใช้โปรแกรมจาวาหรือบุรุษไปรษณีย์ได้เช่นกัน package com.example.demo; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; @Component public class TestService implements CommandLineRunner{ @Override public void run(String... args) throws Exception { download(); } private void download() { System.out.println("Started …

4
ข้อผิดพลาด: ไม่สามารถระบุอักขระปัจจุบันได้ไม่ใช่สตริงจำนวนอาร์เรย์หรือวัตถุในแบบโต้ตอบดั้งเดิมสำหรับ Android
เมื่อใดก็ตามที่ฉันเรียกใช้react-native run-androidในขณะที่ยังคงโปรแกรมจำลองทำงานอยู่ฉันได้รับข้อผิดพลาดนี้ react-native run-ios wroks สมบูรณ์ดี Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081 :ReactNative:Failed to parse React Native CLI configuration: groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object The current character read is 'E' with an int value of 69 Unable to determine …

3
การปรับให้เหมาะสมของ Oracle JDBC: เปิดใช้งานแคช PreparedStatement ในแอปพลิเคชัน Spring boot
ฉันมีแอพพลิเคชั่น Spring Boot REST ที่เชื่อมต่อกับฐานข้อมูล Oracle เรากำลังใช้ JDBC โดยใช้ JdbcTemplate คุณสมบัติฐานข้อมูล Oracle ได้รับจากการตั้งค่า3 แอพพลิเคชั่นคุณสมบัติเหล่านี้: spring.datasource.url spring.datasource.username spring.datasource.password แอปพลิเคชันนี้ใช้ HikariCP จากเว็บไซต์ HikariCP ฉันรู้ว่าพูลนี้ไม่แคช PreparedStatements เนื่องจากไดรเวอร์ JDBC เป็นโปรแกรมติดตั้งที่ดีที่สุด ตอนนี้ฉันจะระบุและที่ไหนเพื่อให้มั่นใจว่าสิ่งเหล่านี้: โปรแกรมควบคุม Oracle JDBC (ojdbc7.jar) แคช PreparedStatements มีวิธีการกำหนดจำนวน PreparedStatements ที่สามารถแคชได้หรือไม่ จากhttps://howtodoinjava.com/java/jdbc/best-practices-to-improve-jdbc-performance/เราจะเห็นว่า ตรวจสอบให้แน่ใจว่าฐานข้อมูลของคุณถูกตั้งค่าเป็นขนาดแพ็คเก็ตสูงสุดและไดรเวอร์ตรงกับขนาดแพ็คเก็ตนั้น สำหรับการดึงชุดผลลัพธ์ที่มีขนาดใหญ่กว่านี้จะลดจำนวนของแพ็กเก็ตทั้งหมดที่ส่ง / รับระหว่างไดรเวอร์และเซิร์ฟเวอร์ ในการปฏิบัติตามข้างต้นสิ่งที่เป็นขั้นตอนที่จำเป็นในการ ค้นหาขนาดแพ็คเก็ต Oracle DB Server ค้นหาว่า Oracle DB Server …

6
วิธีการทำซ้ำ getters / setters สำหรับคุณสมบัติสาธารณะใน POJO
เรามี POJO ที่สร้างขึ้นโดยอัตโนมัติด้วยคุณสมบัติ ~ 60 สิ่งนี้สร้างขึ้นด้วย avro 1.4 ซึ่งไม่รวม getters / setters ไลบรารีที่เราใช้เพื่อให้การแปลงอย่างง่ายระหว่างวัตถุต้องใช้วิธีเหมือน getter / setter เพื่อให้ทำงานได้อย่างถูกต้อง มีวิธีการทำซ้ำ getters / setters โดยไม่ต้องแทนที่ POJO ด้วยตนเองและสร้าง getters / setters ทั้งหมดด้วยตนเองหรือไม่ public class BigGeneratedPojo { public String firstField; public int secondField; ... public ComplexObject nthField; } public class OtherObject { private String reprOfFirstFieldFromOtherObject; …

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