import java.lang.annotation.*; 
import java.lang.reflect.Constructor; 
import java.lang.reflect.Parameter; 
import java.util.Arrays; 

class Scratch { 
public static void main(String[] args) { 
new Scratch().test(); 
} 

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.PARAMETER) 
@interface Ann {} 

class Test { 
Test(String first, @Ann String second) {} 
} 

public void test() { 

Constructor<?> constructor = Test.class.getDeclaredConstructors()[0]; 

for (Annotation[] annotations : constructor.getParameterAnnotations()) { 
System.out.println("annotations = " + Arrays.toString(annotations)); 
} 

System.out.println("\n"); 

for (Parameter parameter : constructor.getParameters()) { 
System.out.println("parameter = " + parameter); 
System.out.println("parameter.getDeclaredAnnotations() = " + Arrays.toString(parameter.getDeclaredAnnotations())); 
System.out.println(); 
} 
} 
} 