本文整理汇总了Java中com.sun.tools.javac.tree.JCTree.JCLambda方法的典型用法代码示例。如果您正苦于以下问题:Java JCTree.JCLambda方法的具体用法?Java JCTree.JCLambda怎么用?Java JCTree.JCLambda使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.sun.tools.javac.tree.JCTree
的用法示例。
在下文中一共展示了JCTree.JCLambda方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visitLambdaExpression
import com.sun.tools.javac.tree.JCTree; //导入方法依赖的package包/类
@Override
public Void visitLambdaExpression(
@NonNull final LambdaExpressionTree node,
@NonNull final Map<Pair<BinaryName, String>, UsagesData<String>> p) {
final Type type = ((JCTree.JCLambda)node).type;
if (type != null) {
final Symbol sym = type.tsym;
if (sym != null) {
if (sym != null && sym.getKind().isInterface()) {
addUsage(sym,
activeClass.peek(),
p,
ClassIndexImpl.UsageType.FUNCTIONAL_IMPLEMENTORS);
}
}
}
return super.visitLambdaExpression(node, p);
}
示例2: visitLambda
import com.sun.tools.javac.tree.JCTree; //导入方法依赖的package包/类
@Override
public void visitLambda( JCTree.JCLambda tree )
{
super.visitLambda( tree );
if( _tp.isGenerate() && !shouldProcessForGeneration() )
{
// Don't process tree during GENERATE, unless the tree was generated e.g., a bridge method
return;
}
tree.type = eraseStructureType( tree.type );
ArrayList<Type> types = new ArrayList<>();
for( Type target : tree.targets )
{
types.add( eraseStructureType( target ) );
}
tree.targets = List.from( types );
}
示例3: getFunctionalInterfaceMethod
import com.sun.tools.javac.tree.JCTree; //导入方法依赖的package包/类
/**
* finds the corresponding functional interface method for a lambda expression
*
* @param tree the lambda expression
* @return the functional interface method
*/
public static Symbol.MethodSymbol getFunctionalInterfaceMethod(
LambdaExpressionTree tree, Types types) {
Type funcInterfaceType = ((JCTree.JCLambda) tree).type;
return (Symbol.MethodSymbol) types.findDescriptorSymbol(funcInterfaceType.tsym);
}