当前位置: 首页 > 面试题库 >

Java中如何在哪里使用注释?

太叔凌龙
2023-03-14
问题内容

我们可以使用注释的主要领域是什么?该功能是否可以替代基于XML的配置?


问题答案:

注释是元元对象,可用于描述其他元对象。元对象是类,字段和方法。向一个对象询问其元对象(例如anObj.getClass())称为自省。内省可以走得更远,我们可以问一个元对象其注释是什么(例如aClass.getAnnotations)。内省和注释属于所谓的反射和元编程。

注释需要以一种或另一种方式解释才有用。注释可以在开发时由IDE或编译器解释,也可以在运行时由框架解释。

注释处理是一种非常强大的机制,可以通过多种不同方式使用:

  • 描述元素的约束或用法:例如@Deprecated, @Override@NotNull
  • 描述元素的“性质”,例如 @Entity, @TestCase, @WebService
  • 描述元素的行为: @Statefull, @Transaction
  • 描述如何处理元素: @Column, @XmlElement

在所有情况下,都使用注释来描述元素并阐明其含义。

在JDK5之前,现在需要将用注释表示的信息存储在其他位置,并且XML文件经常被使用。但是使用注释更方便,因为它们将属于Java代码本身,因此比XML更容易操作。

注释的用法:

  • 文档,例如XDoclet
  • 汇编
  • 集成开发环境
  • 测试框架,例如JUnit
  • IoC容器,例如Spring
  • 序列化,例如XML
  • 面向方面的编程(AOP),例如Spring AOP
  • 应用程序服务器,例如EJB容器,Web服务
  • 对象关系映射(ORM),例如Hibernate,JPA
  • 还有很多…
    …例如看一下Lombok项目,该项目使用批注定义了生成方法equalshashCode方法。


 类似资料:
  • 问题内容: 你应该将放置在DAO类和/或它们的方法中,还是更好地注释使用DAO对象调用的类?还是对两个“层”都进行注释是否有意义? 问题答案: 我认为交易属于服务层。这是了解工作单元和用例的人。如果您将多个DAO注入到一个服务中,而这些DAO需要在单个事务中一起工作,那么这是正确的答案。

  • 问题内容: 我一直在尝试失败,在Dapper中使用with with子句已经有一段时间了。 在文档中,它确实说支持在a中使用,但我什至无法使它正常工作。 我不断收到的错误消息是Sql语法错误。 我整理了一些测试代码,希望它们能证明我正在尝试实现的目标。 问题答案: 为了执行此处需要的操作,dapper需要即时更改SQL-因此需要 真正 确保它在做正确的事情。常规有效的SQL语法包括括号: 为了消除

  • 问题内容: 我正在阅读一些有关Java中异常处理的内容,以便能够编写更好的代码。好吧,我承认,我有罪。我使用了太多try-catch {}块,在捕获中使用了它,甚至没有使用适当的记录器(实际上是和被重定向到,因此生成了日志)。但是,经过几个小时的阅读,我发现自己在一个陌生的地方:未知。如果异常被设计为传递有关异常流状态的信息,那么人们如何知道WHERE是使用该信息执行操作的适当级别? 例如,当发生

  • 问题内容: 我们应该如何以及在何处使用静态修饰符: 1.领域和 2.方法? 对于例如在类中,字段的方法,如ABS(),ATAN(),COS()等是静态的,即它们可以作为被访问: 但是,为什么这是个好习惯呢? 说,我不是保持静态,而是创建类的对象并访问它,无论如何,我都会得到警告,您正在尝试以非静态方式访问静态方法(如所指出的那样) @duffymo编写,而不是Math类)。 更新1: 因此,实用程

  • 问题内容: 你应该将放置在类和/或它们的方法中,还是更好地注释使用DAO对象调用的Service类?还是对两个“层”都进行注释是否有意义? 问题答案: 我认为交易属于服务层。这是了解工作单元和用例的人。如果你将多个DAO注入到一个服务中,而这些DAO需要在单个事务中一起工作,那么这是正确的答案。

  • 我已经使用打包资源并生成。 但是当我升级到Android 24时,我发现。 是否应该使用?我怎么用它?我找不到任何关于它的文件。