Programing

Javadoc 주석의 다중 회선 코드 예제

c10106 2022. 5. 9. 21:35
반응형

Javadoc 주석의 다중 회선 코드 예제

나는 어떤 방법에 대한 자바도크 코멘트에 포함시키고 싶은 작은 코드 예를 가지고 있다.

/**
 * -- ex: looping through List of Map objects --
 * <code>
 * for (int i = 0; i < list.size(); i++) {
 *      Map map = (Map)list.get(i);
 *      System.out.println(map.get("wordID"));
 *      System.out.println(map.get("word"));
 * }
 * </code>
 * 
 * @param query - select statement
 * @return List of Map objects
 */

문제는 코드 예가 자바독에 나타나면서 줄 바꿈이 없어 읽기 힘들다는 것이다.

-- ex: looping through List of Map objects -- for (int i = 0; i list.size(); i++) { Map map = (Map)list.get(i); System.out.println(map.get("wordID")); System.out.println(map.get("word")); } 
Parameters
query - - select statement 
Returns:
List of Map objects 

코드 태그가 줄 바꿈을 처리할 거라고 생각하는 내가 틀렸나 봐.Javadoc 논평에서 코드 예를 포맷하는 가장 좋은 방법은 무엇인가?

된 이구동 에.<pre> 당신은 태그그, 은 한국 또를 .@codeJavaDoc 주석, HTML 엔티티 문제(특히 Generics의 경우)에 관한 경우, 다음과 같은 작업을 훨씬 쉽게 수행할 수 있다.

* <pre>
* {@code
* Set<String> s;
* System.out.println(s);
* }
* </pre>

올바른 HTML 출력을 제공함:

Set<String> s;
System.out.println(s);

다음 항목을 생략하는 동안@code차단(또는 a 사용)<code> 만들 tag)는 HTML로 만들어진다.

Set s;
System.out.println(s);

참고로, Java SE 8에서 이용할 수 있는 태그 설명의 전체 목록은 여기에서 찾을 수 있다.

