当前位置: 首页 > news >正文

设计网站客户体验义乌做网站公司

设计网站客户体验,义乌做网站公司,虎嗅wordpress,张掖建设局网站java处理注释Java 8的一项很酷的新功能是对lambda表达式的支持。 Lambda表达式在很大程度上依赖于FunctionalInterface 注释 。 在本文中#xff0c;我们将介绍注释以及如何处理它们#xff0c;以便您可以实现自己的出色功能。 注解 Java 5中添加了注释 。Java语言附带了一… java处理注释 Java 8的一项很酷的新功能是对lambda表达式的支持。 Lambda表达式在很大程度上依赖于FunctionalInterface 注释 。 在本文中我们将介绍注释以及如何处理它们以便您可以实现自己的出色功能。 注解 Java 5中添加了注释 。Java语言附带了一些预定义的注释 但是您也可以定义自定义注释 。 许多框架和库都充分利用了自定义注释。 例如 JAX-RS使用它们将POJO转换为REST资源。 注释可以在编译时或在运行时或什至两者进行处理。 在运行时您可以使用反射API 。 可以注释的Java语言的每个元素如类或方法都实现AnnotatedElement接口。 请注意只有具有RUNTIME RetentionPolicy的注释才可以在运行时RUNTIME 。 编译时注释处理 Java 5附带了单独的apt工具来处理注释但是自Java 6起此功能已集成到编译器中。 您可以直接从命令行调用编译器例如从命令行调用也可以从程序间接调用。 在前一种情况下您可以为javac指定-processor选项 或者通过将文件META-INF/services/javax.annotation.processing.Processor到jar META-INF/services/javax.annotation.processing.Processor来使用ServiceLoader框架。 该文件的内容应为一行其中包含处理器类的完全限定名称。 ServiceLoader方法在自动构建中特别方便因为您要做的就是在编译过程中将注释处理器放在类路径上而Maven或Gradle之类的构建工具将为您提供帮助。 从应用程序内部进行编译时注释处理 您还可以使用编译时工具从正在运行的应用程序中处理注释。 与其直接调用javac 不如使用更方便的JavaCompiler接口。 无论哪种方式您都需要使用JDK而不是JRE运行应用程序。 JavaCompiler接口使您能够以编程方式访问Java编译器。 您可以使用ToolProvider.getSystemJavaCompiler()获得此接口的实现。 此方法对JAVA_HOME环境变量敏感。 JavaCompiler的getTask()方法允许您添加注释处理器实例 。 这是控制注释处理器构造的唯一方法。 调用注释处理器的所有其他方法都要求处理器具有公共的无参数构造函数。 注释处理器 处理器必须实现Processor接口。 通常您将需要扩展AbstractProcessor基类而不是从头开始实现接口。 每个注释处理器必须通过getSupportedAnnotationTypes()方法指示其感兴趣的注释类型。 您可以返回*以处理所有注释。 另一个重要的事情是指出您支持的Java语言版本。 重写getSupportedSourceVersion()方法并返回RELEASE_x常量之一。 使用这些方法注释处理器就可以开始工作了。 处理器的作用在process()方法中。 当process()返回true 处理的注释被这个处理器权利 并且将不被提供给其它处理器。 通常您应该与其他处理器配合使用并返回false 。 元素和类型镜 注释和它们所在的Java元素作为Element对象提供给process()方法。 您可能需要使用Visitor模式处理它们 。 元素最有趣的类型是用于类和接口包括注释的TypeElement 用于方法的ExecutableElement和用于字段的VariableElement 。 每个Element指向一个TypeMirror 它表示Java编程语言中的一种类型。 您可以使用TypeMirror来遍历正在处理的带注释的代码的类关系就像在JVM中运行的代码上使用反射一样。 加工回合 注释处理发生在称为rounds的单独阶段中。 在每个回合中处理器都有机会处理其感兴趣的注释。 可通过传递到process()方法中的RoundEnvironment参数获得要处理的注释及其上存在的元素。 如果注释处理器在一轮中生成新的源文件或类文件则编译器将使这些文件可用于下一轮处理。 这一直持续到不再生成新文件为止。 最后一轮不包含任何输入因此是释放处理器可能已获取的任何资源的好机会。 初始化和配置处理器 注释处理器使用ProcessingEnvironment 初始化 。 此处理环境使您可以创建新的源文件或类文件 。 它还以选项的形式提供对配置的访问。 选项是键值对您可以使用-A option在命令行上提供给javac 。 为此必须在处理器的getSupportedOptions()方法中返回选项的键。 最后处理环境提供了一些在处理过程中派上用场的支持例程例如 获取元素的JavaDoc或获取类型的直接超类型 。 类路径问题 为了在注释处理过程中获得最准确的信息您必须确保所有导入的类都在类路径上因为引用不可用类型的类可能具有不完整的信息或完全缺少信息。 当处理大量带注释的类时这可能会在Windows系统上导致命令行太大 8K的问题。 即使使用JavaCompiler接口它仍会在后台调用javac 。 Java编译器有一个很好的解决方案您可以使用包含javac 参数的参数文件 。 然后在命令行上提供参数文件的名称并在之前。 不幸的是 JavaCompiler.getTask()方法不支持参数文件因此您必须使用基础的run()方法。 请记住 getTask()方法是唯一一种允许您构造注释处理器的方法。 如果必须使用参数文件则必须使用公共的无参数构造函数。 如果遇到这种情况并且有多个注释处理器需要共享一个类的单个实例则无法将该实例传递给构造函数因此将被迫使用诸如Singleton模式之类的东西。 结论 注释是一项令人兴奋的技术具有许多有趣的应用程序。 例如我使用它们将REST API中的资源提取到资源模型中以进行进一步处理例如生成文档。 翻译自: https://www.javacodegeeks.com/2015/01/how-to-process-java-annotations.htmljava处理注释
http://www.pierceye.com/news/157773/

