Java常用的注解有很多,以下是其中一些常用的注解及其详细说明:
- @Override:该注解用于表示一个方法是重写了父类中的方法。使用该注解可以帮助编译器检查是否正确地重写了父类方法,并提高代码的可读性。
- @Deprecated:该注解用于标记已过时的方法、类或属性。当使用这些过时的元素时,编译器会发出警告,建议使用其他更新的元素替代。
- @SuppressWarnings:该注解用于关闭特定编译器的警告信息。当使用该注解时,编译器会忽略指定的警告信息,以便能够编译通过代码。
- @SafeVarargs:该注解用于声明一个方法或构造函数的参数是安全的,可以在编译时避免关于可变参数的警告。
- @FunctionalInterface:该注解用于标记一个接口是函数式接口,即该接口只包含一个抽象方法的接口。这有助于编译器检查代码是否符合函数式接口的要求。
- @Override、@NonNull、@Nullable等注解:这些注解用于提供关于方法参数和返回值的更多信息,帮助编译器和代码阅读者更好地理解代码的含义和用途。
- Spring框架中的注解:如@Component、@Service、@Repository、@Controller等,这些注解用于标记Spring组件,以便在运行时由Spring容器进行自动扫描和注入。
- MyBatis框架中的注解:如@Select、@Insert、@Update、@Delete等,这些注解用于标记SQL语句,以便在运行时由MyBatis框架执行相应的操作。
以下是用注解写的Java项目 好的,以下是一个简单的使用注解的Java项目示例:
- 首先,定义一个自定义注解
MyAnnotation
:
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value() default "";
}
这个注解有一个字符串类型的value
属性,默认值为空。
- 创建一个类
MyClass
,并在其中定义一个方法myMethod
,并使用MyAnnotation
注解:
public class MyClass {
@MyAnnotation("Hello, World!")
public void myMethod() {
System.out.println("This is myMethod!");
}
}
在这个例子中,我们使用MyAnnotation
注解为myMethod
方法添加了一个字符串类型的值"Hello, World!"。
- 创建一个类
MyApp
,并在其中使用反射机制来获取MyClass
中的myMethod
方法,并根据注解信息执行该方法:
public class MyApp {
public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
MyClass obj = new MyClass();
Method method = obj.getClass().getMethod("myMethod");
if (method.isAnnotationPresent(MyAnnotation.class)) {
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
String value = annotation.value();
System.out.println("Annotation value: " + value);
method.invoke(obj);
} else {
System.out.println("No annotation found on the method.");
}
}
}
在这个例子中,我们创建了一个MyClass
对象,并使用反射机制获取了myMethod
方法。然后,我们检查该方法上是否存在MyAnnotation
注解,并根据注解的值执行该方法。如果注解不存在,则输出一条相应的消息。