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

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

4
Java 13 Text Block * โดยไม่ต้องขึ้นบรรทัดใหม่
สิ่งอำนวยความสะดวกบล็อกข้อความแบบหลายบรรทัด Java 13 พร้อม"""ตัวคั่นกำลังเป็นที่รู้จักกันดี อย่างไรก็ตามฉันมีความต้องการที่เกิดซ้ำที่ฉันต้องการทั้งย่อหน้าโดยไม่ต้องขึ้นบรรทัดใหม่ ในคำอื่น ๆ รหัสต่อไปนี้: String paragraph = """ aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii """" System.out.println(paragraph); สร้างสิ่งต่อไปนี้ตามที่คุณคาดหวัง: aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii ... ซึ่งมักเป็นประโยชน์อย่างมาก อย่างไรก็ตามในกรณีของฉันสำหรับย่อหน้าที่มีขนาดใหญ่โดยเฉพาะฉันต้องการมันในการผลิต: aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii (.... และจัดการกับการไหลของข้อความในภายหลัง) มีวิธีในการสร้างพารามิเตอร์ "ไม่ขึ้นบรรทัดใหม่" สำหรับคุณลักษณะการอ้างอิงสามทางหรือไม่?

2
Java หยุดบริการผู้ปฏิบัติการเมื่องานที่ได้รับมอบหมายอย่างใดอย่างหนึ่งของเขาล้มเหลวด้วยเหตุผลใด
ฉันต้องการบริการบางประเภทที่จะทำงานสองสามอย่างพร้อมกันและในช่วงเวลา 1 วินาทีเป็นเวลา 1 นาที หากงานใดงานหนึ่งล้มเหลวฉันต้องการหยุดบริการและงานทุกอย่างที่วิ่งไปพร้อมกับตัวบ่งชี้บางอย่างที่มีบางอย่างผิดปกติมิฉะนั้นหากหลังจากผ่านไปหนึ่งนาทีทุกอย่างไปได้ดีบริการจะหยุดทำงานโดยมีตัวบ่งชี้ว่า ตัวอย่างเช่นฉันมี 2 ฟังก์ชั่น: Runnable task1 = ()->{ int num = Math.rand(1,100); if (num < 5){ throw new Exception("something went wrong with this task,terminate"); } } Runnable task2 = ()->{ int num = Math.rand(1,100) return num < 50; } ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(2); task1schedule = …

2
จะเข้าใจวิธีการรวบรวม Java 8 Stream นี้ได้อย่างไร?
ฉันพยายามแปลง int เป็น List และใช้เส้นทางที่ไม่คุ้นเคยในการใช้ Java 8 Stream และคิดสิ่งนี้ขึ้นมา Arrays.stream(arr).boxed().collect(Collectors.toList()); ฉันยังคงมีปัญหาในการเข้าใจบรรทัดนี้ส่วนใหญ่ เหตุใดCollectors.toList()ในกรณีนี้จึงส่งคืนอินเตอร์เฟสที่ArrayList<Integer>ใช้งาน Listทำไมไม่LinkedList<Integer>หรือคลาสทั่วไปอื่น ๆ ที่สอดคล้องกับListอินเตอร์เฟส? ฉันไม่พบสิ่งใดเกี่ยวกับเรื่องนี้ยกเว้นการกล่าวถึง ArrayList สั้น ๆที่นี่ในส่วน API Notes แผงด้านซ้าย หมายถึงอะไร เห็นได้ชัดว่าเป็นประเภทผลตอบแทนทั่วไป ( ในรหัสของฉันที่นี่) และฉันคิดว่าเป็นอาร์กิวเมนต์ประเภททั่วไปของวิธีการ แต่พวกเขาจะระบุได้อย่างไร ผมมองเข้าไปสะสมอินเตอร์เฟซ doc และไม่สามารถที่จะดูดซึมได้ Stream.collect()RArrayList<Integer><R, A>

2
คุณสามารถปรับสมดุล Spliterator ที่ไม่ทราบขนาดได้หรือไม่?
ฉันต้องการใช้การStreamประมวลผลแบบขนานของชุดไฟล์ JSON ที่จัดเก็บจากระยะไกลซึ่งเป็นหมายเลขที่ไม่รู้จัก (จำนวนไฟล์ไม่ทราบล่วงหน้า) ไฟล์สามารถมีขนาดแตกต่างกันอย่างมากตั้งแต่ 1 ระเบียน JSON ต่อไฟล์สูงสุด 100,000 ระเบียนในไฟล์อื่น ๆ บันทึก JSONในกรณีนี้หมายถึงการที่ตนเองมีวัตถุ JSON แสดงเป็นหนึ่งบรรทัดในไฟล์ ฉันต้องการใช้ Streams สำหรับสิ่งนี้และดังนั้นฉันจึงใช้สิ่งนี้Spliterator: public abstract class JsonStreamSpliterator<METADATA, RECORD> extends AbstractSpliterator<RECORD> { abstract protected JsonStreamSupport<METADATA> openInputStream(String path); abstract protected RECORD parse(METADATA metadata, Map<String, Object> json); private static final int ADDITIONAL_CHARACTERISTICS = Spliterator.IMMUTABLE | Spliterator.DISTINCT | …

4
จะปรับปรุงการจดจำตัวเลขของแบบจำลองที่ได้รับการฝึกฝนเกี่ยวกับ MNIST ได้อย่างไร?
ฉันทำงานเกี่ยวกับการรับรู้ด้วยตัวเลขหลายหลักด้วยมือJavaโดยใช้OpenCVห้องสมุดสำหรับการประมวลผลล่วงหน้าและการแบ่งส่วนและKerasรูปแบบการฝึกอบรมเกี่ยวกับ MNIST (ด้วยความแม่นยำ 0.98) สำหรับการรับรู้ การรับรู้ดูเหมือนจะทำงานได้ค่อนข้างดีนอกเหนือจากสิ่งหนึ่ง เครือข่ายค่อนข้างบ่อยครั้งที่จะจำสิ่งที่ไม่ได้ (หมายเลข "หนึ่ง") ฉันไม่สามารถทราบได้ว่าเกิดขึ้นเนื่องจากการดำเนินการแบ่งเซกเมนต์ล่วงหน้า / ไม่ถูกต้องหรือหากเครือข่ายที่ได้รับการฝึกอบรมเกี่ยวกับ MNIST มาตรฐานเพิ่งไม่เห็นหมายเลขหนึ่งซึ่งดูเหมือนว่ากรณีทดสอบของฉัน นี่คือสิ่งที่ตัวเลขที่เป็นปัญหามีลักษณะเหมือนหลังการประมวลผลล่วงหน้าและการแบ่งส่วน: กลายเป็นและจัดเป็น4 กลายเป็นและจัดเป็น7 กลายเป็นและจัดเป็น 4และอื่น ๆ ... นี่เป็นสิ่งที่สามารถแก้ไขได้โดยการปรับปรุงกระบวนการแบ่งส่วนหรือไม่ หรือโดยการเพิ่มชุดฝึกอบรม แก้ไข: การปรับปรุงชุดฝึกอบรม (การเพิ่มข้อมูล) จะช่วยได้อย่างแน่นอนซึ่งฉันได้ทำการทดสอบแล้วคำถามของการประมวลผลที่ถูกต้องยังคงอยู่ การประมวลผลล่วงหน้าของฉันประกอบด้วยการปรับขนาดการแปลงเป็นโทนสีเทาการแปลงแบบสองทางการหมุนและการขยาย นี่คือรหัส: Mat resized = new Mat(); Imgproc.resize(image, resized, new Size(), 8, 8, Imgproc.INTER_CUBIC); Mat grayscale = new Mat(); Imgproc.cvtColor(resized, grayscale, Imgproc.COLOR_BGR2GRAY); Mat …

1
เหตุใดพารามิเตอร์ประเภทจึงแข็งแรงกว่าจึงเป็นพารามิเตอร์วิธี
ทำไม public <R, F extends Function<T, R>> Builder<T> withX(F getter, R returnValue) {...} เข้มงวดมากขึ้นแล้ว public <R> Builder<T> with(Function<T, R> getter, R returnValue) {...} นี่คือการติดตามขึ้นไปบนทำไมแลมบ์ดาชนิดกลับไม่ได้ตรวจสอบที่รวบรวมเวลา ฉันพบว่าใช้วิธีการwithX()เช่น .withX(MyInterface::getLength, "I am not a Long") สร้างข้อผิดพลาดเวลารวบรวมที่ต้องการ: ประเภทของ getLength () จากประเภท BuilderExample.MyInterface มีความยาวไม่สามารถใช้ร่วมกับชนิดส่งคืนของ descriptor: String ในขณะที่ใช้วิธีการwith()ไม่ได้ ตัวอย่างเต็มรูปแบบ: import java.util.function.Function; public class SO58376589 { public static …

3
การส่งอาร์กิวเมนต์ไบต์ไปยังเมธอดที่โอเวอร์โหลด
ฉันเอาข้อมูลโค้ดนี้จากแบบทดสอบบางส่วนโดยใช้ IDE ฉันดำเนินการแล้วและได้ผลลัพธ์ยาวยาวแต่คำตอบที่ถูกต้องคือByte, Byteทำไมฉันถึงได้ผลลัพธ์ที่แตกต่างกัน? คำถามเกี่ยวข้องกับ JDK 11 public class Client { static void doCalc(byte... a) { System.out.print("byte..."); } static void doCalc(long a, long b) { System.out.print("long, long"); } static void doCalc(Byte s1, Byte s2) { System.out.print("Byte, Byte"); } public static void main(String[] args) { byte b = 5; doCalc(b, b); …
12 java 

10
Spring boot 2.2.0 ปัญหาการเริ่มต้น Spring HateOas
ฉันย้ายโครงการจาก spring boot 2.1.9 เป็น 2.2.0 ในขณะที่เริ่มโครงการกำลังเผชิญerrorข้อความด้านล่าง สิ่งที่อาจทำให้เกิดไม่ได้ใช้ไฟล์hateoasของฉันpom.xmlอย่างใดอย่างหนึ่ง Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.plugin.core.PluginRegistry<org.springframework.hateoas.client.LinkDiscoverer, org.springframework.http.MediaType>' available: expected single matching bean but found 17: modelBuilderPluginRegistry,modelPropertyBuilderPluginRegistry,typeNameProviderPluginRegistry,syntheticModelProviderPluginRegistry,documentationPluginRegistry,apiListingBuilderPluginRegistry,operationBuilderPluginRegistry,parameterBuilderPluginRegistry,expandedParameterBuilderPluginRegistry,resourceGroupingStrategyRegistry,operationModelsProviderPluginRegistry,defaultsProviderPluginRegistry,pathDecoratorRegistry,apiListingScannerPluginRegistry,relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'linkDiscoverers' defined in class path resource [org/springframework/hateoas/config/HateoasConfiguration.class]: Unsatisfied dependency expressed through method 'linkDiscoverers' parameter 0; …

3
วิธีเปิดใช้งานการเข้าสู่ระบบใน org.slf4j สำหรับรุ่น: '2.0.0-alpha1' ใน Spring boot
ฉันใช้การบันทึก SLF4J เพื่อพิมพ์บันทึกทั้งหมด ฉันใช้ org.slf4j เวอร์ชันล่าสุด การใช้งาน 'org.slf4j: slf4j-api: 2.0.0-alpha1' การใช้งาน 'org.slf4j: log4j-over-slf4j: 2.0.0-alpha1' แต่ฉันได้รับข้อผิดพลาดต่อไปนี้และไม่มีการพิมพ์บันทึก SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8. SLF4J: Ignoring binding found …

3
การเลือกลายเซ็นของเมธอดสำหรับแลมบ์ดานิพจน์ที่มีเป้าหมายหลายประเภท
ฉันตอบคำถามและพบเจอสถานการณ์ที่ไม่สามารถอธิบายได้ พิจารณารหัสนี้: interface ConsumerOne<T> { void accept(T a); } interface CustomIterable<T> extends Iterable<T> { void forEach(ConsumerOne<? super T> c); //overload } class A { private static CustomIterable<A> iterable; private static List<A> aList; public static void main(String[] args) { iterable.forEach(a -> aList.add(a)); //ambiguous iterable.forEach(aList::add); //ambiguous iterable.forEach((A a) -> aList.add(a)); //OK } …
11 java  generics  lambda  javac  ecj 

3
Java 14 บันทึกและอาร์เรย์
รับรหัสต่อไปนี้: public static void main(String[] args) { record Foo(int[] ints){} var ints = new int[]{1, 2}; var foo = new Foo(ints); System.out.println(foo); // Foo[ints=[I@6433a2] System.out.println(new Foo(new int[]{1,2}).equals(new Foo(new int[]{1,2}))); // false System.out.println(new Foo(ints).equals(new Foo(ints))); //true System.out.println(foo.equals(foo)); // true } ดูเหมือนว่าเห็นได้ชัดของอาร์เรย์ที่toString, equalsวิธีการใช้ (แทนวิธีการแบบคงที่Arrays::equals, Arrays::deepEquals หรือArray::toString) ดังนั้นฉันจึงเดาว่า Java 14 Records ( JEP …

3
กระแสข้อมูล Java แบบขนาน - ลำดับของการเรียกใช้เมธอด parallel () [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิด4 วันที่ผ่านมา AtomicInteger recordNumber = new AtomicInteger(); Files.lines(inputFile.toPath(), StandardCharsets.UTF_8) .map(record -> new Record(recordNumber.incrementAndGet(), record)) .parallel() .filter(record -> doSomeOperation()) .findFirst() เมื่อฉันเขียนสิ่งนี้ฉันสันนิษฐานว่าเธรดจะวางไข่เฉพาะการเรียกแผนที่เนื่องจากวางขนานหลังจากแผนที่ แต่บางบรรทัดในไฟล์ได้รับหมายเลขบันทึกที่แตกต่างกันสำหรับการดำเนินการทุกครั้ง ฉันอ่านเอกสาร Java streamอย่างเป็นทางการและเว็บไซต์บางแห่งเพื่อทำความเข้าใจวิธีการทำงานของสตรีมภายใต้ฮูด คำถามเล็กน้อย: Java กระแสขนานทำงานบนพื้นฐานของSplitIteratorซึ่งดำเนินการโดยคอลเลกชันทุกอย่างเช่น ArrayList, LinkedList เป็นต้นเมื่อเราสร้างสตรีมขนานจากคอลเลกชันเหล่านั้นตัววนซ้ำที่สอดคล้องกันนั้นจะถูกใช้เพื่อแยกและย้ำคอลเลกชัน สิ่งนี้อธิบายว่าเหตุใดจึงเกิดความขนานที่แหล่งอินพุตดั้งเดิม (เส้นไฟล์) แทนที่จะเป็นผลลัพธ์ของแผนที่ (เช่นเร็กคอร์ด pojo) ความเข้าใจของฉันถูกต้องหรือไม่ ในกรณีของฉันอินพุตเป็นไฟล์สตรีม IO จะใช้ตัววนซ้ำแบบแยกใด ไม่สำคัญว่าเราจะวางไว้ที่ไหนparallel()ในท่อส่ง แหล่งอินพุตดั้งเดิมจะถูกแยกเสมอและจะใช้การดำเนินการระดับกลางที่เหลืออยู่ ในกรณีนี้ Java ไม่ควรอนุญาตให้ผู้ใช้ทำการดำเนินการแบบขนานที่ใดก็ได้ในไปป์ไลน์ยกเว้นที่แหล่งต้นฉบับ เนื่องจากเป็นการให้ความเข้าใจที่ผิดสำหรับผู้ที่ไม่ทราบว่า …
11 java  java-stream 

5
ใช้ Oracle clob ในเพรดิเคตที่สร้างจาก String> 4k
ฉันกำลังพยายามสร้าง clob จากสตริง> 4,000 chars (จัดทำในตัวแปรผูก file_data) เพื่อใช้ในเพรดิเคต Oracle SELECT ด้านล่าง: myQuery= select * from dcr_mols WHERE flexmatch(ctab,:file_data,'MATCH=ALL')=1; ถ้าฉันเพิ่ม TO_CLOB () round file_data มันจะไม่ จำกัด Oracle 4k ที่น่าอับอายสำหรับ varchar (ใช้ได้กับสตริง <4k) ข้อผิดพลาด (ใน SQL Developer) คือ: ORA-01460: unimplemented or unreasonable conversion requested 01460. 00000 - "unimplemented or unreasonable conversion requested" …

9
วนรอบด้านหน้าและด้านหลังในหนึ่งบรรทัด
ฉันคิดว่านี่เป็นคำถามที่น่าสนใจ เราสามารถวนในทางเดียว แต่เราสามารถวนกลับในบรรทัดเดียวกันได้หรือไม่? ให้ฉันอธิบายสิ่งที่ฉันหมายถึง นี่คือตัวอย่างรหัส: for(int i = 0; i < 5; i++) { // we all know the output will be 0,1,2,3,4 ฉันกำลังดูว่ามีวิธีแก้ปัญหาใด ๆ เพื่อให้คำสั่งข้างต้นสามารถพิมพ์0,1,2,3,4,3,2,1,0?
11 java 

2
จำกัด ขอบเขตการตรวจจับใน Google Vision การรับรู้ข้อความ
ฉันค้นหาวิธีแก้ปัญหาทั้งวัน ฉันได้ตรวจสอบหลายหัวข้อเกี่ยวกับปัญหาของฉัน วัตถุตรวจจับที่กำหนดเอง ลดหน้าต่างการติดตามบาร์โค้ด และอื่น ๆ... แต่มันก็ไม่ได้ช่วยอะไรฉันมากนัก โดยทั่วไปฉันต้องการให้ Camera Preview เป็นแบบเต็มหน้าจอ แต่ข้อความจะได้รับการยอมรับเฉพาะตรงกลางหน้าจอที่มีการวาดรูปสี่เหลี่ยมผืนผ้า เทคโนโลยีที่ฉันใช้: Google Mobile Vision API สำหรับการจดจำอักขระด้วยแสง (OCR) dependecy: play-services-vision สถานะปัจจุบันของ ฉัน:ฉันสร้างคลาส BoxDetector: public class BoxDetector extends Detector { private Detector mDelegate; private int mBoxWidth, mBoxHeight; public BoxDetector(Detector delegate, int boxWidth, int boxHeight) { mDelegate = delegate; mBoxWidth = …

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