나는 자바도크 코멘트에 특정 코드 예를 포함시키는 것에 정말 힘든 시간을 보냈다.이거 같이 쓰고 싶은데.
다음 사항에 유의하십시오.

  • 옛말의 사용법<code>- 곱슬 브래킷이 해석되지 않도록 태그 지정
  • 의 「새로운」의 사사의 .{@code ...}- 출력에 포함된 제네릭을 가져오기 위한 태그
  • 인 @ 기표인 인의 .@Override을 경유하여{@literal @}Override" @가 개방된 곱슬형 괄호 바로 뒤에 가기 때문에 자바독 발생기가 거기서 "고정"하기 때문이다.
  • 앞쪽의 한 칸을 없애다{@code그리고{@literal, 내부 공간을 보상하고 선형을 유지함

javadoc 코드:

/** this methods adds a specific translator from one type to another type. `
  * i.e.
  * <pre>
  * <code>new BeanTranslator.Builder()
  *   .translate(
  *     new{@code Translator<String, Integer>}(String.class, Integer.class){
  *      {@literal @}Override
  *       public Integer translate(String instance) {
  *         return Integer.valueOf(instance);
  *       }})
  *   .build();
  * </code>
  * </pre>
  * @param translator
  */

로 인쇄되다.

new BeanTranslator.Builder()
  .translate(
    new Translator<String, Integer>(String.class, Integer.class){
      @Override
      public Integer translate(String instance) {
        return Integer.valueOf(instance);
      }})
  .build();

자바 소스는 이것에 대한 많은 좋은 예들을 가지고 있다.다음은 "String.java"의 머리에서 나온 예다.

....
 * is equivalent to:
 * <p><blockquote><pre>
 *     char data[] = {'a', 'b', 'c'};
 *     String str = new String(data);
 * </pre></blockquote><p>
 * Here are some more examples of how strings can be used:
 * <p><blockquote><pre>
 *     System.out.println("abc");
 *     String cde = "cde";
 *     System.out.println("abc" + cde);
 *     String c = "abc".substring(2,3);
 *     String d = cde.substring(1, 2);
 * </pre></blockquote>
...

의 를 동봉하라.<pre></pre>꼬리표를 달다

당신은 그 것이 필요하다.<pre></pre>줄 바꿈에 대한 태그와{@code ... }그 안에서 제네릭을 찾을 수 있을 겁니다그러나 그 다음에는 오프닝 브레이스를 선과 같은 선에 놓는 것이 허용되지 않는다.<generic>태그, 그러면 모든 것이 다시 한 줄에 표시되기 때문이다.

한 줄에 표시:

* ..
* <pre>
* {@code
* public List<Object> getObjects() {
*    return objects;
* }
* </pre>
* ..

줄 바꿈이 있는 디스플레이:

* ..
* <pre>
* {@code
* public List<Object> getObjects() 
* {
*    return objects;
* }
* </pre>
* ..

또 하나 이상한 것은 닫는 버팀대를 붙일 때{@code 표시:

* ..
* <pre>
* {@code
*   public List<Object> getObjects() 
*   {
*     return objects;
*   }
* }
* </pre>
* ..

출력:

public List<Object> getObjects() 
{
   return objects;
}
}
/**
 * <blockquote><pre>
 * {@code
 * public Foo(final Class<?> klass) {
 *     super();
 *     this.klass = klass;
 * }
 * }
 * </pre></blockquote>
 **/
  • <pre/>라인을 보존하는 데 필요하다.
  • {@code그 나름의 선이 있어야 한다.
  • <blockquote/>그냥 들여보내기 위한 거야
public Foo(final Class<?> klass) {
    super();
    this.klass = klass;
}


JDK8로 업데이트

적절한 코드에 대한 최소 요구 사항은 다음과 같다.<pre/>그리고{@code}.

/**
 * test.
 *
 * <pre>{@code
 * <T> void test(Class<? super T> type) {
 *     System.out.printf("hello, world\n");
 * }
 * }</pre>
 */

수확하다

 <T> void test(Class<? super T> type) {
     System.out.printf("hello, world\n");
 }

으로 둘레에 있는 것을 주십시요.<blockquote/>움푹 들어간 곳을 삽입하다

/**
 * test.
 *
 * <blockquote><pre>{@code
 * <T> void test(Class<? super T> type) {
 *     System.out.printf("hello, world\n");
 * }
 * }</pre></blockquote>
 */

수확하다

     <T> void test(Class<? super T> type) {
         System.out.printf("hello, world\n");
     }

삽 inserting<p>또는 로 둘러싸인.<p>그리고</p>경고를 발하다

여기 내 두 가지 생각이 있다.

다른 답변이 이미 나와 있으므로 와 함께 사용해야</pre> 한다.}

사용하다pre그리고{@code}

  • 코드를 안으로 감싸는 중<pre>그리고</pre>코드가 한 줄로 무너지지 않도록 방지
  • 코드를 안으로 감싸는 중{@code }예방하다< >그 사이에 있는 모든 것들이 사라지는 걸 막아줄 거야이것은 코드에 제네릭 또는 람다 식이 포함되어 있을 때 특히 유용하다.

주석 문제

코드 블록에 주석이 포함되어 있을 때 문제가 발생할 수 있다. 그 때 그 에도 아마마도 가가가 때문일 것이다.@자바독 선의 시작 부분에 기호가 나타나며, 다음과 같은 자바독 태그로 간주된다.@param또는@return예를 들어, 이 코드는 다음과 같이 잘못 구문 분석할 수 있다.

/**
 * Example usage:
 *
 * <pre>{@code
 * @Override
 * public void someOverriddenMethod() {

위 코드는 내 경우 완전히 사라질 것이다.

이 문제를 해결하려면 라인이 다음 항목으로 시작되어서는 안 된다.@서명:

/**
 * Example usage:
 *
 * <pre>{@code  @Override
 * public int someMethod() {
 *     return 13 + 37;
 * }
 * }</pre>
 */

사이에 두 개의 공백이 있다는 점에 유의하십시오.@code그리고@Override다음 줄에 맞춰 일을 진행시키기 위해서입니다.나의 경우 (아파치 네탄두를 사용하는 것) 그것은 정확하게 렌더링되었다.

코드 1에 나와 있는 다음과 같은 캡처로 잘 생긴 HTML 파일을 생성할 수 있었다.

 * <pre>
 * {@code
 * A-->B
 *  \
 *   C-->D
 *    \   \
 *     G   E-->F
 * }
 *</pre>

(코드 1)

코드 1은 예상대로 그림 1에서 생성된 자바도크 HTML 페이지로 바뀌었다.

A-->B
 \
  C-->D
   \   \
    G   E-->F

(그림 1)

그러나 NetBeans 7.2에서 Alt+Shift+F(현재 파일을 다시 포맷하려면)를 누르면 코드 1이 코드 2로 바뀐다.

 * <
 * pre>
 * {@code
 * A-->B
 *  \
 *   C-->D
 *    \   \
 *     G   E-->F
 * }
 * </pre>

(코드 2)

첫 번째 장소인 곳<pre>이제 두 줄로 나뉘어져 있다.코드 2는 그림 2와 같이 생성된 자바도크 HTML 파일을 생성한다.

< pre> A-->B \ C-->D \ \ G E-->F

(그림 2)

스티브 B의 제안(코드 3)은 최상의 결과를 주는 것 같고 Alt+Shift+F를 친 후에도 예상대로 포맷된 상태를 유지하고 있다.

*<p><blockquote><pre>         
* A-->B
*  \
*   C-->D
*    \   \
*     G   E-->F
* </pre></blockquote>

(코드 3)

코드 3을 사용하면 그림 1과 같은 자바도크 HTML 출력이 생성된다.

사이에는 상당한 차이가 있다<blockquote><pre>...그리고<pre>{@code....전자는 제네릭에서 활자 선언을 생략하지만 후자는 이를 보관할 것이다.

E.g.: List<MyClass> myObject = null;로 표시하다.List myObject = null;List<MyClass> myObject = null;두 번째와 함께

방금 여기서 자바도크 1.5 참조를 읽었는데, 오직 다음이 있는 코드만 읽었어.<그리고>안쪽에 동봉해야 한다.{@code ...}가 있다 여기 간단한 예가 있다.

 /** 
 * Bla bla bla, for example:
 *
 * <pre>
 * void X() {
 *    List{@code <String>} a = ...;
 *    ...
 * }
 * </pre>
 *
 * @param ...
 * @return ...
 */
 .... your code then goes here ...

다른 두 가지 해결책의 조합은 완벽해 보인다.

* <pre>{@code
*     {@literal @}Override
*     public void someMethod() {
*         Set<String> s;
*     }
* }</pre>

즉, 사용<pre>{@code출발해서}</pre>코딱지를 끊다또한, 교체@와 함께{@literal @}.

더 쉬운 해결책을 찾지 못했다.수십 년 동안 활발하게 발전해 온 언어치고는 꽤 슬프다.

Android 개발자인 경우 다음을 사용하십시오.

<pre class=”prettyprint”>

TODO:your code.

</pre>

Javadoc에서 Java 코드를 사용하여 코드를 예쁘게 인쇄하려면

"code"를 "pre"로 바꿔 보십시오.HTML의 사전 태그는 텍스트를 사전 포맷된 것으로 표시하며, 입력하는 대로 모든 줄의 필요와 공백이 정확하게 나타난다.

Java 18 (JEP 413) 이후 당신은@snippet태그:

/**
 * -- ex: looping through List of Map objects --
 * {@snippet :
 * for (int i = 0; i < list.size(); i++) {
 *      Map map = (Map)list.get(i);
 *      System.out.println(map.get("wordID"));
 *      System.out.println(map.get("word"));
 * }
 * }
 *
 * @param query - select statement
 * @return List of Map objects
 */

나는 나의 예시 코드를 동봉한다.<pre class="brush: java"></pre>태그 및 게시된 자바도크에 대해 SyntaxHighlater를 사용하십시오.그것은 IDE를 해치지 않고 출판된 코드 사례를 아름답게 만든다.

Java SE 1.6을 사용하면 모든 UPERCASE PRE 식별자가 Javadoc:

/**
 * <PRE>
 * insert code as you would anywhere else
 * </PRE>
 */

가장 간단한 방법이야

자바독에서 얻은 예. 자바.awt에서 얻은 예.이벤트 방법:

/**
 * <PRE>
 *    int onmask = SHIFT_DOWN_MASK | BUTTON1_DOWN_MASK;
 *    int offmask = CTRL_DOWN_MASK;
 *    if ((event.getModifiersEx() & (onmask | offmask)) == onmask) {
 *        ...
 *    }
 * </PRE>
 */

이것은 정규 코드와 똑같이 생긴 출력을 생성하며, 정규 코드 스페이스와 새로운 라인은 그대로 유지된다.

최소한 Visual Studio Code(비주얼 스튜디오 코드)에서는 다음과 같이 자바독 코멘트를 트리플 백틱으로 포장하여 줄 바꿈을 존중하도록 강제할 수 있다.

/** ```markdown
 * This content is rendered in (partial) markdown.
 * 
 * For example, *italic* and **bold** text works, but [links](https://www.google.com) do not.
 * Bonus: it keeps single line-breaks, as seen between this line and the previous.
 ``` */

나는 이 두 가지 방법을 문제없이 처리한다.

<pre>
<code>
 ... java code, even including annotations
</code>
</pre>

그리고

<pre class="code">
 ... java code, even including annotations
</pre>

가 더 하고 물자가를 한다.class="code"가르다

참조URL: https://stackoverflow.com/questions/541920/multiple-line-code-example-in-javadoc-comment

반응형