import java.util.Arrays;
import java.util.List;
import java.util.Vector;

public class A_testParametricParameter_in {
    String fValue2 = "Eclipse";
    List<String> fValue = Arrays.asList("Eclipse");
    
    String test(String arg) { return null;}
    List<String> test2(java.util.List<Object> aList, List<Object> l){
        return null;
    }
    Vector foo(BBB aaa){
    	List<String> xx = null;
    	return null;
    }
}

class AAA {
	
}
class BBB extends AAA {
	
}
