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


Java CastExpression.getExpression方法代碼示例

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


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

示例1: visitCastExpression

import org.codehaus.groovy.ast.expr.CastExpression; //導入方法依賴的package包/類
public void visitCastExpression(CastExpression castExpression) {
    ClassNode type = castExpression.getType();
    Expression subExpression = castExpression.getExpression();
    subExpression.visit(this);
    if (ClassHelper.OBJECT_TYPE.equals(type)) return;
    if (castExpression.isCoerce()) {
        controller.getOperandStack().doAsType(type);
    } else {
        if (isNullConstant(subExpression) && !ClassHelper.isPrimitiveType(type)) {
            controller.getOperandStack().replace(type);
        } else {
            ClassNode subExprType = controller.getTypeChooser().resolveType(subExpression, controller.getClassNode());
            if (castExpression.isStrict() ||
                    (!ClassHelper.isPrimitiveType(type) && WideningCategories.implementsInterfaceOrSubclassOf(subExprType, type))) {
                BytecodeHelper.doCast(controller.getMethodVisitor(), type);
                controller.getOperandStack().replace(type);
            } else {
                controller.getOperandStack().doGroovyCast(type);
            }
        }
    }
}
 
開發者ID:apache,項目名稱:groovy,代碼行數:23,代碼來源:AsmClassGenerator.java

示例2: getMethodName

import org.codehaus.groovy.ast.expr.CastExpression; //導入方法依賴的package包/類
protected String getMethodName(Expression message) {
    String methodName = null;
    if (message instanceof CastExpression) {
        CastExpression msg = (CastExpression) message;
        if (msg.getType() == ClassHelper.STRING_TYPE) {
            final Expression methodExpr = msg.getExpression();
            if (methodExpr instanceof ConstantExpression)
              methodName = methodExpr.getText();
        }
    }

    if (methodName == null && message instanceof ConstantExpression) {
        ConstantExpression constantExpression = (ConstantExpression) message;
        methodName = constantExpression.getText();
    }
    return methodName;
}
 
開發者ID:apache,項目名稱:groovy,代碼行數:18,代碼來源:InvocationWriter.java

示例3: visitCastExpression

import org.codehaus.groovy.ast.expr.CastExpression; //導入方法依賴的package包/類
@Override
public void visitCastExpression(final CastExpression expression) {
    super.visitCastExpression(expression);
    if (!expression.isCoerce()) {
        ClassNode targetType = expression.getType();
        Expression source = expression.getExpression();
        ClassNode expressionType = getType(source);
        if (!checkCast(targetType, source) && !isDelegateOrOwnerInClosure(source)) {
            addStaticTypeError("Inconvertible types: cannot cast " + expressionType.toString(false) + " to " + targetType.toString(false), expression);
        }
    }
    storeType(expression, expression.getType());
}
 
開發者ID:apache,項目名稱:groovy,代碼行數:14,代碼來源:StaticTypeCheckingVisitor.java


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