@Test public void testGetIfEligible() throws Exception { assertThat(ConstructorBasedConverter.getIfEligible(Person.class)).isNotNull(); assertThat(ConstructorBasedConverter.getIfEligible(Object.class)).isNull(); }
public static <T> ConstructorBasedConverter<T> getIfEligible(Class<T> clazz) { try { final Constructor<T> constructor = clazz.getConstructor(String.class); if (! constructor.isAccessible()) { constructor.setAccessible(true); } return new ConstructorBasedConverter<>(clazz, constructor); } catch (NoSuchMethodException e) { return null; } }
ConstructorBasedConverter implements ParameterConverter<T> { public static <T> ConstructorBasedConverter<T> getIfEligible(Class<T> clazz) { try { final Constructor<T> constructor = clazz.getConstructor(String.class); if (! constructor.isAccessible()) { constructor.setAccessible(true); } return new ConstructorBasedConverter<>(clazz, constructor); } catch (NoSuchMethodException e) { return null; } } }
ConstructorBasedConverter implements ParameterConverter<T> { public static <T> ConstructorBasedConverter<T> getIfEligible(Class<T> clazz) { try { final Constructor<T> constructor = clazz.getConstructor(String.class); if (! constructor.isAccessible()) { constructor.setAccessible(true); } return new ConstructorBasedConverter<>(clazz, constructor); } catch (NoSuchMethodException e) { return null; } } private  ConstructorBasedConverter(Class<T> clazz, Constructor<T> constructor); }
ConstructorBasedConverter implements ParameterConverter<T> { public static <T> ConstructorBasedConverter<T> getIfEligible(Class<T> clazz) { try { final Constructor<T> constructor = clazz.getConstructor(String.class); if (! constructor.isAccessible()) { constructor.setAccessible(true); } return new ConstructorBasedConverter<>(clazz, constructor); } catch (NoSuchMethodException e) { return null; } } private  ConstructorBasedConverter(Class<T> clazz, Constructor<T> constructor); static ConstructorBasedConverter<T> getIfEligible(Class<T> clazz); @Override T fromString(String input); @Override Class<T> getType(); }
ConstructorBasedConverter implements ParameterConverter<T> { public static <T> ConstructorBasedConverter<T> getIfEligible(Class<T> clazz) { try { final Constructor<T> constructor = clazz.getConstructor(String.class); if (! constructor.isAccessible()) { constructor.setAccessible(true); } return new ConstructorBasedConverter<>(clazz, constructor); } catch (NoSuchMethodException e) { return null; } } private  ConstructorBasedConverter(Class<T> clazz, Constructor<T> constructor); static ConstructorBasedConverter<T> getIfEligible(Class<T> clazz); @Override T fromString(String input); @Override Class<T> getType();  }