import java.lang.reflect.Constructor;
import java.util.Arrays;
class Example
{
System.
out.
println("one param: " + a
); // ...
}
System.
out.
println("two params: " + a
+ ", " + b
); // ...
}
System.
out.
println("three params: " + a
+ ", " + b
+ ", " + c
); // ...
}
static Example create
(String...
strings) { try {
Class[] paramTypes = new Class[strings.length];
Constructor ctor
= Example.
class.
getConstructor(paramTypes
); return (Example
)ctor.
newInstance((Object[])strings
); }
}
public static void main
(String[] args
) {
Example e = Example.create("a", "b", "c");
}
}
aW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkNvbnN0cnVjdG9yOwppbXBvcnQgamF2YS51dGlsLkFycmF5czsKCmNsYXNzIEV4YW1wbGUKewogICAgcHVibGljIEV4YW1wbGUoU3RyaW5nIGEpIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm9uZSBwYXJhbTogIiArIGEpOwogICAgICAgIC8vIC4uLgogICAgfQoKICAgIHB1YmxpYyBFeGFtcGxlKFN0cmluZyBhLCBTdHJpbmcgYikgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidHdvIHBhcmFtczogIiArIGEgKyAiLCAiICsgYik7CiAgICAgICAgLy8gLi4uCiAgICB9CgogICAgcHVibGljIEV4YW1wbGUoU3RyaW5nIGEsIFN0cmluZyBiLCBTdHJpbmcgYykgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidGhyZWUgcGFyYW1zOiAiICsgYSArICIsICIgKyBiICsgIiwgIiArIGMpOwogICAgICAgIC8vIC4uLgogICAgfQoKICAgIHN0YXRpYyBFeGFtcGxlIGNyZWF0ZShTdHJpbmcuLi4gc3RyaW5ncykgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIENsYXNzW10gcGFyYW1UeXBlcyA9IG5ldyBDbGFzc1tzdHJpbmdzLmxlbmd0aF07CiAgICAgICAgICAgIEFycmF5cy5maWxsKHBhcmFtVHlwZXMsIFN0cmluZy5jbGFzcyk7CiAgICAgICAgICAgIENvbnN0cnVjdG9yIGN0b3IgPSBFeGFtcGxlLmNsYXNzLmdldENvbnN0cnVjdG9yKHBhcmFtVHlwZXMpOwogICAgICAgICAgICByZXR1cm4gKEV4YW1wbGUpY3Rvci5uZXdJbnN0YW5jZSgoT2JqZWN0W10pc3RyaW5ncyk7CiAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihzdHJpbmdzLmxlbmd0aCArICIgc3RyaW5ncyBub3Qgc3VwcG9ydGVkIik7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKQogICAgewogICAgICAgIEV4YW1wbGUgZSA9IEV4YW1wbGUuY3JlYXRlKCJhIiwgImIiLCAiYyIpOwogICAgfQp9Cg==