private final AnnotationsAttribute runtimeVisibleAnnotationsAttribute;
private final ParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute;
ClassMethod(String name, String returnType, String[] parameters, int accessFlags, ClassFile classFile) {
ConstPool constPool = classFile.getConstPool();
this.classFile = classFile;
this.returnType = DescriptorUtils.validateDescriptor(returnType);
this.parameters = parameters;
this.name = name;
this.descriptor = DescriptorUtils.methodDescriptor(parameters, returnType);
this.accessFlags = accessFlags;
this.nameIndex = constPool.addUtf8Entry(name);
this.descriptorIndex = constPool.addUtf8Entry(descriptor);
this.constructor = name.equals("<init>");
this.exceptionsAttribute = new ExceptionsAttribute(constPool);
this.attributes.add(exceptionsAttribute);
if (Modifier.isAbstract(accessFlags)) {