Method name is myMethod
 Declaring class is Target
 Arg 0: int
 Exc 0: java.lang.NullPointerException
 Exc 1: java.io.IOException
 Return type is int
 Access flags are 0x1
Method name is myMethod
 Declaring class is SuperTarget
 Arg 0: float
 Return type is int
 Access flags are 0x1
Method name is myNoargMethod
 Declaring class is Target
 Return type is void
 Access flags are 0x9
Method name is myMethod
 Declaring class is Target
 Arg 0: [Ljava.lang.String;
 Arg 1: float
 Arg 2: char
 Return type is int
 Access flags are 0x1
SuperTarget constructor ()V
Target constructor ()V
Before, float is 3.1415925
myMethod: hi there 3.1415925 ✔ !
Result of invoke: 7
Calling no-arg void-return method
myNoargMethod ()V
throwingMethod
Invoke got expected exception:
java.lang.reflect.InvocationTargetException
java.lang.NullPointerException: gratuitous throw!

Field name is string1
 Declaring class is Target
 Field type is java.lang.String
 Access flags are 0x1
  string1 value is 'hey'
  ::: hey:yo:there
  string1 value is now 'a new string'
  ::: a new string:yo:there
  got expected illegal obj store exc
  got the other expected access exc
  got expected arg exc
pubLong initial value is 1122334455667788
pubLong new value is 9988776655443322
Field name is superInt
 Declaring class is SuperTarget
 Field type is int
 Access flags are 0x1
  superInt value is 1010101
  superInt boxed is 1010101
  superInt value is now 20202
  superInt value (from short) is now 30303
  superInt value is now 40404
  got expected long->int failure
  got expected long->int failure
  got expected string->int failure
  got expected int->short failure
Field name is superClassInt
 Declaring class is SuperTarget
 Field type is int
 Access flags are 0x9
  superClassInt value is 1010102
Field name is staticDouble
 Declaring class is Target
 Field type is double
 Access flags are 0x9
  staticDoubleVal value is 3.3
  got expected double->long failure
as expected: aPrivateInt not found
Field name is constantString
 Declaring class is Target
 Field type is java.lang.String
 Access flags are 0x19
  Constant test value is a constant string
Field name is cantTouchThis
 Declaring class is Target
 Field type is int
 Access flags are 0x11
  cantTouchThis is 77
  as expected: set-final throws exception
  cantTouchThis is still 77
  public final int Target.cantTouchThis accessible=false
  public final int Target.cantTouchThis accessible=true
  cantTouchThis is now 87
  cantTouchThis is now 88
cons modifiers=1
SuperTarget constructor ()V
Target constructor (IF)V : ii=7 ff=3.3333
myMethod (I)I
 arg=17 anInt=7
got expected exception for Class.newInstance
got expected exception for Constructor.newInstance
ReflectTest done!
public method
static java.lang.Object java.util.Collections.checkType(java.lang.Object,java.lang.Class) accessible=false
static java.lang.Object java.util.Collections.checkType(java.lang.Object,java.lang.Class) accessible=true
checkType invoking null
checkType got expected exception
calling const-class FieldNoisyInitUser.class
called const-class FieldNoisyInitUser.class
got fields
got field
FieldNoisyInitUser is initializing
read field value
FieldNoisyInit is initializing

calling const-class MethodNoisyInitUser.class
called const-class MethodNoisyInitUser.class
got methods
got method
MethodNoisyInitUser is initializing
invoked method
MethodNoisyInit is initializing

generic field: java.util.List<java.lang.String>
generic method fancyMethod params='[1] java.util.ArrayList<java.lang.String>' ret='java.util.Map<java.lang.Integer, java.lang.String>'
generic ctor Main params='[1] java.util.ArrayList<java.lang.Integer>'
fields are unique
fields are .equals
methods are unique
methods are .equals
type1 is a ParameterizedType
type2 is a ParameterizedType
type3 is a ParameterizedType
type1(java.util.Set<java.lang.String>) equals type2(java.util.Set<java.lang.String>)
type1(java.util.Set<java.lang.String>) equals type3(java.util.Set<java.lang.String>)
type1(java.util.Set<java.lang.String>) hashCode equals type2(java.util.Set<java.lang.String>) hashCode
type1(java.util.Set<java.lang.String>) hashCode equals type3(java.util.Set<java.lang.String>) hashCode
type1 is a GenericArrayType
type2 is a GenericArrayType
type3 is a GenericArrayType
type1(T[]) equals type2(T[])
type1(T[]) equals type3(T[])
type1(T[]) hashCode equals type2(T[]) hashCode
type1(T[]) hashCode equals type3(T[]) hashCode