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

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

12
การรับค่าจาก java.util.HashMap นั้นปลอดภัยจากหลายเธรดหรือไม่?
มีกรณีที่แผนที่จะถูกสร้างขึ้นและเมื่อมีการเริ่มต้นมันจะไม่ถูกแก้ไขอีกครั้ง อย่างไรก็ตามจะสามารถเข้าถึงได้ (ผ่านรับ (คีย์) เท่านั้น) จากหลายเธรด วิธีนี้ปลอดภัยไหมที่จะใช้java.util.HashMap? (ปัจจุบันฉันใช้อย่างมีความสุขjava.util.concurrent.ConcurrentHashMapและไม่จำเป็นต้องวัดเพื่อปรับปรุงประสิทธิภาพ แต่ฉันแค่อยากรู้อยากเห็นว่าเรียบง่ายHashMapพอเพียงดังนั้นคำถามนี้ไม่ใช่ "ฉันควรใช้อันไหนดี?" และไม่ใช่คำถามประสิทธิภาพ ค่อนข้างคำถามคือ "จะปลอดภัยหรือไม่")


5
เอาชนะการผูกมัดใน Guice
ฉันเพิ่งเริ่มเล่นกับ Guice และกรณีใช้งานที่ฉันคิดได้ก็คือในการทดสอบฉันแค่ต้องการแทนที่การเชื่อมโยงเดียว ฉันคิดว่าฉันต้องการใช้การเชื่อมโยงระดับการผลิตที่เหลือเพื่อให้แน่ใจว่าทุกอย่างมีการตั้งค่าอย่างถูกต้องและเพื่อหลีกเลี่ยงการทำซ้ำ ลองจินตนาการว่าฉันมีโมดูลต่อไปนี้ public class ProductionModule implements Module { public void configure(Binder binder) { binder.bind(InterfaceA.class).to(ConcreteA.class); binder.bind(InterfaceB.class).to(ConcreteB.class); binder.bind(InterfaceC.class).to(ConcreteC.class); } } และในการทดสอบของฉันฉันต้องการแทนที่ InterfaceC เท่านั้นในขณะที่รักษา InterfaceA และ InterfaceB ไว้ด้วยดังนั้นฉันจึงต้องการ: Module testModule = new Module() { public void configure(Binder binder) { binder.bind(InterfaceC.class).to(MockC.class); } }; Guice.createInjector(new ProductionModule(), testModule); ฉันได้ลองทำสิ่งต่อไปนี้โดยไม่มีโชค: Module testModule = new …
138 java  unit-testing  guice 

