本文整理汇总了Java中com.sun.source.tree.ExpressionTree.accept方法的典型用法代码示例。如果您正苦于以下问题:Java ExpressionTree.accept方法的具体用法?Java ExpressionTree.accept怎么用?Java ExpressionTree.accept使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.sun.source.tree.ExpressionTree
的用法示例。
在下文中一共展示了ExpressionTree.accept方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visitReturn
import com.sun.source.tree.ExpressionTree; //导入方法依赖的package包/类
@Override
public Mirror visitReturn(ReturnTree arg0, EvaluationContext evaluationContext) {
ExpressionTree exprTree = arg0.getExpression();
Mirror result;
if (exprTree == null) {
VirtualMachine vm = evaluationContext.getDebugger().getVirtualMachine();
if (vm == null) {
return null;
}
// vm.mirrorOfVoid(); [TODO]
result = null;
} else {
result = exprTree.accept(this, evaluationContext);
}
return new Return(result);
}
示例2: visitAssignment
import com.sun.source.tree.ExpressionTree; //导入方法依赖的package包/类
/**
* If we're assigning to an identifier then we see if this identifier has the same name as one of the
* non-final params in scope. We only care about assignments to an identifier.
*
* Thus, a = 5; would be flagged by array[0] = "foo" would not be flagged. The left hand side of the assignment
* operation must be an identifier in order for us to flag it.
*
* @param assignmentTree assignment AST node
* @param nonFinalParamsInScope params to check against the LHS of the assignment
*/
@Override
public Void visitAssignment(AssignmentTree assignmentTree, Set<Name> nonFinalParamsInScope) {
if (nonFinalParamsInScope != null && !nonFinalParamsInScope.isEmpty()) {
ExpressionTree variable = assignmentTree.getVariable();
variable.accept(new SimpleTreeVisitor<Void, Void>() {
@Override
public Void visitIdentifier(IdentifierTree node, Void aVoid) {
if (nonFinalParamsInScope.contains(node.getName())) {
// printing a message of type error counts as a compilation error
trees.printMessage(Diagnostic.Kind.ERROR,
String.format("EFFECTIVELY_FINAL: Assignment to param in `%s`", assignmentTree),
node, compilationUnitTree);
}
return null;
}
}, null);
}
return null;
}
示例3: evaluateCondition
import com.sun.source.tree.ExpressionTree; //导入方法依赖的package包/类
private boolean evaluateCondition(Tree arg0, EvaluationContext evaluationContext, ExpressionTree condition) {
Mirror conditionValue = condition.accept(this, evaluationContext);
if (conditionValue instanceof ObjectReference) {
conditionValue = unboxIfCan(arg0, (ObjectReference) conditionValue, evaluationContext);
}
if (!(conditionValue instanceof BooleanValue)) {
String type = "N/A"; // NOI18N
if (conditionValue instanceof Value) {
type = ((Value) conditionValue).type().name();
}
Assert.error(arg0, "notABoolean", condition.toString(), conditionValue, type);
}
return ((BooleanValue) conditionValue).value();
}