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


Java ASTNode.MARKER_ANNOTATION屬性代碼示例

本文整理匯總了Java中org.eclipse.jdt.core.dom.ASTNode.MARKER_ANNOTATION屬性的典型用法代碼示例。如果您正苦於以下問題:Java ASTNode.MARKER_ANNOTATION屬性的具體用法?Java ASTNode.MARKER_ANNOTATION怎麽用?Java ASTNode.MARKER_ANNOTATION使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在org.eclipse.jdt.core.dom.ASTNode的用法示例。


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

示例1: resolveExpressionBinding

/**
 * Resolve the binding (<em>not</em> the type binding) for the expression or a nested expression
 * (e.g. nested in parentheses, cast, ...).
 *
 * @param expression an expression node
 * @param goIntoCast iff <code>true</code>, go into a CastExpression's expression to resolve
 * @return the expression binding, or <code>null</code> if the expression has no binding or the
 *         binding could not be resolved
 *
 * @since 3.5
 */
public static IBinding resolveExpressionBinding(Expression expression, boolean goIntoCast) {
	//TODO: search for callers of resolve*Binding() methods and replace with call to this method

	// similar to StubUtility#getVariableNameSuggestions(int, IJavaProject, ITypeBinding, Expression, Collection)
	switch (expression.getNodeType()) {
	case ASTNode.SIMPLE_NAME:
	case ASTNode.QUALIFIED_NAME:
		return ((Name) expression).resolveBinding();

	case ASTNode.FIELD_ACCESS:
		return ((FieldAccess) expression).resolveFieldBinding();
	case ASTNode.SUPER_FIELD_ACCESS:
		return ((SuperFieldAccess) expression).resolveFieldBinding();

	case ASTNode.METHOD_INVOCATION:
		return ((MethodInvocation) expression).resolveMethodBinding();
	case ASTNode.SUPER_METHOD_INVOCATION:
		return ((SuperMethodInvocation) expression).resolveMethodBinding();
	case ASTNode.CLASS_INSTANCE_CREATION:
		return ((ClassInstanceCreation) expression).resolveConstructorBinding();

	case ASTNode.MARKER_ANNOTATION:
	case ASTNode.SINGLE_MEMBER_ANNOTATION:
	case ASTNode.NORMAL_ANNOTATION:
		return ((Annotation) expression).resolveAnnotationBinding();

	case ASTNode.ARRAY_ACCESS:
		return resolveExpressionBinding(((ArrayAccess) expression).getArray(), goIntoCast);
	case ASTNode.CAST_EXPRESSION:
		if (goIntoCast) {
			return resolveExpressionBinding(((CastExpression) expression).getExpression(), true);
		} else {
			return null;
		}
	case ASTNode.PARENTHESIZED_EXPRESSION:
		return resolveExpressionBinding(((ParenthesizedExpression) expression).getExpression(), goIntoCast);
	case ASTNode.PREFIX_EXPRESSION:
		return resolveExpressionBinding(((PrefixExpression) expression).getOperand(), goIntoCast);
	case ASTNode.POSTFIX_EXPRESSION:
		return resolveExpressionBinding(((PostfixExpression) expression).getOperand(), goIntoCast);
	default:
		return null;
	}
}
 
開發者ID:eclipse,項目名稱:eclipse.jdt.ls,代碼行數:55,代碼來源:Bindings.java


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