8
ไอคอนรายการลิ้นชักการนำทางไม่แสดงสีดั้งเดิม
ฉันกำลังพยายามแสดงไอคอนที่อยู่ถัดจากรายการในเมนูของฉันสำหรับลิ้นชักการนำทางของฉัน แต่ด้วยเหตุผลบางประการไอคอนจะปรากฏเป็นสีเทาเสมอแทนที่จะเป็นสีดั้งเดิม (สีน้ำตาล) มีวิธีการป้องกันไม่ให้สิ่งนี้เกิดขึ้นเพื่อแสดงสีดั้งเดิมของไอคอนหรือไม่? MainActivity.java public class MainActivity extends AppCompatActivity { private DrawerLayout mDrawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); if (navigationView != null) { setupDrawerContent(navigationView); } } private void setupDrawerContent(NavigationView navigationView) { navigationView.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener() { @Override public …

17
แปลงอาร์เรย์ของ longs ดั้งเดิมเป็น List of Longs
นี่อาจเป็นคำถามง่าย ๆ นิดนึง แต่ความพยายามครั้งแรกของฉันก็ไม่ได้ผลอย่างสมบูรณ์ ฉันอยากจะลองชุดแบบดั้งเดิมและเปลี่ยนเป็นรายการซึ่งฉันพยายามทำเช่นนี้: long[] input = someAPI.getSomeLongs(); List<Long> inputAsList = Arrays.asList(input); //Total failure to even compile! วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?


5
รับรหัสที่สร้างขึ้นหลังจากการแทรก
ฉันใช้ SQLite กับ Android และฉันต้องการทราบวิธีที่ดีที่สุดในการสร้าง id ของแถวที่ฉันแทรก วิธีแก้ปัญหาที่ฉันคิดว่าทำการค้นหาหลังจากรวม แต่ไม่ได้ดูวิธีที่ดีที่สุด
138 java  android  sqlite 

10
ฉันจะเริ่มต้นอาร์เรย์ไบต์ใน Java ได้อย่างไร
ฉันต้องเก็บค่าคงที่ (UUIDs) ในรูปแบบอาร์เรย์ไบต์ใน java และฉันสงสัยว่าวิธีที่ดีที่สุดในการเริ่มต้นอาร์เรย์แบบคงที่เหล่านั้นคืออะไร นี่คือสิ่งที่ฉันกำลังทำอยู่ แต่ฉันรู้สึกว่าต้องมีวิธีที่ดีกว่า private static final byte[] CDRIVES = new byte[] { (byte)0xe0, 0x4f, (byte)0xd0, 0x20, (byte)0xea, 0x3a, 0x69, 0x10, (byte)0xa2, (byte)0xd8, 0x08, 0x00, 0x2b, 0x30, 0x30, (byte)0x9d }; private static final byte[] CMYDOCS = new byte[] { (byte)0xba, (byte)0x8a, 0x0d, 0x45, 0x25, (byte)0xad, (byte)0xd0, 0x11, …
138 java  arrays  byte 

4
ตกลงเพื่อใช้อินสแตนซ์ Gson เป็นเขตข้อมูลคงที่ใน model bean (นำมาใช้ใหม่) หรือไม่
นี่คือแบบจำลองที่ฉันใช้: public class LoginSession { private static final Gson gson = new Gson(); private String id; private String name; private long timestamp; public LoginSession(String id, String name) { this.id = id; this.name = name; this.timestamp = System.currentTimeMillis(); } public String toJson() { return gson.toJson(this); } public static LoginSession fromJson(String json) …

18
ลำดับ JPA ไฮเบอร์เนต (ไม่ใช่รหัส)
มันเป็นไปได้ที่จะใช้ลำดับ DB สำหรับคอลัมน์บางอย่างที่ไม่ได้ระบุ / ไม่ได้เป็นส่วนหนึ่งของตัวระบุคอมโพสิต ? ฉันใช้ไฮเบอร์เนตเป็นผู้ให้บริการ jpa และฉันมีตารางที่มีคอลัมน์บางคอลัมน์ที่สร้างค่า (โดยใช้ลำดับ) แม้ว่าพวกเขาจะไม่ได้เป็นส่วนหนึ่งของตัวระบุ สิ่งที่ฉันต้องการคือการใช้ลำดับเพื่อสร้างค่าใหม่สำหรับเอนทิตีที่คอลัมน์สำหรับลำดับไม่ได้เป็น(ส่วนหนึ่ง) คีย์หลัก: @Entity @Table(name = "MyTable") public class MyEntity { //... @Id //... etc public Long getId() { return id; } //note NO @Id here! but this doesn't work... @GeneratedValue(strategy = GenerationType.AUTO, generator = "myGen") @SequenceGenerator(name = "myGen", sequenceName …
138 java  hibernate  jpa  sequence 

19
SQLite ใน Android วิธีอัปเดตแถวเฉพาะ
ฉันพยายามอัปเดตแถวที่ระบุมาระยะหนึ่งแล้วและดูเหมือนว่ามีสองวิธีในการทำเช่นนี้ จากสิ่งที่ฉันอ่านและลองคุณสามารถใช้: execSQL(String sql) วิธี หรือ: update(String table, ContentValues values, String whereClause, String[] whereArgs) วิธี. (แจ้งให้เราทราบหากนี่ไม่ถูกต้องเนื่องจากฉันใหม่สำหรับ Android และใหม่มากสำหรับ SQL) ขอผมใช้รหัสจริงนะ myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null); ฉันพยายามทำสิ่งนี้ให้สำเร็จ: อัปเดต Field1, Field2 และ Field3 โดยที่คีย์หลัก (_id) เท่ากับ 1 Eclipse ให้เส้นสีแดงแก่ฉันใต้คำว่า "update" และให้คำอธิบายนี้กับฉัน: การปรับปรุงวิธีการ …
138 java  android  sql  eclipse  sqlite 

9
เพิ่มหลายรายการใน HashMap พร้อมกันในหนึ่งคำสั่ง
ฉันต้องการเริ่มต้น HashMap คงที่และต้องการทำในคำสั่งบรรทัดเดียว หลีกเลี่ยง sth เช่นนี้ hashMap.put("One", new Integer(1)); // adding value into HashMap hashMap.put("Two", new Integer(2)); hashMap.put("Three", new Integer(3)); คล้ายกับในวัตถุประสงค์ C: [NSDictionary dictionaryWithObjectsAndKeys: @"w",[NSNumber numberWithInt:1], @"K",[NSNumber numberWithInt:2], @"e",[NSNumber numberWithInt:4], @"z",[NSNumber numberWithInt:5], @"l",[NSNumber numberWithInt:6], nil] ฉันไม่พบตัวอย่างใด ๆ ที่แสดงวิธีการทำเช่นนี้เมื่อดูจำนวนมาก

3
วิธีการระบุหน้าข้อผิดพลาดเริ่มต้นใน web.xml?
ฉันใช้<error-page>องค์ประกอบในweb.xmlเพื่อระบุหน้าข้อผิดพลาดที่เป็นมิตรเมื่อผู้ใช้พบข้อผิดพลาดบางอย่างเช่นข้อผิดพลาดด้วยรหัส 404: <error-page> <error-code>404</error-code> <location>/Error404.html</location> </error-page> อย่างไรก็ตามฉันต้องการว่าหากผู้ใช้ไม่ตรงกับรหัสข้อผิดพลาดที่ระบุไว้ใน<error-page>เขาหรือเธอควรจะเห็นหน้าข้อผิดพลาดเริ่มต้น ฉันจะทำเช่นนั้นโดยใช้องค์ประกอบในweb.xml ได้อย่างไร

5
Autowiring ถั่วสองตัวที่ใช้อินเทอร์เฟซเดียวกัน - วิธีตั้งค่า bean เริ่มต้นเป็น autowire อัตโนมัติอย่างไร
พื้นหลัง: ฉันมีแอปพลิเคชัน Spring 2.5 / Java / Tomcat มีถั่วต่อไปนี้ซึ่งใช้ทั่วทั้งแอปพลิเคชั่นในหลาย ๆ ที่ public class HibernateDeviceDao implements DeviceDao และถั่วต่อไปนี้ซึ่งเป็นของใหม่: public class JdbcDeviceDao implements DeviceDao bean แรกถูกกำหนดค่าให้ดังนั้น (beans ทั้งหมดในแพ็คเกจถูกรวมไว้) <context:component-scan base-package="com.initech.service.dao.hibernate" /> ถั่วที่สอง (ใหม่) ถูกกำหนดค่าแยกกัน <bean id="jdbcDeviceDao" class="com.initech.service.dao.jdbc.JdbcDeviceDao"> <property name="dataSource" ref="jdbcDataSource"> </bean> ผลลัพธ์นี้ (แน่นอน) มีข้อยกเว้นเมื่อเริ่มต้นเซิร์ฟเวอร์: ข้อยกเว้นแบบซ้อนคือ org.springframework.beans.factory.NoSuchBeanDefinitionException: ไม่มีถั่วที่ไม่ซ้ำประเภท [com.sevenp.mobile.samplemgmt.service.dao.DeviceDao] พบถั่วที่จับคู่เดี่ยว แต่พบ 2: [deviceDao, …

16
Java: สุ่มหมายเลขยาวในช่วง 0 <= x <n
คลาสสุ่มมีวิธีการสร้าง int แบบสุ่มในช่วงที่กำหนด ตัวอย่างเช่น: Random r = new Random(); int x = r.nextInt(100); สิ่งนี้จะสร้างจำนวน int มากกว่าหรือเท่ากับ 0 และน้อยกว่า 100 ฉันต้องการทำเช่นเดียวกันกับ long number long y = magicRandomLongGenerator(100); คลาสสุ่มมีเฉพาะ nextLong () แต่ไม่อนุญาตให้กำหนดช่วง

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