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

ในการเขียนโปรแกรมจะใช้คำอธิบายประกอบเพื่อเพิ่มข้อมูลให้กับองค์ประกอบรหัสซึ่งระบบชนิดไม่สามารถแสดงได้


4
วิธีการเริ่มต้นใน Spring Controller (เวอร์ชันหมายเหตุประกอบ)
ฉันกำลังแปลงคอนโทรลเลอร์เป็นเวอร์ชันคำอธิบายประกอบที่ใหม่กว่า ในเวอร์ชันเก่าฉันเคยระบุเมธอด init ใน springmvc-servlet.xml โดยใช้: <beans> <bean id="myBean" class="..." init-method="init"/> </beans> ฉันจะระบุเมธอด init โดยใช้เวอร์ชันคำอธิบายประกอบได้อย่างไร

10
วิธีใส่คำอธิบายประกอบฟิลด์การเพิ่มอัตโนมัติ MYSQL ด้วยคำอธิบายประกอบ JPA
ตรงประเด็นปัญหาคือการบันทึก object Operator ลงใน MySQL DB ก่อนที่จะบันทึกฉันพยายามเลือกจากตารางนี้และมันใช้งานได้การเชื่อมต่อกับ db นี่คือวัตถุ Operator ของฉัน: @Entity public class Operator{ @Id @GeneratedValue private Long id; private String username; private String password; private Integer active; //Getters and setters... } ในการบันทึกฉันใช้วิธีEntityManagerของJPApersist นี่คือบันทึกบางส่วน: Hibernate: insert into Operator (active, password, username, id) values (?, ?, ?, ?) com.mysql.jdbc.JDBC4PreparedStatement@15724a0: insert …
106 java  mysql  orm  jpa  annotations 

3
ความหมายของข้อผิดพลาด Android Studio: พารามิเตอร์ที่ไม่มีคำอธิบายประกอบจะแทนที่พารามิเตอร์ @NonNull
ฉันกำลังทดลองใช้ Android Studio เมื่อสร้างโปรเจ็กต์ใหม่และเพิ่มonSaveInstanceStateเมธอดเริ่มต้นในคลาสสร้าง MyActivity เมื่อฉันพยายามคอมมิตโค้ดกับ Git ฉันได้รับข้อผิดพลาดแปลก ๆ ที่ฉันไม่เข้าใจ รหัสคือ: ข้อผิดพลาดที่ฉันได้รับคือ: ถ้าฉันพยายามเปลี่ยนลายเซ็นวิธีprotected void onSaveInstanceState(@NotNull Bundle outState)เป็น IDE ก็บอกฉันว่ามันไม่สามารถแก้ไขสัญลักษณ์NotNullได้ ฉันต้องทำอย่างไรเพื่อกำจัดคำเตือน

9
เป็นไปได้ไหมที่จะอ่านค่าของคำอธิบายประกอบใน java?
นี่คือรหัสของฉัน: @Column(columnName="firstname") private String firstName; @Column(columnName="lastname") private String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } เป็นไปได้ไหมที่จะอ่านค่าคำอธิบายประกอบ @Column ของฉัน ( columnName = "xyz123") ในคลาสอื่น


6
คำอธิบายประกอบเช่น @Override ทำงานภายใน Java ได้อย่างไร
ใครช่วยอธิบายให้ฉันฟังว่าคำอธิบายประกอบทำงานภายใน java ได้อย่างไร ฉันรู้ว่าเราสามารถสร้างคำอธิบายประกอบแบบกำหนดเองได้อย่างไรโดยใช้ไลบรารี java.lang.annotation ใน java แต่ฉันยังไม่เข้าใจว่ามันทำงานอย่างไรภายในเช่นคำอธิบายประกอบ @Override ฉันจะขอบคุณมากถ้าใครสามารถอธิบายโดยละเอียดได้
93 java  annotations 

8
คำอธิบายประกอบประเภทเดียวกันหลายรายการในองค์ประกอบเดียว?
ฉันพยายามตบคำอธิบายประกอบประเภทเดียวกันสองรายการขึ้นไปในองค์ประกอบเดียวในกรณีนี้คือวิธีการ นี่คือรหัสโดยประมาณที่ฉันกำลังดำเนินการ: public class Dupe { public @interface Foo { String bar(); } @Foo(bar="one") @Foo(bar="two") public void haha() {} } เมื่อรวบรวมข้อมูลข้างต้น javac บ่นเกี่ยวกับคำอธิบายประกอบที่ซ้ำกัน: max @ upsight: ~ / work / daybreak $ javac Dupe.java Dupe.java:5: คำอธิบายประกอบที่ซ้ำกัน เป็นไปไม่ได้ที่จะทำซ้ำคำอธิบายประกอบเช่นนี้? พูดอย่างอวดดีสองอินสแตนซ์ของ @Foo ข้างต้นไม่แตกต่างกันเนื่องจากเนื้อหาต่างกันใช่หรือไม่? หากไม่สามารถทำได้ข้างต้นมีวิธีแก้ไขปัญหาอะไรบ้าง UPDATE: ฉันถูกขอให้อธิบายกรณีการใช้งานของฉัน นี่ไป ฉันกำลังสร้างกลไกเชิงไวยากรณ์เพื่อ "แมป" POJO ไปยังที่เก็บเอกสารเช่น MongoDB ฉันต้องการอนุญาตให้ระบุดัชนีเป็นคำอธิบายประกอบบน …
92 java  annotations 

