当前位置: 首页>>代码示例>>Java>>正文


Java SignatureAttribute.Type方法代码示例

本文整理汇总了Java中javassist.bytecode.SignatureAttribute.Type方法的典型用法代码示例。如果您正苦于以下问题:Java SignatureAttribute.Type方法的具体用法?Java SignatureAttribute.Type怎么用?Java SignatureAttribute.Type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在javassist.bytecode.SignatureAttribute的用法示例。


在下文中一共展示了SignatureAttribute.Type方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: signatureTypeToType

import javassist.bytecode.SignatureAttribute; //导入方法依赖的package包/类
static Type signatureTypeToType(SignatureAttribute.Type signatureType, TypeSolver typeSolver, TypeParametrizable typeParametrizable) {
    if (signatureType instanceof SignatureAttribute.ClassType) {
        SignatureAttribute.ClassType classType = (SignatureAttribute.ClassType) signatureType;
        List<Type> typeParameters = classType.getTypeArguments() == null ? Collections.emptyList() : Arrays.stream(classType.getTypeArguments()).map(ta -> typeArgumentToType(ta, typeSolver, typeParametrizable)).collect(Collectors.toList());
        final String typeName =
                classType.getDeclaringClass() != null ?
                        classType.getDeclaringClass().getName() + "." + classType.getName() :
                        classType.getName();
        ReferenceTypeDeclaration typeDeclaration = typeSolver.solveType(
                internalNameToCanonicalName(typeName));
        return new ReferenceTypeImpl(typeDeclaration, typeParameters, typeSolver);
    } else if (signatureType instanceof SignatureAttribute.TypeVariable) {
        SignatureAttribute.TypeVariable typeVariableSignature = (SignatureAttribute.TypeVariable)signatureType;
        Optional<TypeParameterDeclaration> typeParameterDeclarationOpt = typeParametrizable.findTypeParameter(typeVariableSignature.getName());
        if (!typeParameterDeclarationOpt.isPresent()) {
            throw new UnsolvedSymbolException("Unable to solve TypeVariable " + typeVariableSignature);
        }
        TypeParameterDeclaration typeParameterDeclaration = typeParameterDeclarationOpt.get();
        return new TypeVariable(typeParameterDeclaration);
    } else {
        throw new RuntimeException(signatureType.getClass().getCanonicalName());
    }
}
 
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:24,代码来源:JavassistUtils.java

示例2: getParam

import javassist.bytecode.SignatureAttribute; //导入方法依赖的package包/类
@Override
public ParameterDeclaration getParam(int i) {
    try {
        boolean variadic = false;
        if ((ctMethod.getModifiers() & javassist.Modifier.VARARGS) > 0) {
            variadic = i == (ctMethod.getParameterTypes().length - 1);
        }
        if (ctMethod.getGenericSignature() != null) {
            SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctMethod.getGenericSignature());
            SignatureAttribute.Type signatureType = methodSignature.getParameterTypes()[i];
            return new JavassistParameterDeclaration(JavassistUtils.signatureTypeToType(signatureType, typeSolver, this), typeSolver, variadic);
        } else {
            return new JavassistParameterDeclaration(ctMethod.getParameterTypes()[i], typeSolver, variadic);
        }
    } catch (NotFoundException e) {
        throw new RuntimeException(e);
    } catch (BadBytecode badBytecode) {
        throw new RuntimeException(badBytecode);
    }
}
 
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:21,代码来源:JavassistMethodDeclaration.java

示例3: getParam

import javassist.bytecode.SignatureAttribute; //导入方法依赖的package包/类
@Override
public ParameterDeclaration getParam(int i) {
    try {
        boolean variadic = false;
        if ((ctConstructor.getModifiers() & javassist.Modifier.VARARGS) > 0) {
            variadic = i == (ctConstructor.getParameterTypes().length - 1);
        }
        if (ctConstructor.getGenericSignature() != null) {
            SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctConstructor.getGenericSignature());
            SignatureAttribute.Type signatureType = methodSignature.getParameterTypes()[i];
            return new JavassistParameterDeclaration(JavassistUtils.signatureTypeToType(signatureType, typeSolver, this), typeSolver, variadic);
        } else {
            return new JavassistParameterDeclaration(ctConstructor.getParameterTypes()[i], typeSolver, variadic);
        }
    } catch (NotFoundException e) {
        throw new RuntimeException(e);
    } catch (BadBytecode badBytecode) {
        throw new RuntimeException(badBytecode);
    }
}
 
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:21,代码来源:JavassistConstructorDeclaration.java

示例4: getParam

