@Override
	public DataType toDataType() throws DuplicateNameException, IOException {
		String name = _isVisible
				? "RuntimeVisibleParameterAnnotations_attribute" + "|" + numberOfParameters + "|"
				: "RuntimeInvisibleParameterAnnotations_attribute" + "|" + numberOfParameters + "|";

		StructureDataType structure = getBaseStructure(name);
		structure.add(BYTE, "num_parameters", null);
		for (int i = 0; i < numberOfParameters; ++i) {
			structure.add(WORD, "num_annotations_" + i, null);
			AnnotationJava[] annotations = parameterAnnotations.get(i);
			for (int a = 0; a < annotations.length; ++a) {
				structure.add(annotations[a].toDataType(), "annotations_" + i + "_" + a, null);
			}
		}

		return structure;
	}
Each value of the parameter_annotations table represents all of the runtimevisible
annotations on a single parameter. The sequence of values in the table
corresponds to the sequence of parameters in the method descriptor. Each
parameter_annotations entry contains the following two items:
	num_annotations
		The value of the num_annotations item indicates the number of runtimevisible
		annotations on the parameter corresponding to the sequence number
		of this parameter_annotations element.
	annotations
		Each value of the annotations table represents a single runtime-visible
		annotation on the parameter corresponding to the sequence number of this
		parameter_annotations element.
@param parameter the parameter index
@return the annotations for the given parameter
Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/format/attributes/RuntimeParameterAnnotationsAttribute.java