java annotation processing 自动生成代码

原创 2014年11月08日 16:49:29
package example;

import java.io.*;
import javax.tools.*;
import java.util.*;
import javax.annotation.processing.*;
import javax.lang.model.*;
import javax.lang.model.element.*;

@SupportedAnnotationTypes(value = { "*" })
@SupportedSourceVersion(SourceVersion.RELEASE_6)
public class ExampleProcessor extends AbstractProcessor {

	private Filer filer;

	public void init(ProcessingEnvironment env) {
		filer = env.getFiler();
	}

	public boolean process(Set elements, RoundEnvironment env) {
		// Discover anything marked with @SuppressWarnings
		for (Element element : env
				.getElementsAnnotatedWith(SuppressWarnings.class)) {
			if (element.getKind() == ElementKind.METHOD) {
				// For any methods we find, create an aspect:
				String methodName = element.getSimpleName().toString();
				String aspectText = "public aspect Advise_" + methodName
						+ " {\n" + "  before(): execution(* " + methodName
						+ "(..)) {\n" + "    System.out.println(\""
						+ methodName + " running\");\n" + "  }\n" + "}\n";
				try {
					JavaFileObject file = filer.createSourceFile("Advise_"
							+ methodName, element);
					file.openWriter().append(aspectText).close();
					System.out.println("Generated aspect to advise "
							+ methodName);
				} catch (IOException ioe) {
				}
			}
		}
		return true;
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

【Annotation】Processing-Tool详解

在这篇文章中我将阐述如何实现一个注解处理器。首先我将向你解释什么是注解处理器,你可以使用这个强大的工具来做什么及不能做什么。接下来我们将一步一步来实现一个简单的注解处理器。 1. 一些基本概念 ...
  • hj7jay
  • hj7jay
  • 2016年08月11日 10:09
  • 3071

Android 打造编译时注解解析框架 这只是一个开始

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43452969 ,本文出自:【张鸿洋的博客】1、概述记得很久以前,写过几篇博客,容...

解决ADT Eclipse项目的Preference中,Java Compiler下没有Annotation Processing

解决ADT Eclipse项目的Preference中,Java Compiler下没有Annotation Processing       很多做安卓开发的跟我一样,用的IDE可能都是从...

Java中实现自定义的注解处理器(Annotation Processor)

在之前的《简单实现ButterKnife的注解功能》中,使用了运行时的注解实现了通过编写注解绑定View与xml。由于运行时注解需要在Activity初始化中进行绑定操作,调用了大量反射相关代码,在界...
  • ucxiii
  • ucxiii
  • 2016年07月25日 19:42
  • 6591

android eclipse 没有Annotation Processin选项

因为要使用开源 androidannotations 注解,发现eclipse没有Annotation Processin 解决办法:   需要配置插件:http://down...

java annotation processing tools(APT)实例解析

java annotation processing tools(APT)实例解析                                               ------使用A...

Java Annotation 高级应用<3>

三、APT实例分析: 1.何谓APT? 根据sun官方的解释,APT(annotation processing tool)是一个命令行工具,它对源代码文件进行检测找出其中的annotation后...

Java自定义AnnotationProcessor处理自己的Annotation

Java使用Annotation Processor获取代码中的Annotation使用Java的Annotation Processing Tool (apt)可以在编译期获取Java代码文件中的A...

一小时搞明白注解处理器(Annotation Processor Tool)

Java中的注解是个很神奇的东西,还不了解的可以看下一小时搞明白自定义注解(Annotation)。现在很多Android的库都用使用注解实现的,比如ButterKnife,我们不防也来学习一下,学完...

一小时搞明白注解处理器(Annotation Processor Tool)

Java中的注解是个很神奇的东西,还不了解的可以看下一小时搞明白自定义注解(Annotation)。现在很多Android的库都用使用注解实现的,比如ButterKnife,我们不防也来学习一下,学完...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java annotation processing 自动生成代码
举报原因:
原因补充:

(最多只允许输入30个字)