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

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

29
อะไรคือความแตกต่างระหว่างคำอธิบายประกอบ @Component, @Repository & @Service ใน Spring
Наэтотвопросестьответына Stack Overflow нарусском : АннотацииSpringа Can @Component, @Repositoryและ@Serviceคำอธิบายประกอบจะใช้สลับกันในฤดูใบไม้ผลิหรือพวกเขาไม่ให้การทำงานใด ๆ นอกเหนือจากการทำหน้าที่เป็นอุปกรณ์สัญกรณ์? กล่าวอีกนัยหนึ่งถ้าฉันมีคลาสบริการและฉันเปลี่ยนคำอธิบายประกอบจาก@Serviceเป็น@Componentจะยังคงทำงานในลักษณะเดียวกันหรือไม่ คำอธิบายประกอบหรือไม่ก็มีผลต่อพฤติกรรมและการทำงานของชั้นเรียนหรือไม่

22
ฉันควรใช้คำอธิบายประกอบ @NotNull Java ใด
ฉันต้องการทำให้โค้ดของฉันอ่านง่ายขึ้นรวมถึงใช้เครื่องมือเช่นการตรวจสอบรหัส IDE และ / หรือการวิเคราะห์รหัสแบบคงที่ (FindBugs และ Sonar) เพื่อหลีกเลี่ยง NullPointerExceptions เครื่องมือจำนวนมากดูไม่เข้ากันกับ@NotNull/ @NonNull/ / @Nonnullหมายเหตุประกอบของแต่ละคนและการแสดงรายการทั้งหมดในรหัสของฉันจะอ่านได้แย่มาก คำแนะนำใดที่ 'ดีที่สุด'? นี่คือรายการคำอธิบายประกอบที่เทียบเท่าที่ฉันพบ: javax.validation.constraints.NotNull สร้างขึ้นสำหรับการตรวจสอบความถูกต้องรันไทม์ไม่ใช่การวิเคราะห์แบบคงที่ เอกสาร edu.umd.cs.findbugs.annotations.NonNull ใช้โดยFindBugsวิเคราะห์แบบคงที่และดังนั้นจึง Sonar (ตอนนี้Sonarqube ) เอกสาร javax.annotation.Nonnull สิ่งนี้อาจใช้ได้กับ Findbugs ด้วยเช่นกัน แต่JSR-305ไม่ได้ใช้งาน (ดูเพิ่มเติม: อะไรคือสถานะของ JSR 305? ) แหล่งที่มา org.jetbrains.annotations.NotNull ใช้โดย IntelliJ IDEA IDE สำหรับการวิเคราะห์แบบคงที่ เอกสาร lombok.NonNull ใช้ในการควบคุมการสร้างรหัสในโครงการลอมบอก คำอธิบายประกอบตัวยึดเนื่องจากไม่มีมาตรฐาน แหล่งที่มา , เอกสาร …

15
ความแตกต่างระหว่าง <context: annotation-config> และ <context: component-scan>
ฉันเรียนรู้ฤดูใบไม้ผลิ 3 และฉันดูเหมือนจะไม่เข้าใจที่อยู่เบื้องหลังการทำงานและ&lt;context:annotation-config&gt;&lt;context:component-scan&gt; จากสิ่งที่ผมเคยอ่านพวกเขาดูเหมือนจะจัดการที่แตกต่างกันคำอธิบายประกอบ ( @Required, @Autowiredฯลฯ VS @Component, @Repository, @Serviceฯลฯ ) แต่ยังมาจากสิ่งที่ผมเคยอ่านพวกเขาลงทะเบียนเดียวกันถั่วโพสต์ประมวลผลการเรียน เพื่อสร้างความสับสนให้ฉันมากยิ่งขึ้นมีannotation-config แอตทริบิวต์&lt;context:component-scan&gt;บน มีใครบางคนส่องแสงของแท็กเหล่านี้ได้บ้าง มีอะไรที่คล้ายกันแตกต่างกันอย่างไรสิ่งหนึ่งแตกต่างจากคนอื่นพวกเขาทำให้กันและกันฉันต้องการหนึ่งในนั้นทั้งคู่หรือไม่

19
คำอธิบายประกอบ @Transactional อยู่ที่ไหน
คุณควรวาง@TransactionalในDAOชั้นเรียนและ / หรือวิธีการของพวกเขาหรือมันจะดีกว่าที่จะใส่คำอธิบายประกอบชั้นเรียนบริการที่กำลังเรียกใช้วัตถุ DAO? หรือเหมาะสมที่จะอธิบายคำว่า "เลเยอร์" ทั้งคู่?

27
คุณใช้คำอธิบายประกอบ @Override ของ Java เมื่อใดและเพราะเหตุใด
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ตั้งค่าไว้ที่นี่แล้วStack Overflow нарусском : Чтоозначает "@Override" передобъявлениемметода? แนวปฏิบัติที่ดีที่สุดสำหรับการใช้@Overrideคำอธิบายประกอบของ Java คืออะไรและเพราะเหตุใด ดูเหมือนว่าจะเป็น overkill ในการทำเครื่องหมายทุกวิธีการแทนที่ด้วย@Overrideคำอธิบายประกอบ มีสถานการณ์การเขียนโปรแกรมบางอย่างที่เรียกใช้@Overrideและอื่น ๆ ที่ไม่ควรใช้@Overrideหรือไม่
498 java  annotations 

