test/tools/javac/8015701/AnonymousParameters.java
Print this page
@@ -29,16 +29,18 @@
* @run main AnonymousParameters
*/
import java.lang.Class;
import java.lang.reflect.Constructor;
import java.lang.reflect.Parameter;
-import java.util.concurrent.Callable;
+import java.util.List;
+import java.util.ArrayList;
public class AnonymousParameters {
String[] names = {
"this$0",
+ "startSize",
"val$message"
};
public static void main(String... args) throws Exception {
new AnonymousParameters().run();
@@ -47,19 +49,19 @@
void run() throws Exception {
Class<?> cls = new ParameterNames().makeInner("hello").getClass();
Constructor<?> ctor = cls.getDeclaredConstructors()[0];
Parameter[] params = ctor.getParameters();
- if(params.length == 2) {
- for(int i = 0; i < 2; i++) {
+ if(params.length == 3) {
+ for(int i = 0; i < 3; i++) {
System.err.println("Testing parameter " + params[i].getName());
if(!params[i].getName().equals(names[i]))
error("Expected parameter name " + names[i] +
" got " + params[i].getName());
}
} else
- error("Expected 2 parameters");
+ error("Expected 3 parameters");
if(0 != errors)
throw new Exception("MethodParameters test failed with " +
errors + " errors");
}
@@ -72,18 +74,21 @@
int errors;
}
class ParameterNames {
- public Callable<String> makeInner(final String message) {
- return new Callable<String>() {
- public String call() throws Exception {
- return message;
+ public ArrayList<String> makeInner(final String message) {
+ class List extends ArrayList<String> {
+ public List(int startSize) {
+ super(startSize);
+ add(message);
}
};
+
+ return new List(2);
}
public static void main(String... args) throws Exception {
ParameterNames test = new ParameterNames();
- System.out.println(test.makeInner("Hello").call());
+ System.out.println(test.makeInner("Hello").get(0));
}
}