首页编程java编程java注解能干什么?java 注解都有哪些东西

java注解能干什么?java 注解都有哪些东西

编程之家2023-10-1390次浏览

大家好,感谢邀请,今天来为大家分享一下java注解能干什么的问题,以及和java 注解都有哪些东西的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

java注解能干什么?java 注解都有哪些东西

java中注释和注解于什么区别啊

首先来说注释有三种:///**//***/前两种编译器直接跳过,从来不阅读,第三种编译器是可以看懂的,当你使用javadoc这样的命令时会用到,用来生成API时用的。

注解:这东东完全就是给编译器看的。比如@Ovrride表示这个方法是重写了父类中的方法,而不是自定义的,所以这个时候编译器会去检查你的方法名是否和父类一样,是否写错了。

java注解能干什么?java 注解都有哪些东西

起初,注解是比较简单的,后来注解里面可以加入变量和参数,以节省代码(这些代码都是大家共同认可的,用一个公式给代替了)

java注解能干什么?java 注解都有哪些东西

注解是对计算机的说明,也可以不用注解,自己写代码告诉计算机编译器。注解其实就是代码,只是看起来和我们自己写的有点不一样而已。也是代码的一部分,学习Hibernate和Spring等的时候会大量用到注解,用来节省大量代码。

java @注解 可以删除吗

java@注解可以删除。

如果是自己写的代码觉得特别没用了可以删掉,如果是别人的,或者是修改需求什么的可以不用删,当你在改代码把以前的注掉时写个备注说明,以防以后再需要或者是想看下之前的想法。所以最好不要删掉。

简单性:

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持goto语句,代之以提供break和continue语句以及异常处理。

Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集。

java 注解都有哪些东西

Java注解相当于对类或者方法或者变量额外的注释(标识)。以下是转载

-------------------------------------------------------

Annotation是Java5、6只后的新特征(中文称之为注解),并且越来越多的得到了应用,比如Spring、Hibernate3、Struts2、iBatis3、JPA、JUnit等等都得到了广泛应用,通过使用注解,代码的灵活性大大提高。

这些都是使用别人定义的注解,一般注解的使用都是在一些基础框架或者类库中来定义的,因此很少见过有人自己去写一个注解出来并使用在程序中,因此注解的使用常常给人感觉很神秘,这就为你揭开注解的面纱。

注解的神秘之处在于:通过类似注释的方式,可以控制程序的一些行为,运行时的状态,可以为成员赋值,做配置信息等等,与常规编码思维大相径庭。

只用别人定义好的注解是搞不懂这些问题的,要想真正知道注解内部的秘密,要自己定义注解,然后在程序中获取注解信息,拿到注解信息后,就可以为我所用了。

下面我简单演示下三类注解的用法:类注解、方法注解、字段(也称之域)注解的定义与适用,并看看如何获取注解的信息。

一、定义注解

package lavasoft.anntest;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

/**

*类注解

*

*@author leizhimin 2009-12-18 14:15:46

*/

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.TYPE)

public@interface MyAnnotation4Class{

public String msg();

}

package lavasoft.anntest;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

/**

*方法注解

*

*@author leizhimin 2009-12-18 14:16:05

*/

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.METHOD)

public@interface MyAnnotation4Method{

public String msg1();

public String msg2();

}

package lavasoft.anntest;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

/**

*字段注解

*

*@author leizhimin 2009-12-18 15:23:12

*/

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.FIELD)

public@interface MyAnnotation4Field{

public String commont();

public boolean request();

}

二、写一个类,用上这些注解

package lavasoft.anntest;

/**

*一个普通的Java类

*/

@MyAnnotation4Class(msg="测试类注解信息")

class TestClass{

@MyAnnotation4Field(commont="成员变量的注解信息", request= true)

private String testfield;

@MyAnnotation4Method(msg1="测试方法注解信息1", msg2="测试方法注解信息2")

public void testMethod(){

System.out.println("Hello World!");

}

}

三、测试注解

为了使用注解,需要通过反射获取注解的对象。通过注解对象来操作注解信息。

package lavasoft.anntest;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

/**

*测试类

*

*@author leizhimin 2009-12-18 14:13:02

*/

public class TestOptAnnotation{

public static void main(String[] args) throws NoSuchMethodException, NoSuchFieldException{

TestClass t= new TestClass();

System.out.println("-----------MyAnnotation4Class注解信息---------");

MyAnnotation4Class an4clazz= t.getClass().getAnnotation(MyAnnotation4Class.class);

System.out.println(an4clazz.msg());

System.out.println("-----------MyAnnotation4Method注解信息---------");

Method method= t.getClass().getMethod("testMethod", new Class[0]);

MyAnnotation4Method an4method= method.getAnnotation(MyAnnotation4Method.class);

System.out.println(an4method.msg1());

System.out.println(an4method.msg2());

System.out.println("-----------MyAnnotation4Field注解信息---------");

Field field= t.getClass().getDeclaredField("testfield");

MyAnnotation4Field an4field= field.getAnnotation(MyAnnotation4Field.class);

System.out.println(an4field.commont());

System.out.println(an4field.request());

}

}

运行结果:

-----------MyAnnotation4Class注解信息---------

测试类注解信息

-----------MyAnnotation4Method注解信息---------

测试方法注解信息1

测试方法注解信息2

-----------MyAnnotation4Field注解信息---------

成员变量的注解信息

true

Process finished with exit code 0

四、总结

看完上面的测试过程,Annotation已经不再神秘了,这里总结下自定义注解的使用方法:

1、自定义注解,注意注解的时空范围,简单说就是注解针对的目标(类、方法、字段),以及注解的时效(运行时、或者源码中有效)。

2、要获取注解的信息,必须通过Java的反射技术来获取Annotation对象,因为你除此之外没有别的获取注解对象的方法。

3、获取了注解对象,就可以调用注解的方法来获取相对应的值了。为基础框架所用。

4、当然,注解也可以没有定义成员,这样注解就成了一个标记符号了。

OK,本文到此结束,希望对大家有所帮助。

骑兵是什么意思(网络语骑兵是什么意思)如何设置java快捷键是什么,java的一些快捷键