专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

注解(注解的使用、自定义、解析)

1、注解的概念

(1)注解和注释:

注释:是给程序员看的,便于其他人理解自己的程序

注解:是给虚拟机看的,符合一定格式的语法,主要的作用是可以代替配置文件,格式:@xxx

(2)配置文件和注解的优缺点:

注解优点:开发效率高,成本低

注解缺点:耦合性大,而且不利与后期维护

2、用注解代替配置文件

(1)创建一个servlet:

package pers.zhb.web;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/zhujieServlet")
public class ZhujieServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {

    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        response.getWriter().write("wu han jia you!");
    }
}

一般情况下需要配置web.xml文件,但是在运用了注解之后就不再需要配置文件了。

(2)运行结果:

35_1.png

3、JDK5的注解

(1)@Override:帮助检查覆盖的方法书写是否正确

public class Person {
    private String name;
    private int age;
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

当方法名错误的时候给出提示:

35_2.png

(2)@SuppressWarnings:压制警告

list:未使用发出警告:

35_3.png

@SuppressWarnings(“all”),压制所有警告:list发出的警告已经消失了
35_4.png

(3)@Deprecated:代表方法已经过时了

public class Test {
    @Deprecated
    public static void test(){

    }

    public static void test(String name,int age){

    }
    public static void main(String [] args){
       Test.test();
       Test.test("zhai",23);
    }
}

4、自定义注解

(1)自定义注解和使用:

注解的定义:

public @interface Myanno {
     String name();
     String age();
}

注解的使用:

public class TestMyanno {
    @Myanno(name="zhai",age="22")
    public void test(){

    }
}

5、注解的解析

(1)定义:

@Target({ElementType.METHOD,ElementType.TYPE})//定义注解的位置
@Retention(RetentionPolicy.RUNTIME)//访问级别
public @interface Myanno {
     String name();
     String age();
}

(2)使用:

public class TestMyanno {
    @Myanno(name="zhai",age="22")
    public void test(String str){

    }
}

(3)解析:

public class MyAnnPaster {
    public static void main(String[] Args) throws NoSuchMethodException {
        Class cla=TestMyanno.class;
        Method method=cla.getMethod("test",String.class);//获取show方法的字节码对象
        Myanno myanno=method.getAnnotation(Myanno.class);//获取注解对象
        System.out.println(myanno.name());
        System.out.println(myanno.age());
    }
}

35_5.png

文章永久链接:https://tech.souyunku.com/22616

未经允许不得转载:搜云库技术团队 » 注解(注解的使用、自定义、解析)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们