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

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

6
อะไรคือความแตกต่างระหว่าง Hibernate และ Spring Data JPA
อะไรคือความแตกต่างที่สำคัญระหว่าง Hibernate และ Spring Data JPA เมื่อใดที่เราไม่ควรใช้ Hibernate หรือ Spring Data JPA นอกจากนี้เมื่อใดที่เท็มเพลต Spring JDBC อาจทำงานได้ดีกว่า Hibernate / Spring Data JPA

11
วิธีเรียกใช้ไฟล์ JAR
ฉันสร้างไฟล์ JAR แบบนี้: jar cf Predit.jar *.* ฉันรันไฟล์ JAR นี้โดยดับเบิลคลิกที่มัน (มันไม่ทำงาน) ดังนั้นฉันวิ่งจาก DOS พร้อมต์ดังนี้: java -jar Predit.jar มันยกข้อยกเว้น "ล้มเหลวในการโหลดคลาสหลัก" ดังนั้นฉันจึงแยกไฟล์ JAR นี้: jar -xf Predit.jar และฉันรันไฟล์คลาส: java Predit มันทำงานได้ดี ฉันไม่รู้ว่าทำไมไฟล์ JAR ไม่ทำงาน โปรดบอกขั้นตอนในการเรียกใช้ไฟล์ JAR
207 java  jar 

