@Test public void testBothAnnotatedConstructor() { CachedConstructorAnalyzer<BothAnnotatedConstructor> analyzer = new CachedConstructorAnalyzer<>(BothAnnotatedConstructor.class, ANNOTATIONS); Constructor<BothAnnotatedConstructor> constructor = analyzer.getConstructor(); assertEquals(1, constructor.getParameterCount()); assertEquals(Integer.class, constructor.getParameterTypes()[0]); }
public Constructor<T> getConstructor() { return constructor.get(); }
CachedConstructorAnalyzer { public Constructor<T> getConstructor() { return constructor.get(); } }
CachedConstructorAnalyzer { public Constructor<T> getConstructor() { return constructor.get(); } CachedConstructorAnalyzer(Class<T> clazz, Collection<Class<? extends Annotation>> annotations); }
CachedConstructorAnalyzer { public Constructor<T> getConstructor() { return constructor.get(); } CachedConstructorAnalyzer(Class<T> clazz, Collection<Class<? extends Annotation>> annotations); Constructor<T> getConstructor(); boolean hasCompatibleConstructor(); }
CachedConstructorAnalyzer { public Constructor<T> getConstructor() { return constructor.get(); } CachedConstructorAnalyzer(Class<T> clazz, Collection<Class<? extends Annotation>> annotations); Constructor<T> getConstructor(); boolean hasCompatibleConstructor();  }