fork(3) download
  1. import java.lang.reflect.InvocationTargetException;
  2. import java.util.Objects;
  3.  
  4. class Ideone {
  5. public static void main(String[] args)
  6. testClassNewInstance();
  7. testClassNewInstanceWithVarOnly();
  8. testClassNewInstanceWithNonFinalVarOnly();
  9. }
  10.  
  11. private static void testClassNewInstance()
  12. final var input = "A string";
  13. final var theClass = input.getClass();
  14. final var constructor = theClass.getConstructor();
  15. final String newString = constructor.newInstance();
  16.  
  17. System.out.printf(
  18. ("in testClassNewInstance, Objects.equals(\"\", newString) = %b\n" +
  19. "in testClassNewInstance, \"\".equals(newString) = %b\n" +
  20. "in testClassNewInstance, Objects.equals(\"A string\", newString) = %b\n" +
  21. "in testClassNewInstance, \"A string\".equals(newString) = %b\n"),
  22. Objects.equals("", newString),
  23. "".equals(newString),
  24. Objects.equals("A string", newString),
  25. "A string".equals(newString));
  26. }
  27.  
  28. private static void testClassNewInstanceWithVarOnly() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
  29. final var input = "A string";
  30. final var theClass = input.getClass();
  31. final var constructor = theClass.getConstructor();
  32. final var newString = constructor.newInstance();
  33.  
  34. System.out.printf(
  35. ("in testClassNewInstanceWithVarOnly, Objects.equals(\"\", newString) = %b\n" +
  36. "in testClassNewInstanceWithVarOnly, \"\".equals(newString) = %b\n" +
  37. "in testClassNewInstanceWithVarOnly, Objects.equals(\"A string\", newString) = %b\n" +
  38. "in testClassNewInstanceWithVarOnly, \"A string\".equals(newString) = %b\n"),
  39. Objects.equals("", newString),
  40. "".equals(newString),
  41. Objects.equals("A string", newString),
  42. "A string".equals(newString));
  43. }
  44.  
  45. private static void testClassNewInstanceWithNonFinalVarOnly() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
  46. var input = "A string";
  47. final var theClass = input.getClass();
  48. final var constructor = theClass.getConstructor();
  49. final var newString = constructor.newInstance();
  50.  
  51. System.out.printf(
  52. ("in testClassNewInstanceWithNonFinalVarOnly, Objects.equals(\"\", newString) = %b\n" +
  53. "in testClassNewInstanceWithNonFinalVarOnly, \"\".equals(newString) = %b\n" +
  54. "in testClassNewInstanceWithNonFinalVarOnly, Objects.equals(\"A string\", newString) = %b\n" +
  55. "in testClassNewInstanceWithNonFinalVarOnly, \"A string\".equals(newString) = %b\n%n"),
  56. Objects.equals("", newString),
  57. "".equals(newString),
  58. Objects.equals("A string", newString),
  59. "A string".equals(newString));
  60. }
  61. }
Success #stdin #stdout 0.1s 50676KB
stdin
Standard input is empty
stdout
in testClassNewInstance,                    Objects.equals("", newString)         = true
in testClassNewInstance,                    "".equals(newString)                  = true
in testClassNewInstance,                    Objects.equals("A string", newString) = false
in testClassNewInstance,                    "A string".equals(newString)          = false
in testClassNewInstanceWithVarOnly,         Objects.equals("", newString)         = false
in testClassNewInstanceWithVarOnly,         "".equals(newString)                  = false
in testClassNewInstanceWithVarOnly,         Objects.equals("A string", newString) = true
in testClassNewInstanceWithVarOnly,         "A string".equals(newString)          = true
in testClassNewInstanceWithNonFinalVarOnly, Objects.equals("", newString)         = true
in testClassNewInstanceWithNonFinalVarOnly, "".equals(newString)                  = true
in testClassNewInstanceWithNonFinalVarOnly, Objects.equals("A string", newString) = false
in testClassNewInstanceWithNonFinalVarOnly, "A string".equals(newString)          = false