From 8566e7bf5565d6bc173a583ec22f20c28b189c64 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Wed, 8 Apr 2026 13:27:52 +0200 Subject: [PATCH] Favor Class#getTypeName over ClassUtils#getQualifiedName where feasible --- .../beans/factory/BeanNotOfRequiredTypeException.java | 3 +-- .../beans/factory/aot/AutowiredArguments.java | 2 +- .../beans/factory/support/AbstractBeanFactory.java | 2 +- .../beans/propertyeditors/ClassArrayEditor.java | 4 ++-- .../springframework/beans/propertyeditors/ClassEditor.java | 7 +------ .../springframework/jdbc/core/BeanPropertyRowMapper.java | 5 ++--- .../messaging/simp/stomp/StompHeaderAccessor.java | 3 +-- 7 files changed, 9 insertions(+), 17 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/BeanNotOfRequiredTypeException.java b/spring-beans/src/main/java/org/springframework/beans/factory/BeanNotOfRequiredTypeException.java index e574aec05af..bb51dd64b9b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/BeanNotOfRequiredTypeException.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/BeanNotOfRequiredTypeException.java @@ -20,7 +20,6 @@ import java.lang.reflect.Type; import org.springframework.beans.BeansException; import org.springframework.core.ResolvableType; -import org.springframework.util.ClassUtils; /** * Thrown when a bean doesn't match the expected type. @@ -63,7 +62,7 @@ public class BeanNotOfRequiredTypeException extends BeansException { */ public BeanNotOfRequiredTypeException(String beanName, Type requiredType, Class actualType) { super("Bean named '" + beanName + "' is expected to be of type '" + requiredType.getTypeName() + - "' but was actually of type '" + ClassUtils.getQualifiedName(actualType) + "'"); + "' but was actually of type '" + actualType.getTypeName() + "'"); this.beanName = beanName; this.genericRequiredType = requiredType; this.actualType = actualType; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/aot/AutowiredArguments.java b/spring-beans/src/main/java/org/springframework/beans/factory/aot/AutowiredArguments.java index f175ddd2703..4618f11b9b4 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/aot/AutowiredArguments.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/aot/AutowiredArguments.java @@ -45,7 +45,7 @@ public interface AutowiredArguments { Object value = getObject(index); if (!ClassUtils.isAssignableValue(requiredType, value)) { throw new IllegalArgumentException("Argument type mismatch: expected '" + - ClassUtils.getQualifiedName(requiredType) + "' for value [" + value + "]"); + requiredType.getTypeName() + "' for value [" + value + "]"); } return (T) value; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java index 4ce57a8a896..1f8c483db66 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java @@ -426,7 +426,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp catch (TypeMismatchException ex) { if (logger.isTraceEnabled()) { logger.trace("Failed to convert bean '" + name + "' to required type '" + - ClassUtils.getQualifiedName(requiredType) + "'", ex); + requiredType.getTypeName() + "'", ex); } throw new BeanNotOfRequiredTypeException(name, requiredType, bean.getClass()); } diff --git a/spring-beans/src/main/java/org/springframework/beans/propertyeditors/ClassArrayEditor.java b/spring-beans/src/main/java/org/springframework/beans/propertyeditors/ClassArrayEditor.java index 2224c14d140..7532425316d 100644 --- a/spring-beans/src/main/java/org/springframework/beans/propertyeditors/ClassArrayEditor.java +++ b/spring-beans/src/main/java/org/springframework/beans/propertyeditors/ClassArrayEditor.java @@ -84,8 +84,8 @@ public class ClassArrayEditor extends PropertyEditorSupport { return ""; } StringJoiner sj = new StringJoiner(","); - for (Class klass : classes) { - sj.add(ClassUtils.getQualifiedName(klass)); + for (Class clazz : classes) { + sj.add(clazz.getTypeName()); } return sj.toString(); } diff --git a/spring-beans/src/main/java/org/springframework/beans/propertyeditors/ClassEditor.java b/spring-beans/src/main/java/org/springframework/beans/propertyeditors/ClassEditor.java index 4d3bfb3de7a..126f70718b7 100644 --- a/spring-beans/src/main/java/org/springframework/beans/propertyeditors/ClassEditor.java +++ b/spring-beans/src/main/java/org/springframework/beans/propertyeditors/ClassEditor.java @@ -72,12 +72,7 @@ public class ClassEditor extends PropertyEditorSupport { @Override public String getAsText() { Class clazz = (Class) getValue(); - if (clazz != null) { - return ClassUtils.getQualifiedName(clazz); - } - else { - return ""; - } + return (clazz != null ? clazz.getTypeName() : ""); } } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java index a4232b03a36..19fae2b2ba1 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java @@ -42,7 +42,6 @@ import org.springframework.dao.DataRetrievalFailureException; import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.jdbc.support.JdbcUtils; import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; /** @@ -342,7 +341,7 @@ public class BeanPropertyRowMapper implements RowMapper { Object value = getColumnValue(rs, index, pd); if (rowNumber == 0 && logger.isDebugEnabled()) { logger.debug("Mapping column '" + column + "' to property '" + pd.getName() + - "' of type '" + ClassUtils.getQualifiedName(pd.getPropertyType()) + "'"); + "' of type '" + pd.getPropertyType().getTypeName() + "'"); } try { bw.setPropertyValue(pd.getName(), value); @@ -350,7 +349,7 @@ public class BeanPropertyRowMapper implements RowMapper { catch (TypeMismatchException ex) { if (value == null && isPrimitivesDefaultedForNullValue()) { if (logger.isDebugEnabled()) { - String propertyType = ClassUtils.getQualifiedName(pd.getPropertyType()); + String propertyType = pd.getPropertyType().getTypeName(); logger.debug(""" Ignoring intercepted TypeMismatchException for row %d and column '%s' \ with null value when setting property '%s' of type '%s' on object: %s" diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompHeaderAccessor.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompHeaderAccessor.java index 97839a678c6..1e8bc5b6011 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompHeaderAccessor.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompHeaderAccessor.java @@ -32,7 +32,6 @@ import org.springframework.messaging.Message; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessageType; import org.springframework.messaging.support.MessageHeaderAccessor; -import org.springframework.util.ClassUtils; import org.springframework.util.CollectionUtils; import org.springframework.util.MimeType; import org.springframework.util.MimeTypeUtils; @@ -464,7 +463,7 @@ public class StompHeaderAccessor extends SimpMessageHeaderAccessor { private String appendPayload(Object payload) { if (payload.getClass() != byte[].class) { throw new IllegalStateException( - "Expected byte array payload but got: " + ClassUtils.getQualifiedName(payload.getClass())); + "Expected byte array payload but got: " + payload.getClass().getTypeName()); } byte[] bytes = (byte[]) payload; MimeType mimeType = getContentType();