### Question:
RecipeHelper { public static boolean isConvertable(Type type, Object propertyValue, PropertyEditorRegistry registry) { if (propertyValue instanceof Recipe) { Recipe recipe = (Recipe) propertyValue; return recipe.canCreate(type); } return (propertyValue instanceof String && (registry == null ? PropertyEditors.registry() : registry).findConverter(toClass(type)) != null) || (type == String.class && char[].class.isInstance(propertyValue)); } private  RecipeHelper(); static Recipe getCaller(); static Class loadClass(String name); static boolean hasDefaultConstructor(Class type); static boolean isSimpleType(Object o); static List<Map.Entry<K,V>> prioritizeProperties(Map<K,V> properties); static boolean isInstance(Type t, Object instance); static boolean isConvertable(Type type, Object propertyValue, PropertyEditorRegistry registry); static boolean isAssignableFrom(Class expected, Class actual); static Object convert(Type expectedType, Object value, boolean lazyRefAllowed, PropertyEditorRegistry registry); static boolean isAssignableFrom(List<? extends Class<?>> expectedTypes, List<? extends Class<?>> actualTypes); static boolean isAssignable(Type expectedType, Type actualType); static Class toClass(Type type); static Type[] getTypeParameters(Class desiredType, Type type);  }### Answer:
@Test public void stringCharArrayIsConvertable() { assertTrue(RecipeHelper.isConvertable(char[].class, "foo", PropertyEditors.registry())); assertTrue(RecipeHelper.isConvertable(String.class, "foo".toCharArray(), PropertyEditors.registry())); }