fork download
  1. import java.io.InputStream;
  2. import java.lang.reflect.Constructor;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. class Foo
  7. {
  8. Foo(String s, int i, InputStream is, boolean bool)
  9. {
  10. System.out.println();
  11. }
  12. }
  13.  
  14. class Ideone
  15. {
  16. private static final Map<Class<?>, Object> defaultArguments = new HashMap<>();
  17.  
  18. static
  19. {
  20. defaultArguments.put(boolean.class, false);
  21. defaultArguments.put(short.class, 0);
  22. defaultArguments.put(byte.class, 0);
  23. defaultArguments.put(int.class, 0);
  24. defaultArguments.put(char.class, 'A');
  25. defaultArguments.put(long.class, 0);
  26. defaultArguments.put(float.class, 0);
  27. }
  28.  
  29. private static Object[] getFakeArguments(final Constructor<?> constructor)
  30. {
  31. final Object[] args = new Object[constructor.getParameterCount()];
  32. final Class<?>[] parameterTypes = constructor.getParameterTypes();
  33. for (int i = 0; i < parameterTypes.length; ++i)
  34. {
  35. // Use null for objects
  36. args[i] = defaultArguments.getOrDefault(parameterTypes[i], null);
  37. }
  38. return args;
  39. }
  40.  
  41.  
  42.  
  43. public static void main(String[] args) throws Exception
  44. {
  45. Class<?> clazz = Foo.class;
  46. // the actual constructor doesn't matter, just get the first one
  47. final Constructor<?> constructor = clazz.getDeclaredConstructors()[0];
  48. Foo foo = (Foo) constructor.newInstance(getFakeArguments(constructor));
  49. // foo.executionPrecedence();
  50. }
  51. }
Success #stdin #stdout 0.06s 2184192KB
stdin
Standard input is empty
stdout