[java] Java 메소드를 선언하거나 더 이상 사용되지 않는 것으로 표시하는 방법은 무엇입니까?

더 이상 사용되지 않는 방법 중 하나를 “더 이상 사용하지 않음”으로 만들고 싶습니다.

그러나 여전히 API에 넣고 싶습니다. 나는 그 방법을 사용하는 사람에게 “경고”를 보여주고 싶다.

어떻게하면 되나요?



답변

@Deprecated방법에 사용하십시오 . javadoc 필드를 명확히하는 것을 잊지 마십시오 :

/**
 * Does some thing in old style.
 *
 * @deprecated use {@link #new()} instead.
 */
@Deprecated
public void old() {
// ...
}


답변

@Deprecated주석과 @deprecatedJavaDoc 태그를 모두 사용하십시오 .

@deprecated의 JavaDoc 태그는 문서의 목적을 위해 사용됩니다.

@Deprecated주석은 방법은 사용되지 않는 것을 컴파일러에 지시합니다. 다음은 주제에 대한 Sun / Oracles 문서에서 말하는 내용입니다.

은 Using @Deprecated주석 모든 컴파일러 때 코드를 사용하는 프로그램 요소 경고를하는 클래스, 메소드, 또는 필드의 보장하지만를 더 이상 사용합니다. 반대로, @deprecatedSun 컴파일러는 현재 그렇게하지만 모든 컴파일러가 Javadoc 태그를 기반으로 항상 경고를 발행한다고 보장 할 수는 없습니다 . 다른 컴파일러는 이러한 경고를 발행하지 않을 수 있습니다. 따라서 @Deprecated어노테이션을 사용하여 경고를 생성하면 @deprecatedJavadoc 태그 에 의존하는 것보다 이식성이 뛰어납니다 .

API 폐기 방법 및시기 에서 전체 문서를 찾을 수 있습니다.


답변

사소한 설명이 빠져 있기 때문에

@Deprecated이 방법으로 주석을 사용하십시오.

 /**
 * @param basePrice
 *
 * @deprecated  reason this method is deprecated <br/>
 *              {will be removed in next version} <br/>
 *              use {@link #setPurchasePrice()} instead like this:
 *
 *
 * <blockquote><pre>
 * getProduct().setPurchasePrice(200)
 * </pre></blockquote>
 *
 */
@Deprecated
public void setBaseprice(int basePrice) {
}

설명해야합니다 :

  1. 왜이 방법은 더 이상 권장되지 않습니다 . 그것을 사용할 때 어떤 문제가 발생합니다. 해당 사안에 대한 토론 링크를 제공하십시오. (가독성을 위해 줄을 분리해야 함<br/>
  2. 제거 될 때 . (이전 방식을 고수하기로 결정한 경우 사용자에게이 방법에 얼마나 의존 할 수 있는지 알려주세요)
  3. 솔루션을 제공 하거나 권장하는 방법에 대한 링크 {@link #setPurchasePrice()}

답변

당신이 할 수있는 두 가지가 있습니다 :

  1. 추가 @Deprecated메소드에 주석을 하고
  2. @deprecated메소드의 javadoc에 태그 추가

당신은 둘 다해야합니다 !

이 주제에 대한 Java 설명서 인용 :

J2SE 5.0부터는 @Deprecated 주석을 사용하여 클래스, 메소드 또는 필드를 사용하지 않습니다. 또한 @deprecated Javadoc 태그를 사용하여 개발자에게 대신 사용할 것을 알려줄 수 있습니다.

주석을 사용하면 사용되지 않는 클래스, 메소드 또는 필드가 사용될 때 Java 컴파일러가 경고를 생성합니다. 더 이상 사용되지 않는 컴파일 단위가 더 이상 사용되지 않는 클래스, 메소드 또는 필드를 사용하는 경우 컴파일러는 더 이상 사용되지 않는 경고를 억제합니다. 이를 통해 경고를 생성하지 않고 레거시 API를 빌드 할 수 있습니다.

새 API 사용 방법을 설명하는 적절한 주석과 함께 Javadoc @deprecated 태그를 사용하는 것이 좋습니다. 이를 통해 개발자는 이전 API에서 새 API로 마이그레이션 가능한 마이그레이션 경로를 가질 수 있습니다


답변

메소드에 주석 @Deprecated 을 사용하십시오. 또한 javadoc에서 주석 을 언급해야합니다.


답변

@Deprecated주석을 살펴보십시오 .


답변