import javassist.bytecode.SignatureAttribute; //导入方法依赖的package包/类
@Override
public ResolvedParameterDeclaration getParam(int i) {
    try {
        boolean variadic = false;
        if ((ctMethod.getModifiers() & javassist.Modifier.VARARGS) > 0) {
            variadic = i == (ctMethod.getParameterTypes().length - 1);
        }
        if (ctMethod.getGenericSignature() != null) {
            SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctMethod.getGenericSignature());
            SignatureAttribute.Type signatureType = methodSignature.getParameterTypes()[i];
            return new JavassistParameterDeclaration(JavassistUtils.signatureTypeToType(signatureType, typeSolver, this), typeSolver, variadic);
        } else {
            return new JavassistParameterDeclaration(ctMethod.getParameterTypes()[i], typeSolver, variadic);
        }
    } catch (NotFoundException e) {
        throw new RuntimeException(e);
    } catch (BadBytecode badBytecode) {
        throw new RuntimeException(badBytecode);
    }
}
 
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:21,代码来源:JavassistMethodDeclaration.java

示例5: getParam

import javassist.bytecode.SignatureAttribute; //导入方法依赖的package包/类
@Override
public ResolvedParameterDeclaration getParam(int i) {
    try {
        boolean variadic = false;
        if ((ctConstructor.getModifiers() & javassist.Modifier.VARARGS) > 0) {
            variadic = i == (ctConstructor.getParameterTypes().length - 1);
        }
        if (ctConstructor.getGenericSignature() != null) {
            SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctConstructor.getGenericSignature());
            SignatureAttribute.Type signatureType = methodSignature.getParameterTypes()[i];
            return new JavassistParameterDeclaration(JavassistUtils.signatureTypeToType(signatureType, typeSolver, this), typeSolver, variadic);
        } else {
            return new JavassistParameterDeclaration(ctConstructor.getParameterTypes()[i], typeSolver, variadic);
        }
    } catch (NotFoundException e) {
        throw new RuntimeException(e);
    } catch (BadBytecode badBytecode) {
        throw new RuntimeException(badBytecode);
    }
}
 
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:21,代码来源:JavassistConstructorDeclaration.java

示例6: signatureTypeToType

import javassist.bytecode.SignatureAttribute; //导入方法依赖的package包/类
static ResolvedType signatureTypeToType(SignatureAttribute.Type signatureType, TypeSolver typeSolver, ResolvedTypeParametrizable typeParametrizable) {
    if (signatureType instanceof SignatureAttribute.ClassType) {
        SignatureAttribute.ClassType classType = (SignatureAttribute.ClassType) signatureType;
        List<ResolvedType> typeArguments = classType.getTypeArguments() == null ? Collections.emptyList() : Arrays.stream(classType.getTypeArguments()).map(ta -> typeArgumentToType(ta, typeSolver, typeParametrizable)).collect(Collectors.toList());
        final String typeName =
                classType.getDeclaringClass() != null ?
                        classType.getDeclaringClass().getName() + "." + classType.getName() :
                        classType.getName();
        ResolvedReferenceTypeDeclaration typeDeclaration = typeSolver.solveType(
                removeTypeArguments(internalNameToCanonicalName(typeName)));
        return new ReferenceTypeImpl(typeDeclaration, typeArguments, typeSolver);
    } else if (signatureType instanceof SignatureAttribute.TypeVariable) {
        SignatureAttribute.TypeVariable typeVariableSignature = (SignatureAttribute.TypeVariable)signatureType;
        Optional<ResolvedTypeParameterDeclaration> typeParameterDeclarationOpt = typeParametrizable.findTypeParameter(typeVariableSignature.getName());
        if (!typeParameterDeclarationOpt.isPresent()) {
            throw new UnsolvedSymbolException("Unable to solve TypeVariable " + typeVariableSignature);
        }
        ResolvedTypeParameterDeclaration typeParameterDeclaration = typeParameterDeclarationOpt.get();
        return new ResolvedTypeVariable(typeParameterDeclaration);
    } else if (signatureType instanceof SignatureAttribute.ArrayType) {
        SignatureAttribute.ArrayType arrayType = (SignatureAttribute.ArrayType) signatureType;
        return new ResolvedArrayType(signatureTypeToType(arrayType.getComponentType(), typeSolver, typeParametrizable));
    } else if (signatureType instanceof SignatureAttribute.BaseType) {
        SignatureAttribute.BaseType baseType = (SignatureAttribute.BaseType) signatureType;
        if (baseType.toString().equals("void")) {
            return ResolvedVoidType.INSTANCE;
        } else {
            return ResolvedPrimitiveType.byName(baseType.toString());
        }
    } else {
        throw new RuntimeException(signatureType.getClass().getCanonicalName());
    }
}
 
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:34,代码来源:JavassistUtils.java


注:本文中的javassist.bytecode.SignatureAttribute.Type方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。