7
-> หมายถึงอะไรในนิยามฟังก์ชันของ Python
ฉันเพิ่งสังเกตเห็นสิ่งที่น่าสนใจเมื่อดูข้อมูลจำเพาะของไวยากรณ์ Python 3.3 : funcdef: 'def' NAME parameters ['-&gt;' test] ':' suite บล็อก 'ลูกศร' ไม่ปรากฏใน Python 2 และฉันไม่พบข้อมูลใด ๆ เกี่ยวกับความหมายของมันใน Python 3 ปรากฎว่านี่เป็น Python ที่ถูกต้องและเป็นที่ยอมรับโดยล่าม: def f(x) -&gt; 123: return x ฉันคิดว่านี่อาจเป็นรูปแบบของเงื่อนไขเบื้องต้น แต่: ฉันไม่สามารถทดสอบได้xที่นี่เพราะมันยังไม่ได้กำหนด ไม่ว่าฉันจะวางลูกศรไว้ที่ใด (เช่น2 &lt; 1) มันไม่ส่งผลกระทบต่อการทำงานของฟังก์ชัน ใครบ้างที่คุ้นเคยกับไวยากรณ์นี้จะอธิบายหรือไม่

14
ฤดูใบไม้ผลิ: @ ส่วนประกอบกับ @Bean
ฉันเข้าใจว่ามีการเพิ่ม@Componentคำอธิบายประกอบในฤดูใบไม้ผลิ 2.5 เพื่อกำจัดคำจำกัดความ xml bean โดยใช้การสแกนคลาสพา ธ @Beanถูกนำมาใช้ในฤดูใบไม้ผลิ 3.0 และสามารถใช้กับ@Configurationเพื่อกำจัดไฟล์ xml อย่างสมบูรณ์และใช้การกำหนดค่า Java แทน เป็นไปได้ไหมที่จะใช้@Componentคำอธิบายประกอบซ้ำแทนที่จะแนะนำ@Beanคำอธิบายประกอบ ความเข้าใจของฉันคือเป้าหมายสุดท้ายคือการสร้างถั่วในทั้งสองกรณี

