คุณจะหลีกเลี่ยงอักขระ @ ใน javadoc ได้อย่างไร?


180

ฉันจะหนีจาก@สัญลักษณ์ใน javadoc ได้อย่างไร ฉันพยายามใช้ภายใน{@code}แท็กซึ่งอยู่ใน<pre>แท็ก

ฉันลองใช้&#64;ลำดับhtml escape แล้ว แต่นั่นไม่ได้ผล


ตอนนี้มันเริ่มแสดงได้ดีหลังจากที่ฉันปรับการเยื้องในบล็อก @ {code}! นี่เป็น Eclipse ถ้ามันสำคัญ
JayL

ฉันยังไม่สามารถใช้งานได้
Neil Benn

คำตอบ:


267

ใช้{@literal}แท็ก javadoc:

/**
 * This is an "at" symbol: {@literal @}
 */

javadoc สำหรับสิ่งนี้จะอ่าน:

This is an "at" symbol: @

แน่นอนว่ามันจะใช้ได้กับตัวละครทุกตัวและเป็นวิธีที่ "สนับสนุนอย่างเป็นทางการ" ในการแสดงตัวอักษร "พิเศษ" ใด ๆ

มันเป็นสิ่งที่ตรงไปตรงมาที่สุด - คุณไม่จำเป็นต้องรู้รหัสฐานสิบหกของตัวละครและคุณสามารถอ่านสิ่งที่คุณพิมพ์ได้!


1
คุณหนีจาก}สัญลักษณ์อย่างไร
ADTC

1
@ADTC คุณทำไม่ได้ ทำไมคุณต้องการที่จะ? }ไม่มีความหมายพิเศษใน html
โบฮีเมียน

ดังนั้นฉันเดาว่าคุณสามารถแยกมันออกเป็นสองliteralแท็กเท่านั้น
ADTC

23
ฉันประหลาดใจที่สิ่งนี้ได้รับการยอมรับและได้รับการโหวตมากขึ้น สถานที่ตั้งของคำถาม: ในแท็ก {} @code {@literal} ไม่ทำงานในแท็ก {@code}
Daniel C. Sobral

6
ถนัด{และเพียงแค่การใช้@literal @งานภายในของ{@code}แท็ก
แบรด Turek

55

เพียงเขียนเป็นนิติบุคคล HTML:

&#064;

จากเอกสาร " javadoc - ตัวสร้างเอกสาร Java API "

หากคุณต้องการเริ่มบรรทัดด้วยอักขระ @ และไม่สามารถตีความได้ให้ใช้เอนทิตี HTML @

นี่หมายความว่าคุณสามารถใช้เอนทิตี HTML สำหรับตัวละครใด ๆที่คุณต้องหลบหนีและแน่นอนคุณสามารถ:

ข้อความจะต้องเขียนใน HTML ด้วยเอนทิตี HTML และแท็ก HTML คุณสามารถใช้ HTML เวอร์ชันใดก็ได้ที่เบราว์เซอร์ของคุณรองรับ doclet มาตรฐานสร้างรหัสที่สอดคล้องกับ HTML 3.2 ที่อื่น (นอกความคิดเห็นเอกสารประกอบ) พร้อมด้วยการรวมสไตล์ชีทและเฟรม HTML 4.0 เป็นที่ต้องการสำหรับไฟล์ที่สร้างขึ้นเนื่องจากชุดเฟรม

ยกตัวอย่างเช่นหน่วยงานสำหรับน้อยกว่าสัญลักษณ์ (<) และมากกว่าสัญลักษณ์ (>) ควรจะเขียนเป็นและ&lt; &gt;ในทำนองเดียวกัน ampersand (&) &amp;ควรจะเขียนเป็น


มันทำงานได้ดีกว่าการแสดงออกตามตัวอักษรเมื่อไม่ได้ตามด้วยช่องว่าง (เมื่อเขียนคำอธิบายประกอบ)
Bludwarf

8

ทางออกของฉันคือ

/**
 * Mapper Test Helper.
 *
 * add the following annotations above the class
 * <pre>{@code
 * // junit5
 * @literal @ExtendWith(SpringExtension.class)
 * // junit4
 * @literal @RunWith(SpringRunner.class)
 * }</pre>
 */

2

คุณมีความคิดทั่วไปลองใช้การแทนฐานแปด: &#064;


6
นี่ไม่ใช่ฐานแปด
Joey

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