import java.lang.reflect.InvocationTargetException ;
import java.util.Objects ;
class Ideone {
public static void main
( String [ ] args
) testClassNewInstance( ) ;
testClassNewInstanceWithVarOnly( ) ;
testClassNewInstanceWithNonFinalVarOnly( ) ;
}
private static void testClassNewInstance( )
final var input = "A string" ;
final var theClass = input.getClass ( ) ;
final var constructor = theClass.getConstructor ( ) ;
final String newString
= constructor.
newInstance ( ) ;
( "in testClassNewInstance, Objects.equals(\" \" , newString) = %b\n " +
"in testClassNewInstance, \" \" .equals(newString) = %b\n " +
"in testClassNewInstance, Objects.equals(\" A string\" , newString) = %b\n " +
"in testClassNewInstance, \" A string\" .equals(newString) = %b\n " ) ,
Objects.equals ( "" , newString) ,
"" .equals ( newString) ,
Objects.equals ( "A string" , newString) ,
"A string" .equals ( newString) ) ;
}
final var input = "A string" ;
final var theClass = input.getClass ( ) ;
final var constructor = theClass.getConstructor ( ) ;
final var newString = constructor.newInstance ( ) ;
( "in testClassNewInstanceWithVarOnly, Objects.equals(\" \" , newString) = %b\n " +
"in testClassNewInstanceWithVarOnly, \" \" .equals(newString) = %b\n " +
"in testClassNewInstanceWithVarOnly, Objects.equals(\" A string\" , newString) = %b\n " +
"in testClassNewInstanceWithVarOnly, \" A string\" .equals(newString) = %b\n " ) ,
Objects.equals ( "" , newString) ,
"" .equals ( newString) ,
Objects.equals ( "A string" , newString) ,
"A string" .equals ( newString) ) ;
}
var input = "A string" ;
final var theClass = input.getClass ( ) ;
final var constructor = theClass.getConstructor ( ) ;
final var newString = constructor.newInstance ( ) ;
( "in testClassNewInstanceWithNonFinalVarOnly, Objects.equals(\" \" , newString) = %b\n " +
"in testClassNewInstanceWithNonFinalVarOnly, \" \" .equals(newString) = %b\n " +
"in testClassNewInstanceWithNonFinalVarOnly, Objects.equals(\" A string\" , newString) = %b\n " +
"in testClassNewInstanceWithNonFinalVarOnly, \" A string\" .equals(newString) = %b\n %n" ) ,
Objects.equals ( "" , newString) ,
"" .equals ( newString) ,
Objects.equals ( "A string" , newString) ,
"A string" .equals ( newString) ) ;
}
}
aW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CmltcG9ydCBqYXZhLnV0aWwuT2JqZWN0czsKCmNsYXNzIElkZW9uZSB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQogICAgICAgICAgICB0aHJvd3MgTm9TdWNoTWV0aG9kRXhjZXB0aW9uLCBJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLCBJbnN0YW50aWF0aW9uRXhjZXB0aW9uLCBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIHsKICAgICAgICB0ZXN0Q2xhc3NOZXdJbnN0YW5jZSgpOwogICAgICAgIHRlc3RDbGFzc05ld0luc3RhbmNlV2l0aFZhck9ubHkoKTsKICAgICAgICB0ZXN0Q2xhc3NOZXdJbnN0YW5jZVdpdGhOb25GaW5hbFZhck9ubHkoKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RDbGFzc05ld0luc3RhbmNlKCkKICAgICAgICAgICAgdGhyb3dzIE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiwgSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwgSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiwgSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiB7CiAgICAgICAgZmluYWwgdmFyIGlucHV0ID0gIkEgc3RyaW5nIjsKICAgICAgICBmaW5hbCB2YXIgdGhlQ2xhc3MgPSBpbnB1dC5nZXRDbGFzcygpOwogICAgICAgIGZpbmFsIHZhciBjb25zdHJ1Y3RvciA9IHRoZUNsYXNzLmdldENvbnN0cnVjdG9yKCk7CiAgICAgICAgZmluYWwgU3RyaW5nIG5ld1N0cmluZyA9IGNvbnN0cnVjdG9yLm5ld0luc3RhbmNlKCk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKAogICAgICAgICAgICAgICAgKCJpbiB0ZXN0Q2xhc3NOZXdJbnN0YW5jZSwgICAgICAgICAgICAgICAgICAgIE9iamVjdHMuZXF1YWxzKFwiXCIsIG5ld1N0cmluZykgICAgICAgICA9ICViXG4iICsKICAgICAgICAgICAgICAgICAiaW4gdGVzdENsYXNzTmV3SW5zdGFuY2UsICAgICAgICAgICAgICAgICAgICBcIlwiLmVxdWFscyhuZXdTdHJpbmcpICAgICAgICAgICAgICAgICAgPSAlYlxuIiArCiAgICAgICAgICAgICAgICAgImluIHRlc3RDbGFzc05ld0luc3RhbmNlLCAgICAgICAgICAgICAgICAgICAgT2JqZWN0cy5lcXVhbHMoXCJBIHN0cmluZ1wiLCBuZXdTdHJpbmcpID0gJWJcbiIgKwogICAgICAgICAgICAgICAgICJpbiB0ZXN0Q2xhc3NOZXdJbnN0YW5jZSwgICAgICAgICAgICAgICAgICAgIFwiQSBzdHJpbmdcIi5lcXVhbHMobmV3U3RyaW5nKSAgICAgICAgICA9ICViXG4iKSwKICAgICAgICAgICAgICAgIE9iamVjdHMuZXF1YWxzKCIiLCBuZXdTdHJpbmcpLAogICAgICAgICAgICAgICAgIiIuZXF1YWxzKG5ld1N0cmluZyksCiAgICAgICAgICAgICAgICBPYmplY3RzLmVxdWFscygiQSBzdHJpbmciLCBuZXdTdHJpbmcpLAogICAgICAgICAgICAgICAgIkEgc3RyaW5nIi5lcXVhbHMobmV3U3RyaW5nKSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0ZXN0Q2xhc3NOZXdJbnN0YW5jZVdpdGhWYXJPbmx5KCkgdGhyb3dzIE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiwgSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwgSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiwgSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiB7CiAgICAgICAgZmluYWwgdmFyIGlucHV0ID0gIkEgc3RyaW5nIjsKICAgICAgICBmaW5hbCB2YXIgdGhlQ2xhc3MgPSBpbnB1dC5nZXRDbGFzcygpOwogICAgICAgIGZpbmFsIHZhciBjb25zdHJ1Y3RvciA9IHRoZUNsYXNzLmdldENvbnN0cnVjdG9yKCk7CiAgICAgICAgZmluYWwgdmFyIG5ld1N0cmluZyA9IGNvbnN0cnVjdG9yLm5ld0luc3RhbmNlKCk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKAogICAgICAgICAgICAgICAgKCJpbiB0ZXN0Q2xhc3NOZXdJbnN0YW5jZVdpdGhWYXJPbmx5LCAgICAgICAgIE9iamVjdHMuZXF1YWxzKFwiXCIsIG5ld1N0cmluZykgICAgICAgICA9ICViXG4iICsKICAgICAgICAgICAgICAgICAiaW4gdGVzdENsYXNzTmV3SW5zdGFuY2VXaXRoVmFyT25seSwgICAgICAgICBcIlwiLmVxdWFscyhuZXdTdHJpbmcpICAgICAgICAgICAgICAgICAgPSAlYlxuIiArCiAgICAgICAgICAgICAgICAgImluIHRlc3RDbGFzc05ld0luc3RhbmNlV2l0aFZhck9ubHksICAgICAgICAgT2JqZWN0cy5lcXVhbHMoXCJBIHN0cmluZ1wiLCBuZXdTdHJpbmcpID0gJWJcbiIgKwogICAgICAgICAgICAgICAgICJpbiB0ZXN0Q2xhc3NOZXdJbnN0YW5jZVdpdGhWYXJPbmx5LCAgICAgICAgIFwiQSBzdHJpbmdcIi5lcXVhbHMobmV3U3RyaW5nKSAgICAgICAgICA9ICViXG4iKSwKICAgICAgICAgICAgICAgIE9iamVjdHMuZXF1YWxzKCIiLCBuZXdTdHJpbmcpLAogICAgICAgICAgICAgICAgIiIuZXF1YWxzKG5ld1N0cmluZyksCiAgICAgICAgICAgICAgICBPYmplY3RzLmVxdWFscygiQSBzdHJpbmciLCBuZXdTdHJpbmcpLAogICAgICAgICAgICAgICAgIkEgc3RyaW5nIi5lcXVhbHMobmV3U3RyaW5nKSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0ZXN0Q2xhc3NOZXdJbnN0YW5jZVdpdGhOb25GaW5hbFZhck9ubHkoKSB0aHJvd3MgTm9TdWNoTWV0aG9kRXhjZXB0aW9uLCBJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLCBJbnN0YW50aWF0aW9uRXhjZXB0aW9uLCBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIHsKICAgICAgICB2YXIgaW5wdXQgPSAiQSBzdHJpbmciOwogICAgICAgIGZpbmFsIHZhciB0aGVDbGFzcyA9IGlucHV0LmdldENsYXNzKCk7CiAgICAgICAgZmluYWwgdmFyIGNvbnN0cnVjdG9yID0gdGhlQ2xhc3MuZ2V0Q29uc3RydWN0b3IoKTsKICAgICAgICBmaW5hbCB2YXIgbmV3U3RyaW5nID0gY29uc3RydWN0b3IubmV3SW5zdGFuY2UoKTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGYoCiAgICAgICAgICAgICAgICAoImluIHRlc3RDbGFzc05ld0luc3RhbmNlV2l0aE5vbkZpbmFsVmFyT25seSwgT2JqZWN0cy5lcXVhbHMoXCJcIiwgbmV3U3RyaW5nKSAgICAgICAgID0gJWJcbiIgKwogICAgICAgICAgICAgICAgICJpbiB0ZXN0Q2xhc3NOZXdJbnN0YW5jZVdpdGhOb25GaW5hbFZhck9ubHksIFwiXCIuZXF1YWxzKG5ld1N0cmluZykgICAgICAgICAgICAgICAgICA9ICViXG4iICsKICAgICAgICAgICAgICAgICAiaW4gdGVzdENsYXNzTmV3SW5zdGFuY2VXaXRoTm9uRmluYWxWYXJPbmx5LCBPYmplY3RzLmVxdWFscyhcIkEgc3RyaW5nXCIsIG5ld1N0cmluZykgPSAlYlxuIiArCiAgICAgICAgICAgICAgICAgImluIHRlc3RDbGFzc05ld0luc3RhbmNlV2l0aE5vbkZpbmFsVmFyT25seSwgXCJBIHN0cmluZ1wiLmVxdWFscyhuZXdTdHJpbmcpICAgICAgICAgID0gJWJcbiVuIiksCiAgICAgICAgICAgICAgICBPYmplY3RzLmVxdWFscygiIiwgbmV3U3RyaW5nKSwKICAgICAgICAgICAgICAgICIiLmVxdWFscyhuZXdTdHJpbmcpLAogICAgICAgICAgICAgICAgT2JqZWN0cy5lcXVhbHMoIkEgc3RyaW5nIiwgbmV3U3RyaW5nKSwKICAgICAgICAgICAgICAgICJBIHN0cmluZyIuZXF1YWxzKG5ld1N0cmluZykpOwogICAgfQp9