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

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

9
วิธีการใช้คำอธิบายประกอบ @Nullable และ @Nonnull มีประสิทธิภาพมากขึ้นได้อย่างไร
ฉันเห็นว่าคำอธิบายประกอบ@Nullableและอาจมีประโยชน์ในการป้องกันs แต่พวกเขาไม่เผยแพร่ไกลมาก@NonnullNullPointerException ประสิทธิผลของการเพิ่มความคิดเห็นเหล่านี้จะลดลงอย่างสมบูรณ์หลังจากผ่านไปหนึ่งระดับทางอ้อมดังนั้นหากคุณเพิ่มเพียงไม่กี่อย่างพวกเขาก็จะไม่เผยแพร่ไกลมากนัก เนื่องจากคำอธิบายประกอบเหล่านี้ไม่ได้บังคับใช้อย่างดีมีความเสี่ยงที่จะถือว่าค่าที่ทำเครื่องหมายด้วย@Nonnullนั้นไม่เป็นโมฆะดังนั้นจึงไม่สามารถทำการตรวจสอบโมฆะได้ โค้ดข้างล่างนี้เป็นสาเหตุของพารามิเตอร์ที่มีเครื่องหมาย@Nonnullที่จะเป็นnullโดยไม่ต้องเพิ่มข้อร้องเรียนใด ๆ มันจะพ่นNullPointerExceptionเมื่อมันถูกเรียกใช้ public class Clazz { public static void main(String[] args){ Clazz clazz = new Clazz(); // this line raises a complaint with the IDE (IntelliJ 11) clazz.directPathToA(null); // this line does not clazz.indirectPathToA(null); } public void indirectPathToA(Integer y){ directPathToA(y); } public void directPathToA(@Nonnull Integer …


4
@Column ไม่ได้รับอนุญาตในคุณสมบัติ @ManyToOne
ฉันมีเอนทิตี JPA ที่มีคุณสมบัติตั้งเป็น @ManyToOne @Column(name="LicenseeFK") private Licensee licensee; แต่เมื่อฉันปรับใช้บน JBoss 6 แอปพลิเคชันแสดงข้อผิดพลาดว่า: org.hibernate.AnnotationException: @Column(s) not allowed on a @ManyToOne property ฉันใช้ Hibernate 3.5 เป็นการใช้งาน JPA 2.0 ฉันควรใช้อะไรในการอ้างอิงคอลัมน์ Foreign Key

10
ทำไม Eclipse ถึงบ่นเกี่ยวกับ @Override เกี่ยวกับวิธีการอินเทอร์เฟซ
ฉันมีโปรเจ็กต์ที่มีอยู่ซึ่งใช้@Overrideเมธอดที่แทนที่เมธอดอินเตอร์เฟสแทนที่จะเป็นเมธอด superclass ฉันไม่สามารถแก้ไขรหัสนี้ได้ แต่ฉันต้องการให้ Eclpse หยุดบ่นเกี่ยวกับคำอธิบายประกอบเพราะฉันยังสามารถสร้างด้วย Maven ได้ ฉันจะปิดการใช้งานข้อผิดพลาดนี้ได้อย่างไร หมายเหตุ: เนื่องจากข้อกำหนดของโครงการฉันต้องคอมไพล์สำหรับ Java 1.5

25
คำอธิบายประกอบไฮเบอร์เนต - การเข้าถึงฟิลด์หรือคุณสมบัติใดดีกว่ากัน
คำถามนี้เป็นคำถามที่ค่อนข้างที่เกี่ยวข้องกับHibernate หมายเหตุตำแหน่งคำถาม แต่อยากรู้ว่าอันไหนดีกว่ากัน ? เข้าถึงผ่านคุณสมบัติหรือเข้าถึงผ่านช่อง? ข้อดีข้อเสียของแต่ละอย่างเป็นอย่างไร?
135 java  hibernate  orm  jpa  annotations 

16
การกำหนดค่า XML เทียบกับการกำหนดค่าตามคำอธิบายประกอบ [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบพร้อมข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ในโครงการขนาดใหญ่สองสามโครงการที่ฉันได้ดำเนินการเมื่อไม่นานมานี้ดูเหมือนว่าการเลือกโครงการใดโครงการหนึ่ง (XML หรือ Annotation) มีความสำคัญมากขึ้น เมื่อโครงการเติบโตขึ้นความสม่ำเสมอเป็นสิ่งสำคัญมากสำหรับการบำรุงรักษา คำถามของฉันคืออะไรคือข้อดีของการกำหนดค่าที่ใช้ XML เหนือการกำหนดค่าตามคำอธิบายประกอบและอะไรคือข้อดีของการกำหนดค่าตามคำอธิบายประกอบผ่านการกำหนดค่าตาม XML
132 java  xml  spring  annotations 

7
ฉันควรใช้คำอธิบายประกอบแบบใด: @IdClass หรือ @EmbeddedId
ข้อกำหนดJPA(Java Persistence API) มี 2 วิธีในการระบุคีย์คอมโพสิตของเอนทิตี: @IdClassและ@EmbeddedId. ผมใช้ทั้งคำอธิบายประกอบในหน่วยงานแมปของฉัน JPAแต่มันจะเปิดออกเพื่อจะรับประทานอาหารขนาดใหญ่ให้กับผู้ที่ไม่คุ้นเคยกับ ฉันต้องการใช้วิธีเดียวในการระบุคีย์ผสมเท่านั้น อันไหนดีที่สุด? ทำไม?

5
วิธีกำหนดพารามิเตอร์ @Scheduled (fixedDelay) ด้วยภาษานิพจน์ Spring 3.0
เมื่อใช้ความสามารถ Spring 3.0 เพื่อใส่คำอธิบายประกอบงานที่กำหนดเวลาไว้ฉันต้องการตั้งค่าfixedDelayพารามิเตอร์ as จากไฟล์คอนฟิกูเรชันของฉันแทนที่จะเดินสายไฟลงในคลาสงานของฉันอย่างหนักเช่นในปัจจุบัน ... @Scheduled(fixedDelay = 5000) public void readLog() { ... } น่าเสียดายที่ดูเหมือนว่าด้วยวิธีการของ Spring Expression Language (SpEL) @Valueจะส่งคืนอ็อบเจกต์ String ซึ่งจะไม่สามารถใส่กล่องอัตโนมัติเป็นค่ายาวได้ตามที่fixedDelayพารามิเตอร์ต้องการ

2
คำอธิบายประกอบประเภทการส่งคืน Python เป็นโมฆะ
ใน python 3.x เป็นเรื่องปกติที่จะใช้คำอธิบายประกอบชนิด return ของฟังก์ชันเช่น: def foo() -> str: return "bar" คำอธิบายประกอบที่ถูกต้องสำหรับประเภท "โมฆะ" คืออะไร? ฉันกำลังพิจารณา 3 ตัวเลือก: def foo() -> None: ไม่ใช่ IMO เชิงตรรกะเพราะNoneไม่ใช่ประเภท def foo() -> type(None): โดยใช้ไวยากรณ์ที่ดีที่สุดที่ฉันรู้จักเพื่อให้ได้NoneTypeมา def foo(): ละเว้นข้อมูลประเภทการส่งคืนที่ชัดเจน ตัวเลือกที่ 2 ดูเหมือนจะสมเหตุสมผลที่สุดสำหรับฉัน แต่ฉันได้เห็นบางกรณีของ 1 แล้ว

4
มีบางอย่างเช่น Annotation Inheritance ใน java หรือไม่?
ฉันกำลังสำรวจคำอธิบายประกอบและมาถึงจุดที่ดูเหมือนว่าคำอธิบายประกอบบางส่วนจะมีลำดับชั้น ฉันใช้คำอธิบายประกอบเพื่อสร้างโค้ดในพื้นหลังสำหรับการ์ด การ์ดมีหลายประเภท (รหัสและคำอธิบายประกอบที่แตกต่างกัน) แต่มีองค์ประกอบบางอย่างที่เหมือนกันเช่นชื่อ @Target(value = {ElementType.TYPE}) public @interface Move extends Page{ String method1(); String method2(); } และนี่จะเป็นคำอธิบายประกอบทั่วไป: @Target(value = {ElementType.TYPE}) public @interface Page{ String method3(); } ในตัวอย่างด้านบนฉันคาดว่า Move to inherit method3 แต่ฉันได้รับคำเตือนว่าขยายไม่ถูกต้องกับคำอธิบายประกอบ ฉันพยายามให้คำอธิบายประกอบขยายฐานทั่วไป แต่ไม่ได้ผล เป็นไปได้หรือเป็นเพียงปัญหาการออกแบบ

8
ไม่พบ @Nullable ใน javax.annotation *
ฉันต้องการใช้บันทึกย่อที่จะกำจัด@Nullable NullPointerExceptionsผมพบว่าบทเรียนบางอย่างในสุทธิผมสังเกตเห็นว่าคำอธิบายประกอบนี้มาจากแพคเกจjavax.annotation.Nullable; แต่เมื่อฉันนำเข้ามันเกิดข้อผิดพลาดในการคอมไพล์: ไม่พบสัญลักษณ์

8
คำอธิบายประกอบ Java
จุดประสงค์ของคำอธิบายประกอบใน Java คืออะไร? ฉันมีความคิดที่คลุมเครือเกี่ยวกับพวกเขาในระหว่างความคิดเห็นและรหัสจริง มีผลต่อโปรแกรมในขณะรันหรือไม่ ประเพณีของพวกเขาคืออะไร? เป็นเอกลักษณ์ของ Java หรือไม่? เทียบเท่า C ++ หรือไม่?

2
เมื่อใส่คำอธิบายประกอบชั้นเรียนด้วย @Component หมายความว่าเป็น Spring Bean และ Singleton หรือไม่
ฉันค่อนข้างใหม่สำหรับ Spring ฉันมีคำถามเกี่ยวกับการใส่คำอธิบายประกอบชั้นเรียน เมื่อใส่คำอธิบายประกอบคลาสด้วย@Componentหมายความว่าคลาสนี้จะเป็น Spring Bean และโดยค่าเริ่มต้นเป็นซิงเกิลตันหรือไม่

11
ฉันต้องการองค์ประกอบ <class> ใน persistence.xml หรือไม่?
ฉันมีไฟล์ persistance.xml ที่ง่ายมาก: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"&gt; &lt;persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL"&gt; &lt;class&gt;pl.michalmech.eventractor.domain.User&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.Address&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.City&lt;/class&gt; &lt;class&gt;pl.michalmech.eventractor.domain.Country&lt;/class&gt; &lt;properties&gt; &lt;property name="hibernate.hbm2ddl.auto" value="validate" /&gt; &lt;property name="hibernate.show_sql" value="true" /&gt; &lt;/properties&gt; &lt;/persistence-unit&gt; &lt;/persistence&gt; และมันได้ผล แต่เมื่อฉันลบ&lt;class&gt;แอปพลิเคชันองค์ประกอบไม่เห็นเอนทิตี (ทุกคลาสมีคำอธิบายประกอบ@Entity) มีกลไกอัตโนมัติในการสแกนหา@Entityชั้นเรียนหรือไม่?
110 java  hibernate  orm  jpa  annotations 

2
เหตุใดคลาส java จึงไม่สืบทอดคำอธิบายประกอบจากอินเทอร์เฟซที่ใช้งาน
ฉันใช้ AOP ของ Guice เพื่อดักฟังการเรียกใช้วิธีการบางอย่าง ชั้นเรียนของฉันใช้อินเทอร์เฟซและฉันต้องการใส่คำอธิบายประกอบวิธีการเชื่อมต่อเพื่อให้ Guice สามารถเลือกวิธีการที่เหมาะสม แม้ว่าประเภทคำอธิบายประกอบจะถูกใส่คำอธิบายประกอบด้วยคลาสการใช้คำอธิบายประกอบที่สืบทอดมาจะไม่สืบทอดคำอธิบายประกอบตามที่ระบุไว้ในเอกสาร java ของการสืบทอด: โปรดทราบด้วยว่าคำอธิบายประกอบเมตานี้ทำให้คำอธิบายประกอบที่สืบทอดมาจากคลาสระดับสูงเท่านั้น คำอธิบายประกอบบนอินเทอร์เฟซที่ใช้งานไม่มีผล อะไรคือสาเหตุของเรื่องนี้? การทำความรู้จักกับอินเทอร์เฟซทั้งหมดที่คลาสของอ็อบเจ็กต์นำไปใช้ในรันไทม์ไม่ใช่เรื่องยากที่จะทำดังนั้นจึงต้องมีเหตุผลที่ดีอยู่เบื้องหลังการตัดสินใจนี้

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