13
JsonMappingException: ไม่พบตัวสร้างที่เหมาะสมสำหรับชนิด [ชนิดง่าย ๆ คลาส]: ไม่สามารถสร้างอินสแตนซ์จากวัตถุ JSON
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามรับคำขอ JSON และดำเนินการ: org.codehaus.jackson.map.JsonMappingException: ไม่พบตัวสร้างที่เหมาะสมสำหรับประเภท [ประเภทอย่างง่าย, คลาส com.myweb.ApplesDO]: ไม่สามารถสร้างอินสแตนซ์จากวัตถุ JSON (ต้องการเพิ่ม / เปิดใช้งานข้อมูลประเภทใช่หรือไม่) นี่คือ JSON ที่ฉันพยายามจะส่ง: { "applesDO" : [ { "apple" : "Green Apple" }, { "apple" : "Red Apple" } ] } ในตัวควบคุมฉันมีลายเซ็นของวิธีการต่อไปนี้: @RequestMapping("showApples.do") public String getApples(@RequestBody final AllApplesDO applesRequest){ // Method Code } AllApplesDO เป็นเสื้อคลุมของ ApplesDO: public …

15
เราควร @Override การใช้วิธีการอินเตอร์เฟซ?
ควรทำหมายเหตุประกอบวิธีที่ใช้วิธีการเชื่อมต่อกับ@Override? Javadoc ของOverrideคำอธิบายประกอบพูดว่า: บ่งชี้ว่าการประกาศเมธอดมีวัตถุประสงค์เพื่อแทนที่การประกาศเมธอดในซูเปอร์คลาส หากเมธอดถูกทำหมายเหตุประกอบด้วยชนิดคำอธิบายประกอบนี้ แต่ไม่ได้แทนที่เมธอด superclass จำเป็นต้องมีคอมไพเลอร์เพื่อสร้างข้อความแสดงข้อผิดพลาด ฉันไม่คิดว่าอินเทอร์เฟซเป็นซูเปอร์คลาสในทางเทคนิค หรือมันคืออะไร? Question Elaboration

4
ความแตกต่างระหว่าง @Before, @BeforeClass, @BeforeEach และ @BeforeAll
ความแตกต่างที่สำคัญระหว่างคืออะไร @Before และ @BeforeClass และใน JUnit 5 @BeforeEachและ@BeforeAll @After และ @AfterClass ตามที่JUnit Api @Beforeใช้ในกรณีต่อไปนี้: เมื่อเขียนการทดสอบเป็นเรื่องปกติที่พบว่าการทดสอบหลายรายการต้องการวัตถุที่คล้ายกันที่สร้างขึ้นก่อนที่จะสามารถเรียกใช้ได้ ในขณะที่@BeforeClassสามารถใช้เพื่อสร้างการเชื่อมต่อฐานข้อมูล แต่@Beforeทำไม่ได้เหมือนกันเหรอ?

11
@Resource กับ @Autowired
ซึ่งคำอธิบายประกอบ@Resource ( jsr250 ) หรือ@Autowired (ฤดูใบไม้ผลิที่เฉพาะเจาะจง) ผมควรจะใช้ในการ DI? ฉันใช้งานได้สำเร็จทั้งในอดีต@Resource(name="blah")และ@Autowired @Qualifier("blah") สัญชาตญาณของฉันคือติดกับ@Resourceแท็กเนื่องจากมันได้รับการยอมรับจากคน jsr ใครมีความคิดที่แข็งแกร่งในเรื่องนี้?

4
@ การใช้คำอธิบายประกอบที่เป็นโมฆะ
ฉันเห็นวิธีการบางอย่างใน java ประกาศว่า: void foo(@Nullable Object obj) { ... } ความหมายของ@Nullableที่นี่คืออะไร? หมายความว่าอินพุตอาจเป็นได้nullหรือไม่ หากไม่มีคำอธิบายประกอบอินพุตยังคงเป็นโมฆะดังนั้นฉันเดาว่าไม่ใช่แค่นั้น
347 java  annotations 

6
ใช้ @JsonIgnore เฉพาะระหว่างการทำให้เป็นอนุกรม แต่ไม่ใช่การดีซีเรียลไลเซชัน
ฉันมีวัตถุผู้ใช้ที่ส่งไปยังและจากเซิร์ฟเวอร์ เมื่อฉันส่งวัตถุผู้ใช้ออกฉันไม่ต้องการส่งรหัสผ่านที่แฮชไปยังไคลเอนต์ ดังนั้นฉันเพิ่ม@JsonIgnoreในคุณสมบัติรหัสผ่าน แต่ยังป้องกันไม่ให้ถูกดีซีเรียลไลซ์ลงในรหัสผ่านซึ่งทำให้ยากต่อการลงทะเบียนผู้ใช้เมื่อพวกเขาไม่ได้รับรหัสผ่าน ฉัน@JsonIgnoreจะนำไปใช้กับการทำให้เป็นอนุกรมเท่านั้นและไม่ได้ทำการดีซีเรียลไลเซชัน? ฉันใช้ Spring JSONView ดังนั้นฉันจึงไม่สามารถควบคุมสิ่งObjectMapperต่างๆ สิ่งที่ฉันได้ลอง: เพิ่ม@JsonIgnoreไปยังคุณสมบัติ เพิ่ม@JsonIgnoreในวิธี getter เท่านั้น

11
ฉันจะยืนยันข้อความแสดงข้อยกเว้นด้วยคำอธิบายประกอบการทดสอบ JUnit ได้อย่างไร
ฉันได้เขียนการทดสอบ JUnit สองสาม@Testฉบับพร้อมคำอธิบายประกอบ หากวิธีทดสอบของฉันมีข้อยกเว้นที่ตรวจสอบและหากฉันต้องการยืนยันข้อความพร้อมกับข้อยกเว้นจะมีวิธีการทำ@TestคำอธิบายประกอบJUnit หรือไม่? AFAIK, JUnit 4.7 ไม่ได้มีคุณสมบัตินี้ แต่มีรุ่นอื่น ๆ ในอนาคตหรือไม่ ฉันรู้ใน. NET คุณสามารถยืนยันข้อความและชั้นยกเว้น กำลังมองหาคุณสมบัติที่คล้ายกันในโลก Java นี่คือสิ่งที่ฉันต้องการ: @Test (expected = RuntimeException.class, message = "Employee ID is null") public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}

5
อะไรคือความแตกต่างระหว่างอินเตอร์เฟสและ @interface ใน java?
ฉันยังไม่ได้สัมผัส Java ตั้งแต่ใช้ JBuilder ในช่วงปลายยุค 90 ในขณะที่อยู่ที่มหาวิทยาลัยดังนั้นฉันจึงรู้สึกไม่ค่อยดีไม่ว่าจะด้วยวิธีใดก็ตามฉันได้ทำงานกับโปรเจ็กต์ขนาดเล็กในสัปดาห์นี้และใช้ Intellij IDEA เป็น IDE ของฉัน สำหรับการเปลี่ยนแปลงของการก้าวจากการพัฒนา. net ปกติของฉัน ฉันสังเกตเห็นว่ามันรองรับการเพิ่มอินเตอร์เฟสและ @interfaces @interface คืออะไรและมันแตกต่างจากอินเตอร์เฟสปกติอย่างไร public interface Test { } เมื่อเทียบกับ public @interface Test { } ฉันได้ทำการค้นหาเล็กน้อย แต่ไม่พบข้อมูลที่เป็นประโยชน์มากมายที่อ้างถึง @interface

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