@Exported public class TreeScanner<R,P> extends Object implements TreeVisitor<R,P>
visitXYZメソッドのデフォルトの実装では、次の結果になります。
scanを呼び出した結果と同じになります。子は、単一のノードでも、ノードのリストでもかまいません。
scanを呼び出し、2番目以降の各スキャンの結果を、それまでの累積的な結果と結合することで結果が得られます。これは、reduce(R, R)メソッドによる結果と同様です。それぞれの子は、単一のノードでも、ノードのリストでもかまいません。reduceメソッドのデフォルトの動作では、visitXYZメソッドの結果は、最後にスキャンされた子の結果になります。
ツリー内の識別子ノードの数をカウントする例を次に示します。
class CountIdentifiers extends TreeScanner<Integer,Void> {
@Override
public Integer visitIdentifier(IdentifierTree node, Void p) {
return 1;
}
@Override
public Integer reduce(Integer r1, Integer r2) {
return (r1 == null ? 0 : r1) + (r2 == null ? 0 : r2);
}
}
| コンストラクタと説明 |
|---|
TreeScanner() |
public R reduce(R r1, R r2)
public R visitCompilationUnit(CompilationUnitTree node, P p)
visitCompilationUnit 、インタフェース: TreeVisitor<R,P>public R visitImport(ImportTree node, P p)
visitImport 、インタフェース: TreeVisitor<R,P>public R visitClass(ClassTree node, P p)
visitClass 、インタフェース: TreeVisitor<R,P>public R visitMethod(MethodTree node, P p)
visitMethod 、インタフェース: TreeVisitor<R,P>public R visitVariable(VariableTree node, P p)
visitVariable 、インタフェース: TreeVisitor<R,P>public R visitEmptyStatement(EmptyStatementTree node, P p)
visitEmptyStatement 、インタフェース: TreeVisitor<R,P>public R visitBlock(BlockTree node, P p)
visitBlock 、インタフェース: TreeVisitor<R,P>public R visitDoWhileLoop(DoWhileLoopTree node, P p)
visitDoWhileLoop 、インタフェース: TreeVisitor<R,P>public R visitWhileLoop(WhileLoopTree node, P p)
visitWhileLoop 、インタフェース: TreeVisitor<R,P>public R visitForLoop(ForLoopTree node, P p)
visitForLoop 、インタフェース: TreeVisitor<R,P>public R visitEnhancedForLoop(EnhancedForLoopTree node, P p)
visitEnhancedForLoop 、インタフェース: TreeVisitor<R,P>public R visitLabeledStatement(LabeledStatementTree node, P p)
visitLabeledStatement 、インタフェース: TreeVisitor<R,P>public R visitSwitch(SwitchTree node, P p)
visitSwitch 、インタフェース: TreeVisitor<R,P>public R visitSynchronized(SynchronizedTree node, P p)
visitSynchronized 、インタフェース: TreeVisitor<R,P>public R visitCatch(CatchTree node, P p)
visitCatch 、インタフェース: TreeVisitor<R,P>public R visitConditionalExpression(ConditionalExpressionTree node, P p)
visitConditionalExpression 、インタフェース: TreeVisitor<R,P>public R visitExpressionStatement(ExpressionStatementTree node, P p)
visitExpressionStatement 、インタフェース: TreeVisitor<R,P>public R visitBreak(BreakTree node, P p)
visitBreak 、インタフェース: TreeVisitor<R,P>public R visitContinue(ContinueTree node, P p)
visitContinue 、インタフェース: TreeVisitor<R,P>public R visitReturn(ReturnTree node, P p)
visitReturn 、インタフェース: TreeVisitor<R,P>public R visitThrow(ThrowTree node, P p)
visitThrow 、インタフェース: TreeVisitor<R,P>public R visitAssert(AssertTree node, P p)
visitAssert 、インタフェース: TreeVisitor<R,P>public R visitMethodInvocation(MethodInvocationTree node, P p)
visitMethodInvocation 、インタフェース: TreeVisitor<R,P>public R visitNewClass(NewClassTree node, P p)
visitNewClass 、インタフェース: TreeVisitor<R,P>public R visitNewArray(NewArrayTree node, P p)
visitNewArray 、インタフェース: TreeVisitor<R,P>public R visitLambdaExpression(LambdaExpressionTree node, P p)
visitLambdaExpression、インタフェース: TreeVisitor<R,P>public R visitParenthesized(ParenthesizedTree node, P p)
visitParenthesized 、インタフェース: TreeVisitor<R,P>public R visitAssignment(AssignmentTree node, P p)
visitAssignment 、インタフェース: TreeVisitor<R,P>public R visitCompoundAssignment(CompoundAssignmentTree node, P p)
visitCompoundAssignment 、インタフェース: TreeVisitor<R,P>public R visitUnary(UnaryTree node, P p)
visitUnary 、インタフェース: TreeVisitor<R,P>public R visitBinary(BinaryTree node, P p)
visitBinary 、インタフェース: TreeVisitor<R,P>public R visitTypeCast(TypeCastTree node, P p)
visitTypeCast 、インタフェース: TreeVisitor<R,P>public R visitInstanceOf(InstanceOfTree node, P p)
visitInstanceOf 、インタフェース: TreeVisitor<R,P>public R visitArrayAccess(ArrayAccessTree node, P p)
visitArrayAccess 、インタフェース: TreeVisitor<R,P>public R visitMemberSelect(MemberSelectTree node, P p)
visitMemberSelect 、インタフェース: TreeVisitor<R,P>public R visitMemberReference(MemberReferenceTree node, P p)
visitMemberReference、インタフェース: TreeVisitor<R,P>public R visitIdentifier(IdentifierTree node, P p)
visitIdentifier 、インタフェース: TreeVisitor<R,P>public R visitLiteral(LiteralTree node, P p)
visitLiteral 、インタフェース: TreeVisitor<R,P>public R visitPrimitiveType(PrimitiveTypeTree node, P p)
visitPrimitiveType 、インタフェース: TreeVisitor<R,P>public R visitArrayType(ArrayTypeTree node, P p)
visitArrayType 、インタフェース: TreeVisitor<R,P>public R visitParameterizedType(ParameterizedTypeTree node, P p)
visitParameterizedType 、インタフェース: TreeVisitor<R,P>public R visitUnionType(UnionTypeTree node, P p)
visitUnionType 、インタフェース: TreeVisitor<R,P>public R visitIntersectionType(IntersectionTypeTree node, P p)
visitIntersectionType、インタフェース: TreeVisitor<R,P>public R visitTypeParameter(TypeParameterTree node, P p)
visitTypeParameter 、インタフェース: TreeVisitor<R,P>public R visitWildcard(WildcardTree node, P p)
visitWildcard 、インタフェース: TreeVisitor<R,P>public R visitModifiers(ModifiersTree node, P p)
visitModifiers 、インタフェース: TreeVisitor<R,P>public R visitAnnotation(AnnotationTree node, P p)
visitAnnotation 、インタフェース: TreeVisitor<R,P>public R visitAnnotatedType(AnnotatedTypeTree node, P p)
visitAnnotatedType、インタフェース: TreeVisitor<R,P>public R visitOther(Tree node, P p)
visitOther 、インタフェース: TreeVisitor<R,P>public R visitErroneous(ErroneousTree node, P p)
visitErroneous 、インタフェース: TreeVisitor<R,P>
Copyright © 2005, 2014, Oracle and/or its affiliates. All rights reserved.