3
เหตุใดคำอธิบายประกอบที่ขาดหายไปจึงไม่ทำให้เกิด ClassNotFoundException ที่รันไทม์
พิจารณารหัสต่อไปนี้: อ. จาวา: import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @interface A{} ค. java: import java.util.*; @A public class C { public static void main(String[] args){ System.out.println(Arrays.toString(C.class.getAnnotations())); } } การรวบรวมและเรียกใช้งานได้ตามที่คาดไว้: $ javac *.java $ java -cp . C [@A()] แต่ให้พิจารณาสิ่งนี้: $ rm A.class $ java -cp . C [] ฉันคาดว่ามันจะขว้างClassNotFoundExceptionเพราะ@Aหายไป แต่กลับทิ้งคำอธิบายประกอบอย่างเงียบ ๆ …
92 java  annotations 

5
ฉันควรใส่คำอธิบายประกอบ @Transactional ไว้ที่ใดที่นิยามอินเตอร์เฟสหรือในคลาสการนำไปใช้งาน
คำถามจากชื่อในรหัส: @Transactional (readonly = true) public interface FooService { void doSmth (); } public class FooServiceImpl implements FooService { ... } เทียบกับ public interface FooService { void doSmth (); } @Transactional (readonly = true) public class FooServiceImpl implements FooService { ... }

2
จะสร้างพารามิเตอร์ทางเลือกสำหรับคำอธิบายประกอบของตัวเองได้อย่างไร?
ต่อไปนี้คือรหัสคำอธิบายประกอบ public @interface ColumnName { String value(); String datatype(); } ฉันต้องการสร้างdatatypeพารามิเตอร์ที่เป็นทางเลือกตัวอย่างเช่น @ColumnName(value="password") ควรเป็นรหัสที่ถูกต้อง
91 java  annotations 

17
@Autowired - ไม่พบถั่วที่มีคุณสมบัติสำหรับการพึ่งพา
ฉันเริ่มโครงการโดยสร้างเอนทิตีบริการและการทดสอบ JUnit สำหรับบริการโดยใช้ Spring และ Hibernate ทั้งหมดนี้ใช้งานได้ดี จากนั้นฉันได้เพิ่ม spring-mvc เพื่อสร้างเว็บแอปพลิเคชันนี้โดยใช้แบบฝึกหัดทีละขั้นตอน แต่เมื่อฉันพยายามสร้าง Controller ด้วยคำอธิบายประกอบ @Autowired ฉันได้รับข้อผิดพลาดจาก Glassfish ในระหว่างการปรับใช้ ฉันเดาว่าด้วยเหตุผลบางอย่าง Spring ไม่เห็นบริการของฉัน แต่หลังจากพยายามหลายครั้งฉันก็ยังไม่สามารถจัดการได้ ทดสอบบริการด้วย @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/beans.xml"}) และ @Autowired MailManager mailManager; ทำงานได้อย่างถูกต้อง ตัวควบคุมที่ไม่มี @Autowired ด้วยฉันสามารถเปิดโครงการของฉันในเว็บเบราว์เซอร์ได้โดยไม่มีปัญหา /src/main/resources/beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd …

8
วิธีสแกนหลายเส้นทางโดยใช้คำอธิบายประกอบ @ComponentScan
ฉันใช้ Spring 3.1 และบูตแอปพลิเคชันโดยใช้แอตทริบิวต์@Configurationand@ComponentScan เริ่มต้นจริงด้วย new AnnotationConfigApplicationContext(MyRootConfigurationClass.class); คลาส Configuration นี้มีคำอธิบายประกอบ @Configuration @ComponentScan("com.my.package") public class MyRootConfigurationClass และใช้งานได้ดี อย่างไรก็ตามฉันต้องการเจาะจงมากขึ้นเกี่ยวกับแพ็คเกจที่ฉันสแกนดังนั้นฉันจึงลอง @Configuration @ComponentScan("com.my.package.first,com.my.package.second") public class MyRootConfigurationClass อย่างไรก็ตามสิ่งนี้ล้มเหลวโดยมีข้อผิดพลาดบอกฉันว่าไม่พบส่วนประกอบที่ระบุโดยใช้@Componentคำอธิบายประกอบ วิธีที่ถูกต้องในการทำสิ่งที่ฉันต้องการคืออะไร? ขอบคุณ

2
จะดึงอินสแตนซ์ที่มีคำอธิบายประกอบจากหัวฉีดของ Guice ได้อย่างไร
สมมติว่าฉันมีโมดูล: Module extends AbstractModule { @Override protected void configure() { bind(String.class). annotatedWith(Names.named("annotation")). toInstance("DELIRIOUS"); } } และฉันต้องการทดสอบโมดูลและตรวจสอบว่ามันฉีดค่าที่ถูกต้องในStringฟิลด์ที่มีคำอธิบายประกอบNames.named("annotation")โดยไม่ต้องมีคลาสและฟิลด์ แต่ได้รับค่าโดยตรงจากหัวฉีด: @Test public void test() { Injector injector = Guice.createInjector(new Module()); // THIS IS NOT GOING TO WORK! String delirious = injector.getInstance(String.class); assertThat(delirious, IsEqual.equalTo("DELIRIOUS"); }

4
Android Retrofit Parameterized @Headers
ฉันใช้ OAuth และต้องใส่โทเค็น OAuth ในส่วนหัวทุกครั้งที่ส่งคำขอ ฉันเห็น@Headerคำอธิบายประกอบ แต่มีวิธีทำให้เป็นพารามิเตอร์เพื่อให้ฉันส่งผ่านไปได้หรือไม่ นี่คือแนวคิด @Header({Authorization:'OAuth {var}', api_version={var} }) คุณสามารถส่งผ่าน Runtime ได้หรือไม่? @GET("/users") void getUsers( @Header("Authorization") String auth, @Header("X-Api-Version") String version, Callback<User> callback )
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.