本文整理汇总了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());
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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);
}
}
示例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());
}
}