import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.util.HashMap;
import java.util.Map;
class Foo
{
{
}
}
class Ideone
{
private static final Map<Class<?>, Object> defaultArguments = new HashMap<>();
static
{
defaultArguments.put(boolean.class, false);
defaultArguments.put(short.class, 0);
defaultArguments.put(byte.class, 0);
defaultArguments.put(int.class, 0);
defaultArguments.put(char.class, 'A');
defaultArguments.put(long.class, 0);
defaultArguments.put(float.class, 0);
}
private static Object[] getFakeArguments
(final Constructor
<?> constructor
) {
final Object[] args
= new Object[constructor.
getParameterCount()]; final Class<?>[] parameterTypes = constructor.getParameterTypes();
for (int i = 0; i < parameterTypes.length; ++i)
{
// Use null for objects
args[i] = defaultArguments.getOrDefault(parameterTypes[i], null);
}
return args;
}
{
Class<?> clazz = Foo.class;
// the actual constructor doesn't matter, just get the first one
final Constructor<?> constructor = clazz.getDeclaredConstructors()[0];
Foo foo = (Foo) constructor.newInstance(getFakeArguments(constructor));
// foo.executionPrecedence();
}
}
aW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CmltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5Db25zdHJ1Y3RvcjsKaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwppbXBvcnQgamF2YS51dGlsLk1hcDsKCmNsYXNzIEZvbwp7CiAgICBGb28oU3RyaW5nIHMsIGludCBpLCBJbnB1dFN0cmVhbSBpcywgYm9vbGVhbiBib29sKQogICAgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOwogICAgfQp9CgpjbGFzcyBJZGVvbmUKewoJcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWFwPENsYXNzPD8+LCBPYmplY3Q+IGRlZmF1bHRBcmd1bWVudHMgPSBuZXcgSGFzaE1hcDw+KCk7CiAgICAKICAgIHN0YXRpYwogICAgewogICAgICAgIGRlZmF1bHRBcmd1bWVudHMucHV0KGJvb2xlYW4uY2xhc3MsIGZhbHNlKTsKICAgICAgICBkZWZhdWx0QXJndW1lbnRzLnB1dChzaG9ydC5jbGFzcywgMCk7CiAgICAgICAgZGVmYXVsdEFyZ3VtZW50cy5wdXQoYnl0ZS5jbGFzcywgMCk7CiAgICAgICAgZGVmYXVsdEFyZ3VtZW50cy5wdXQoaW50LmNsYXNzLCAwKTsKICAgICAgICBkZWZhdWx0QXJndW1lbnRzLnB1dChjaGFyLmNsYXNzLCAnQScpOwogICAgICAgIGRlZmF1bHRBcmd1bWVudHMucHV0KGxvbmcuY2xhc3MsIDApOwogICAgICAgIGRlZmF1bHRBcmd1bWVudHMucHV0KGZsb2F0LmNsYXNzLCAwKTsKICAgIH0KICAgIAogICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W10gZ2V0RmFrZUFyZ3VtZW50cyhmaW5hbCBDb25zdHJ1Y3Rvcjw/PiBjb25zdHJ1Y3RvcikKICAgIHsKICAgICAgICBmaW5hbCBPYmplY3RbXSBhcmdzID0gbmV3IE9iamVjdFtjb25zdHJ1Y3Rvci5nZXRQYXJhbWV0ZXJDb3VudCgpXTsKICAgICAgICBmaW5hbCBDbGFzczw/PltdIHBhcmFtZXRlclR5cGVzID0gY29uc3RydWN0b3IuZ2V0UGFyYW1ldGVyVHlwZXMoKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhcmFtZXRlclR5cGVzLmxlbmd0aDsgKytpKQogICAgICAgIHsKICAgICAgICAgICAgLy8gVXNlIG51bGwgZm9yIG9iamVjdHMKICAgICAgICAgICAgYXJnc1tpXSA9IGRlZmF1bHRBcmd1bWVudHMuZ2V0T3JEZWZhdWx0KHBhcmFtZXRlclR5cGVzW2ldLCBudWxsKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFyZ3M7CiAgICB9CiAgICAKICAgIAogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uCiAgICB7CiAgICAgICAgQ2xhc3M8Pz4gY2xhenogPSBGb28uY2xhc3M7CiAgICAgICAgLy8gdGhlIGFjdHVhbCBjb25zdHJ1Y3RvciBkb2Vzbid0IG1hdHRlciwganVzdCBnZXQgdGhlIGZpcnN0IG9uZQogICAgICAgIGZpbmFsIENvbnN0cnVjdG9yPD8+IGNvbnN0cnVjdG9yID0gY2xhenouZ2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMoKVswXTsKICAgICAgICBGb28gZm9vID0gKEZvbykgY29uc3RydWN0b3IubmV3SW5zdGFuY2UoZ2V0RmFrZUFyZ3VtZW50cyhjb25zdHJ1Y3RvcikpOwogICAgICAgIC8vIGZvby5leGVjdXRpb25QcmVjZWRlbmNlKCk7CiAgICB9Cn0=