Learnitweb

@Deprecated annotation in Java

Over the time libraries, frameworks and APIs change. With every change comes the easy and simpler way of writing code. Whenever there is a change, we might not want people to use our old program elements like methods, constructors, fields and types. Such elements may be annotated as @Deprecated.

@Deprecated annotation indicates that the marked element is deprecated and should no longer be used. The compiler generates a warning whenever that element (element annotated with @Deprecated) is used.

@Deprecated annotation tells users not to use the annotated element. Whenever we use @Deprecated, it better to tell users what is the best alternative of this element which will serve the purpose.

When an element is deprecated, it should also be documented using the Javadoc @deprecated tag.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Employee{
/**
* Get variable salary of employee
* @deprecated
* This method is no longer valid to get variable salary of employee.
* <p> Use getVariableSalaryNew() instead.
*
*/
@Deprecated
public void getVariableSalary() {
System.out.println("this is getVariableSalary method");
}
public void getVariableSalaryNew() {
System.out.println("this is new getVariableSalary method");
}
}
public class Test {
public static void main(String[] args) {
Employee emp = new Employee();
emp.getVariableSalary();
}
}
class Employee{ /** * Get variable salary of employee * @deprecated * This method is no longer valid to get variable salary of employee. * <p> Use getVariableSalaryNew() instead. * */ @Deprecated public void getVariableSalary() { System.out.println("this is getVariableSalary method"); } public void getVariableSalaryNew() { System.out.println("this is new getVariableSalary method"); } } public class Test { public static void main(String[] args) { Employee emp = new Employee(); emp.getVariableSalary(); } }
class Employee{
	/**
     * Get variable salary of employee
     * @deprecated
     * This method is no longer valid to get variable salary of employee.
     * <p> Use getVariableSalaryNew() instead.
     *
     */
	@Deprecated
	public void getVariableSalary() {
		System.out.println("this is getVariableSalary method");
	}
	
	public void getVariableSalaryNew() {
		System.out.println("this is new getVariableSalary method");
	}
}
public class Test {
	public static void main(String[] args) {
		Employee emp = new Employee();
		emp.getVariableSalary();
	}
}

When you compile the code, you should get like the following:

Note: Test.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.