23
IntelliJ IDEA กับ Junit 4.7“ !!! JUnit เวอร์ชัน 3.8 หรือใหม่กว่าที่คาดไว้:”
เมื่อฉันพยายามเรียกใช้การทดสอบต่อไปนี้ในIntelliJ IDEAฉันได้รับข้อความ: "!!! JUnit เวอร์ชัน 3.8 ขึ้นไปที่คาดไว้:" ควรสังเกตว่านี่เป็นโครงการAndroid ที่ฉันทำงานใน IntelliJ IDEA 9 public class GameScoreUtilTest { @Test public void testCalculateResults() throws Exception { final Game game = new Game(); final Player player1 = new Player(); { final PlayedHole playedHole = new PlayedHole(); playedHole.setScore(1); game.getHoleScoreMap().put(player1, playedHole); } { final PlayedHole playedHole …

14
ฉันจะส่งอีเมลโดยใช้แอปพลิเคชัน Java โดยใช้ GMail, Yahoo หรือ Hotmail ได้อย่างไร
เป็นไปได้ไหมที่จะส่งอีเมลจากแอปพลิเคชัน Java ของฉันโดยใช้บัญชี GMail ฉันกำหนดค่าเซิร์ฟเวอร์อีเมล บริษัท ของฉันด้วยแอป Java เพื่อส่งอีเมล แต่นั่นจะไม่ตัดเมื่อฉันกระจายแอปพลิเคชัน คำตอบสำหรับการใช้ Hotmail, Yahoo หรือ GMail นั้นเป็นที่ยอมรับ

8
ความแตกต่างระหว่าง `Optional.orElse ()` และ `Optional.orElseGet () '
ฉันพยายามเข้าใจความแตกต่างระหว่างOptional<T>.orElse()และOptional<T>.orElseGet()วิธีการ คำอธิบายสำหรับorElse()วิธีการคือ"ส่งคืนค่าถ้ามีมิฉะนั้นส่งคืนค่าอื่น" ในขณะที่คำอธิบายสำหรับorElseGet()วิธีการคือ"ส่งคืนค่าถ้ามีมิฉะนั้นให้เรียกใช้วิธีอื่นและส่งคืนผลลัพธ์ของการเรียกใช้นั้น" orElseGet()วิธีการใช้อินเตอร์เฟซที่ใช้งานได้ผู้ผลิตซึ่งเป็นหลักไม่ใช้พารามิเตอร์ใด ๆ Tและผลตอบแทน คุณจะต้องใช้ในสถานการณ์orElseGet()ใด หากคุณมีวิธีการที่T myDefault()ทำไมคุณจะไม่เพียงแค่ทำoptional.orElse(myDefault())มากกว่าoptional.orElseGet(() -> myDefault())? ดูเหมือนจะไม่orElseGet()เป็นการเลื่อนการดำเนินการของแลมบ์ดาไปในภายหลังหรือบางสิ่งบางอย่างดังนั้นประเด็นของมันคืออะไร? (ฉันคิดว่ามันจะมีประโยชน์มากขึ้นถ้ามันคืนความปลอดภัยOptional<T>ที่get()ไม่เคยขว้าง a NoSuchElementExceptionและisPresent()กลับมาจริงเสมอ ... แต่เห็นได้ชัดว่าไม่ใช่มันแค่คืนTเหมือนorElse()) มีความแตกต่างอื่น ๆ ที่ฉันหายไปหรือไม่?
206 java  java-8  optional 

7
วิธีเพิ่มไดเรกทอรีไปยัง classpath ในแอปพลิเคชันที่เรียกใช้โปรไฟล์ใน IntelliJ IDEA ได้อย่างไร
ฉันกำลังพยายามเพิ่มไดเรกทอรีไปยังคลาสพา ธ ของโปรไฟล์เรียกใช้แอปพลิเคชัน ถ้าฉันแทนที่โดยใช้ -cp x: target / classes ในการตั้งค่า VM ฉันได้รับข้อผิดพลาดต่อไปนี้: java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain แนวคิดใด ๆ เกี่ยวกับวิธีเพิ่มไดเรกทอรีไปยัง classpath สำหรับโครงการของฉัน

7
ข้อใดมีประสิทธิภาพมากขึ้นสำหรับแต่ละลูปหรือตัววนซ้ำ
วิธีใดมีประสิทธิภาพมากที่สุดในการสำรวจชุดสะสม List<Integer> a = new ArrayList<Integer>(); for (Integer integer : a) { integer.toString(); } หรือ List<Integer> a = new ArrayList<Integer>(); for (Iterator iterator = a.iterator(); iterator.hasNext();) { Integer integer = (Integer) iterator.next(); integer.toString(); } โปรดทราบว่านี้ไม่ได้เป็นที่แน่นอนซ้ำของนี้ , นี้ , นี้หรือนี้แม้ว่าหนึ่งในคำตอบของคำถามที่ผ่านมาใกล้เคียง เหตุผลที่นี่ไม่ใช่การล่อลวงเพราะส่วนใหญ่เป็นการเปรียบเทียบลูปที่คุณโทรget(i)ภายในลูปแทนที่จะใช้ตัววนซ้ำ ตามที่แนะนำในMetaฉันจะโพสต์คำตอบของคำถามนี้

25
วิธีการยืนยัน JUnit บนข้อความในตัวบันทึก
ฉันมี code-under-test ที่เรียกใช้ตัวบันทึก Java เพื่อรายงานสถานะ ในรหัสทดสอบ JUnit ฉันต้องการตรวจสอบว่ามีการบันทึกรายการที่ถูกต้องในตัวบันทึกนี้ บางสิ่งบางอย่างตามบรรทัดต่อไปนี้: methodUnderTest(bool x){ if(x) logger.info("x happened") } @Test tester(){ // perhaps setup a logger first. methodUnderTest(true); assertXXXXXX(loggedLevel(),Level.INFO); } ฉันคิดว่าสิ่งนี้สามารถทำได้ด้วยตัวบันทึก (หรือตัวจัดการหรือตัวจัดรูปแบบ) ที่ดัดแปลงเป็นพิเศษ แต่ฉันต้องการใช้โซลูชันที่มีอยู่แล้วอีกครั้ง (และตามจริงแล้วมันไม่ชัดเจนสำหรับฉันเกี่ยวกับวิธีบันทึกที่บันทึกจากเครื่องบันทึก แต่สมมติว่าเป็นไปได้)
206 java  logging  junit  assert 

5
เหตุใดโปรแกรม Java นี้จึงยุติลงแม้ว่าจะไม่ได้เป็นอย่างนั้นก็ตาม
การปฏิบัติที่ละเอียดอ่อนในห้องปฏิบัติการของฉันในวันนี้ผิดไปอย่างสิ้นเชิง แอคชูเอเตอร์ในกล้องจุลทรรศน์อิเล็กตรอนวิ่งข้ามขอบเขตของมันและหลังจากเหตุการณ์หลายอย่างฉันก็สูญเสียอุปกรณ์มูลค่า 12 ล้านเหรียญ ฉันแคบลงกว่า 40K บรรทัดในโมดูลที่ผิดพลาดดังนี้: import java.util.*; class A { static Point currentPos = new Point(1,2); static class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; } } public static void main(String[] args) { new Thread() { void f(Point …

7
Java generics ต้องการ <เมื่อใด ขยาย T> แทน <T> และมีข้อเสียของการสลับ?
รับตัวอย่างต่อไปนี้ (ใช้ JUnit กับ Hamcrest matchers): Map&lt;String, Class&lt;? extends Serializable&gt;&gt; expected = null; Map&lt;String, Class&lt;java.util.Date&gt;&gt; result = null; assertThat(result, is(expected)); สิ่งนี้ไม่ได้คอมไพล์ด้วยassertThatลายเซ็นเมธอดJUnit ของ: public static &lt;T&gt; void assertThat(T actual, Matcher&lt;T&gt; matcher) ข้อความแสดงข้อผิดพลาดของคอมไพเลอร์คือ: Error:Error:line (102)cannot find symbol method assertThat(java.util.Map&lt;java.lang.String,java.lang.Class&lt;java.util.Date&gt;&gt;, org.hamcrest.Matcher&lt;java.util.Map&lt;java.lang.String,java.lang.Class &lt;? extends java.io.Serializable&gt;&gt;&gt;) อย่างไรก็ตามถ้าฉันเปลี่ยนassertThatลายเซ็นวิธีเป็น: public static &lt;T&gt; void assertThat(T result, Matcher&lt;? extends …
205 java  generics  junit 



30
org.hibernate.HibernateException: การเข้าถึง DialectResolutionInfo ไม่สามารถเป็นค่าว่างเมื่อไม่ได้ตั้งค่า 'hibernate.dialect'
ฉันพยายามเรียกใช้แอปพลิเคชัน spring-boot ซึ่งใช้ Hibernate ผ่าน spring-jpa แต่ฉันได้รับข้อผิดพลาดนี้: Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:104) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:71) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:205) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843) at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842) at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:336) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) …

21
วิธีการช่วยเหลือส่วนตัวควรจะคงที่หากพวกเขาสามารถคงที่
สมมติว่าฉันมีคลาสที่ออกแบบมาให้เป็นอินสแตนซ์ ฉันมีวิธีการ "ผู้ช่วย" ส่วนตัวหลายอย่างในชั้นเรียนที่ไม่ต้องการการเข้าถึงสมาชิกของชั้นเรียนใด ๆ และดำเนินการกับข้อโต้แย้งของพวกเขา แต่เพียงผู้เดียวและส่งกลับผลลัพธ์ public class Example { private Something member; public double compute() { double total = 0; total += computeOne(member); total += computeMore(member); return total; } private double computeOne(Something arg) { ... } private double computeMore(Something arg) {... } } มีเหตุผลใดที่ต้องระบุcomputeOneและใช้computeMoreเป็นวิธีการคงที่ - หรือเหตุผลเฉพาะใด ๆ ที่จะไม่ทำ? …

4
Mockito ยืนยันการสั่งซื้อ / ลำดับของการเรียกเมธอด
มีวิธีการตรวจสอบว่ามีการmethodOneเรียกมาก่อนmethodTwoใน Mockito หรือไม่? public class ServiceClassA { public void methodOne(){} } public class ServiceClassB { public void methodTwo(){} } public class TestClass { public void method(){ ServiceClassA serviceA = new ServiceClassA(); ServiceClassB serviceB = new ServiceClassB(); serviceA.methodOne(); serviceB.methodTwo(); } }

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