當前位置: 首頁>>代碼示例>>Java>>正文


Java AnnotationValue.accept方法代碼示例

本文整理匯總了Java中javax.lang.model.element.AnnotationValue.accept方法的典型用法代碼示例。如果您正苦於以下問題:Java AnnotationValue.accept方法的具體用法?Java AnnotationValue.accept怎麽用?Java AnnotationValue.accept使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.lang.model.element.AnnotationValue的用法示例。


在下文中一共展示了AnnotationValue.accept方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: resolveAnnotationValue

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
@SuppressWarnings({"unchecked"})
private static <T> T resolveAnnotationValue(Class<T> expectedType, AnnotationValue value) {
    if (value == null) {
        return null;
    }

    Object unboxedValue = value.accept(new AnnotationValueVisitorImpl(), null);
    if (unboxedValue != null) {
        if (expectedType == TypeMirror.class && unboxedValue instanceof String) {
            return null;
        }
        if (!expectedType.isAssignableFrom(unboxedValue.getClass())) {
            throw new ClassCastException(unboxedValue.getClass().getName() + " not assignable from " + expectedType.getName());
        }
    }
    return (T) unboxedValue;
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:18,代碼來源:MatchProcessor.java

示例2: getTypesFromAnnotation

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
/**
 * At compile time classes can not be obtained from annotation directly.
 * This method extracts class information from annotation mirrors.
 *
 * @param element element annotated with {@link SqlSource} annotation
 * @param isReq   true for request, false for result parameters
 * @return list of class names from {@link SqlSource} annotation
 */
private List<String> getTypesFromAnnotation(Element element, boolean isReq) {
    TypeMirror sqlSourceTypeMirror = processingEnv.getElementUtils().getTypeElement(SqlSource.class.getName()).asType();
    //method names from SqlSource annotation
    String methodName = isReq ? "reqImpl" : "resImpl";
    List<? extends AnnotationMirror> annotationMirrors = element.getAnnotationMirrors();
    List<String> typeNames = new ArrayList<>();
    for (AnnotationMirror am : annotationMirrors) {
        if (!am.getAnnotationType().equals(sqlSourceTypeMirror)) {
            continue;
        }
        for (Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : am.getElementValues().entrySet()) {
            if (!methodName.equals(entry.getKey().getSimpleName().toString())) {
                continue;
            }
            AnnotationValue impResVal = entry.getValue();
            impResVal.accept(new SimpleAnnotationValueVisitor8<Void, Void>() {
                @Override
                public Void visitArray(List<? extends AnnotationValue> list, Void s) {
                    for (AnnotationValue val : list) {
                        TypeMirror typeMirror = (TypeMirror) val.getValue();
                        typeNames.add(typeMirror.toString());
                    }
                    return null;
                }
            }, null);
            break;
        }
    }
    return typeNames;
}
 
開發者ID:nds842,項目名稱:sql-first-mapper,代碼行數:39,代碼來源:SqlFirstAnnotationProcessor.java

示例3: visitValue

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
void visitValue(AnnotationValue value) {
  value.accept(this, null);
}
 
開發者ID:weiwenqiang,項目名稱:GitHub,代碼行數:4,代碼來源:AnnotationMirrors.java

示例4: isAnnotation

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
public static boolean isAnnotation(final AnnotationValue annotationValue) {
	return annotationValue.accept(IsAnnotationAnnotationValueVisitor.INSTANCE, null);
}
 
開發者ID:FermioCloud,項目名稱:java-code-templates,代碼行數:4,代碼來源:AnnotationHelper.java

示例5: asAnnotation

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
public static AnnotationMirror asAnnotation(final AnnotationValue annotationValue) {
	return annotationValue.accept(AnnotationAnnotationValueVisitor.INSTANCE, null);
}
 
開發者ID:FermioCloud,項目名稱:java-code-templates,代碼行數:4,代碼來源:AnnotationHelper.java

示例6: asString

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
public static String asString(final AnnotationValue annotationValue) {
	return annotationValue.accept(StringAnnotationValueVisitor.INSTANCE, null);
}
 
開發者ID:FermioCloud,項目名稱:java-code-templates,代碼行數:4,代碼來源:AnnotationHelper.java

示例7: isArray

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
public static boolean isArray(final AnnotationValue annotationValue) {
	return annotationValue.accept(IsArrayAnnotationValueVisitor.INSTANCE, null);
}
 
開發者ID:FermioCloud,項目名稱:java-code-templates,代碼行數:4,代碼來源:AnnotationHelper.java

示例8: asArray

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
public static List<? extends AnnotationValue> asArray(final AnnotationValue annotationValue) {
	return annotationValue.accept(ArrayAnnotationValueVisitor.INSTANCE, null);
}
 
開發者ID:FermioCloud,項目名稱:java-code-templates,代碼行數:4,代碼來源:AnnotationHelper.java

示例9: asType

import javax.lang.model.element.AnnotationValue; //導入方法依賴的package包/類
public static TypeMirror asType(AnnotationValue annotationValue) {
	return annotationValue.accept(TypeAnnotationValueVisitor.INSTANCE, null);
}
 
開發者ID:FermioCloud,項目名稱:java-code-templates,代碼行數:4,代碼來源:AnnotationHelper.java


注:本文中的javax.lang.model.element.AnnotationValue.accept方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。