private void inject(Object object, Field field) { Class fieldType = field.getType(); if (field.isAnnotationPresent(InjectTestContext.class)) { assertFieldType(fieldType, TestContext.class, InjectTestContext.class); setFieldValue(object, field, testContext); } else if (field.isAnnotationPresent(InjectHazelcastInstance.class)) { assertFieldType(fieldType, HazelcastInstance.class, InjectHazelcastInstance.class); setFieldValue(object, field, testContext.getTargetInstance()); } else if (field.isAnnotationPresent(InjectProbe.class)) { assertFieldType(fieldType, Probe.class, InjectProbe.class); Probe probe = getOrCreateProbe(getProbeName(field), isPartOfTotalThroughput(field)); setFieldValue(object, field, probe); } else if (field.isAnnotationPresent(InjectMetronome.class)) { assertFieldType(fieldType, Metronome.class, InjectMetronome.class); Metronome metronome = workerMetronomeConstructor.newInstance(); setFieldValue(object, field, metronome); } }