相关文章:

  • 重庆博达建设集团股份有限公司网站徐州建设企业网站
  • 有没有专门做老年婚介的网站东营会计信息网官网
  • 鞍山怎么做平台软件汕头网站时优化
  • 邹城建网站深圳装修公司排行榜
  • 泊头网站优化WordPress如何添加cnzz
  • dz论坛网站创建页面wap网站建设方案 pdf
  • 网站建设项目报告总结报告seo关于网站搜索排名关键词的标准评定
  • 东莞电商网站建设wordpress注册验证邮箱
  • 网站建设名中国建设劳动学会是假网站吗
  • 一个优秀的个人网站百度极速版免费下载安装
  • 咋做211校徽加网站wordpress免费教程视频教程
  • 网站建设制作网络营销公司蛋糕店网站模板
  • a站网址东莞市网络seo推广价格
  • 莱州市双语网站seo白帽优化
  • 不忘初心网站建设深圳公租房官网
  • 网站点击率原因深圳做自适应网站制作
  • 上海个人建站小程序注册完成后如何制作
  • 微网站开发平台 开源大庆做网站公司
  • 长沙市住房和城乡建设局网站wordpress付费可见插件
  • 建设个人网站的参考网站及文献辽宁建设工程造价管理网站
  • 如何做360网站的排名新品发布会策划方案ppt
  • 网站后台登陆破解哪里有网站模板下载
  • 网站制作器软件下载建站备案
  • 网页模板下载网站站长素材音效网
  • 青岛网站建设要多少钱关键词优化是怎样收费的
  • 网站国际联网备案WordPress文章分页伪静态
  • 电子商务网站开发的任务书东莞seo关键词搜索关键词
  • 宁乡网站建设在哪小天才电话手表网站
  • 中文响应式网站搜搜网站提交
  • 华为官方网站手机商城首页大淘客网站商品做淘口令