Почему SwarkbackObjectToStringConverter Spring игнорирует метод ToString ()?JAVA

Программисты JAVA общаются здесь
Anonymous
Почему SwarkbackObjectToStringConverter Spring игнорирует метод ToString ()?

Сообщение Anonymous »

У меня есть запись, которая не предоставляет конструктор, принимающий строку, но действительно предоставляет метод toString () .
Использование defaultconversionservice.java , который обеспечивает FallbackOstoStringConverter , я получаю:
/> org.springframework.expression.spel.spelevaluationexception: el1001e: Проблема преобразования типа, не может преобразовать из xxx в java.lang.string < /p>
< /blockquote>
, который запутал меня и заставил меня взглянуть на реализацию, где я нашел этот бит: < /p>

PrettyPrint-Override ">

Код: Выделить всё

@Nullable
private static Method determineToMethod(Class targetClass, Class sourceClass) {
if (String.class == targetClass || String.class == sourceClass) {
// Do not accept a toString() method or any to methods on String itself
return null;
}

Method method = ClassUtils.getMethodIfAvailable(sourceClass, "to" + targetClass.getSimpleName());
return (method != null && !Modifier.isStatic(method.getModifiers()) &&
ClassUtils.isAssignable(targetClass, method.getReturnType()) ? method : null);
}
Где TargetClass всегда будет String.class . Таким образом, мы можем исключить toString () методы работы с этим.

Код: Выделить всё

@Nullable
private static Method determineFactoryMethod(Class targetClass, Class sourceClass) {
if (String.class == targetClass) {
// Do not accept the String.valueOf(Object) method
return null;
}

Method method = ClassUtils.getStaticMethod(targetClass, "valueOf", sourceClass);
if (method == null) {
method = ClassUtils.getStaticMethod(targetClass, "of", sourceClass);
if (method == null) {
method = ClassUtils.getStaticMethod(targetClass, "from", sourceClass);
}
}

return (method != null && areRelatedTypes(targetClass, method.getReturnType()) ? method : null);
}
, где TargetClass всегда будет String.class , так что это также не будет работать. У кого -нибудь есть объяснение такого поведения? Соответствующим коммитию 10 лет.
edit : я не ищу решение. Я могу решить это - мне просто интересно

Подробнее здесь: https://stackoverflow.com/questions/796 ... string-met

Вернуться в «JAVA»