集册 Java实例教程 从TypeElement获取类

从TypeElement获取类

欢马劈雪     最近更新时间:2020-01-02 10:19:05

542
从TypeElement获取类

//package com.nowjava;

import javax.lang.model.element.Element;//来 自 时 代 J a v a


import javax.lang.model.element.PackageElement;

import javax.lang.model.element.TypeElement;

import javax.lang.model.type.DeclaredType;


import javax.lang.model.type.TypeMirror;


public class Main {

    public static Class getClass(TypeElement element) {

        try {

            return Class.forName(getClassName(element));

        } catch (Exception e) {

            //System.out.println(e);

        }

        return null;

    }

    /** 
    来 自 
    时 代 J a v a
    **/

    public static Class getClass(TypeMirror type) {

        if (type instanceof DeclaredType) {

            if (((DeclaredType) type).asElement() instanceof TypeElement) {

                return getClass((TypeElement) ((DeclaredType) type)

                        .asElement());

            }

        }

        return null;

    }


    public static String getClassName(TypeElement element) {

        Element currElement = element;

        String result = element.getSimpleName().toString();

        while (currElement.getEnclosingElement() != null) {

            currElement = currElement.getEnclosingElement();

            if (currElement instanceof TypeElement) {

                result = currElement.getSimpleName() + "$" + result;

            } else if (currElement 
展开阅读全文