public class Foo { @Inject private Bar bar; public void doSomething() { bar.doSomething(); } } public class Bar { public void doSomething() { System.out.println("Doing something..."); } } public class InjectAnnotationProcessor { public static void process(Object instance) { Field[] fields = instance.getClass().getDeclaredFields(); for (Field field : fields) { if (field.isAnnotationPresent(Inject.class)) { field.setAccessible(true); try { Class<?> fieldType = field.getType(); Object fieldInstance = fieldType.newInstance(); field.set(instance, fieldInstance); } catch (Exception e) { e.printStackTrace(); } } } } } com.example.package=InjectAnnotationProcessor Foo foo = new Foo(); InjectAnnotationProcessor.process(foo); foo.doSomething();


上一篇:
下一篇:
切换中文