diff --git a/build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java b/build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java
index 4a9c98f4dac..728e663546c 100644
--- a/build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java
+++ b/build-plugin/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java
@@ -233,7 +233,7 @@ public class StartMojo extends AbstractRunMojo {
}
private boolean hasCauseWithType(Throwable t, Class extends Exception> type) {
- return type.isAssignableFrom(t.getClass()) || t.getCause() != null && hasCauseWithType(t.getCause(), type);
+ return type.isInstance(t) || t.getCause() != null && hasCauseWithType(t.getCause(), type);
}
}
diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml
index 1f2778c9e92..84dda76682a 100644
--- a/config/checkstyle/checkstyle.xml
+++ b/config/checkstyle/checkstyle.xml
@@ -88,6 +88,18 @@
value="Please use static AssertJ imports." />
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/configuration-metadata/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/ExpressionTree.java b/configuration-metadata/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/ExpressionTree.java
index 9eb0caba513..1b154d92bd6 100644
--- a/configuration-metadata/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/ExpressionTree.java
+++ b/configuration-metadata/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/ExpressionTree.java
@@ -55,14 +55,14 @@ class ExpressionTree extends ReflectionWrapper {
}
Object getLiteralValue() throws Exception {
- if (this.literalTreeType.isAssignableFrom(getInstance().getClass())) {
+ if (this.literalTreeType.isInstance(getInstance())) {
return this.literalValueMethod.invoke(getInstance());
}
return null;
}
Object getFactoryValue() throws Exception {
- if (this.methodInvocationTreeType.isAssignableFrom(getInstance().getClass())) {
+ if (this.methodInvocationTreeType.isInstance(getInstance())) {
List> arguments = (List>) this.methodInvocationArgumentsMethod.invoke(getInstance());
if (arguments.size() == 1) {
return new ExpressionTree(arguments.get(0)).getLiteralValue();
@@ -72,7 +72,7 @@ class ExpressionTree extends ReflectionWrapper {
}
Member getSelectedMember() throws Exception {
- if (this.memberSelectTreeType.isAssignableFrom(getInstance().getClass())) {
+ if (this.memberSelectTreeType.isInstance(getInstance())) {
String expression = this.memberSelectTreeExpressionMethod.invoke(getInstance()).toString();
String identifier = this.memberSelectTreeIdentifierMethod.invoke(getInstance()).toString();
if (expression != null && identifier != null) {
@@ -83,7 +83,7 @@ class ExpressionTree extends ReflectionWrapper {
}
List extends ExpressionTree> getArrayExpression() throws Exception {
- if (this.newArrayTreeType.isAssignableFrom(getInstance().getClass())) {
+ if (this.newArrayTreeType.isInstance(getInstance())) {
List> elements = (List>) this.arrayValueMethod.invoke(getInstance());
List result = new ArrayList<>();
if (elements == null) {
diff --git a/core/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer.java b/core/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer.java
index 6e357c13edc..8107c1059ed 100644
--- a/core/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer.java
+++ b/core/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer.java
@@ -64,7 +64,7 @@ public abstract class AbstractInjectionFailureAnalyzer exte
Throwable candidate = root;
C result = null;
while (candidate != null) {
- if (type.isAssignableFrom(candidate.getClass())) {
+ if (type.isInstance(candidate)) {
result = (C) candidate;
}
candidate = candidate.getCause();
diff --git a/core/spring-boot/src/main/java/org/springframework/boot/json/AbstractJsonParser.java b/core/spring-boot/src/main/java/org/springframework/boot/json/AbstractJsonParser.java
index 78e9a0000b8..56591ea5ee3 100644
--- a/core/spring-boot/src/main/java/org/springframework/boot/json/AbstractJsonParser.java
+++ b/core/spring-boot/src/main/java/org/springframework/boot/json/AbstractJsonParser.java
@@ -55,7 +55,7 @@ public abstract class AbstractJsonParser implements JsonParser {
return parser.call();
}
catch (Exception ex) {
- if (check.isAssignableFrom(ex.getClass())) {
+ if (check.isInstance(ex)) {
throw new JsonParseException(ex);
}
ReflectionUtils.rethrowRuntimeException(ex);
diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.java
index 7de31c52698..51a390501a8 100644
--- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.java
+++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.java
@@ -337,7 +337,7 @@ public class ConfigurationPropertiesReportEndpoint implements ApplicationContext
if (value == null || ClassUtils.isPrimitiveOrWrapper(value.getClass()) || value instanceof String) {
return value;
}
- if (CharSequence.class.isAssignableFrom(value.getClass())) {
+ if (value instanceof CharSequence) {
return value.toString();
}
return "Complex property value " + value.getClass().getName();
diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/env/EnvironmentEndpoint.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/env/EnvironmentEndpoint.java
index 4b979f5c573..807ceb0761b 100644
--- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/env/EnvironmentEndpoint.java
+++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/env/EnvironmentEndpoint.java
@@ -208,11 +208,10 @@ public class EnvironmentEndpoint {
}
protected @Nullable Object stringifyIfNecessary(@Nullable Object value) {
- if (value == null || ClassUtils.isPrimitiveOrWrapper(value.getClass())
- || Number.class.isAssignableFrom(value.getClass())) {
+ if (value == null || ClassUtils.isPrimitiveOrWrapper(value.getClass()) || value instanceof Number) {
return value;
}
- if (CharSequence.class.isAssignableFrom(value.getClass())) {
+ if (value instanceof CharSequence) {
return value.toString();
}
return "Complex property type " + value.getClass().getName();
diff --git a/module/spring-boot-http-codec/src/test/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfigurationTests.java b/module/spring-boot-http-codec/src/test/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfigurationTests.java
index 6c221bcbd68..1bdcd559c2c 100644
--- a/module/spring-boot-http-codec/src/test/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfigurationTests.java
+++ b/module/spring-boot-http-codec/src/test/java/org/springframework/boot/http/codec/autoconfigure/CodecsAutoConfigurationTests.java
@@ -169,7 +169,7 @@ class CodecsAutoConfigurationTests {
.filter((writer) -> writer instanceof EncoderHttpMessageWriter>)
.map((writer) -> (EncoderHttpMessageWriter>) writer)
.map(EncoderHttpMessageWriter::getEncoder)
- .filter((encoder) -> encoderClass.isAssignableFrom(encoder.getClass()))
+ .filter(encoderClass::isInstance)
.findFirst()
.orElseThrow();
}
diff --git a/module/spring-boot-http-converter/src/test/java/org/springframework/boot/http/converter/autoconfigure/HttpMessageConvertersAutoConfigurationTests.java b/module/spring-boot-http-converter/src/test/java/org/springframework/boot/http/converter/autoconfigure/HttpMessageConvertersAutoConfigurationTests.java
index 4e7177dc03a..ec35b5e71df 100644
--- a/module/spring-boot-http-converter/src/test/java/org/springframework/boot/http/converter/autoconfigure/HttpMessageConvertersAutoConfigurationTests.java
+++ b/module/spring-boot-http-converter/src/test/java/org/springframework/boot/http/converter/autoconfigure/HttpMessageConvertersAutoConfigurationTests.java
@@ -465,18 +465,14 @@ class HttpMessageConvertersAutoConfigurationTests {
private void assertConverterIsRegistered(AssertableApplicationContext context,
Class extends HttpMessageConverter>> converterType) {
- assertThat(getClientConverters(context)).filteredOn((c) -> converterType.isAssignableFrom(c.getClass()))
- .hasSize(1);
- assertThat(getServerConverters(context)).filteredOn((c) -> converterType.isAssignableFrom(c.getClass()))
- .hasSize(1);
+ assertThat(getClientConverters(context)).filteredOn(converterType::isInstance).hasSize(1);
+ assertThat(getServerConverters(context)).filteredOn(converterType::isInstance).hasSize(1);
}
private void assertConverterIsNotRegistered(AssertableApplicationContext context,
Class extends HttpMessageConverter>> converterType) {
- assertThat(getClientConverters(context)).filteredOn((c) -> converterType.isAssignableFrom(c.getClass()))
- .isEmpty();
- assertThat(getServerConverters(context)).filteredOn((c) -> converterType.isAssignableFrom(c.getClass()))
- .isEmpty();
+ assertThat(getClientConverters(context)).filteredOn(converterType::isInstance).isEmpty();
+ assertThat(getServerConverters(context)).filteredOn(converterType::isInstance).isEmpty();
}
private void assertBeanExists(AssertableApplicationContext context, Class> type, String beanName) {
@@ -504,7 +500,7 @@ class HttpMessageConvertersAutoConfigurationTests {
private > T findConverter(HttpMessageConverters converters,
Class extends HttpMessageConverter>> type) {
for (HttpMessageConverter> converter : converters) {
- if (type.isAssignableFrom(converter.getClass())) {
+ if (type.isInstance(converter)) {
return (T) converter;
}
}
@@ -589,8 +585,7 @@ class HttpMessageConvertersAutoConfigurationTests {
@Bean
JacksonJsonHttpMessageConverter customJacksonMessageConverter(JsonMapper jsonMapperMapper) {
- JacksonJsonHttpMessageConverter converter = new JacksonJsonHttpMessageConverter(jsonMapperMapper);
- return converter;
+ return new JacksonJsonHttpMessageConverter(jsonMapperMapper);
}
}
diff --git a/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/autoconfigure/JdbcConnectionDetailsBeanPostProcessor.java b/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/autoconfigure/JdbcConnectionDetailsBeanPostProcessor.java
index 23d1f737824..cb7989d775c 100644
--- a/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/autoconfigure/JdbcConnectionDetailsBeanPostProcessor.java
+++ b/module/spring-boot-jdbc/src/main/java/org/springframework/boot/jdbc/autoconfigure/JdbcConnectionDetailsBeanPostProcessor.java
@@ -49,7 +49,7 @@ abstract class JdbcConnectionDetailsBeanPostProcessor implements BeanPostProc
@Override
@SuppressWarnings("unchecked")
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
- if (this.dataSourceClass.isAssignableFrom(bean.getClass()) && "dataSource".equals(beanName)) {
+ if (this.dataSourceClass.isInstance(bean) && "dataSource".equals(beanName)) {
JdbcConnectionDetails connectionDetails = this.connectionDetailsProvider.getObject();
if (!(connectionDetails instanceof PropertiesJdbcConnectionDetails)) {
return processDataSource((T) bean, connectionDetails);
diff --git a/module/spring-boot-micrometer-tracing/src/main/java/org/springframework/boot/micrometer/tracing/autoconfigure/TracingAndMeterObservationHandlerGroup.java b/module/spring-boot-micrometer-tracing/src/main/java/org/springframework/boot/micrometer/tracing/autoconfigure/TracingAndMeterObservationHandlerGroup.java
index 35872707f62..0c0e11e76ed 100644
--- a/module/spring-boot-micrometer-tracing/src/main/java/org/springframework/boot/micrometer/tracing/autoconfigure/TracingAndMeterObservationHandlerGroup.java
+++ b/module/spring-boot-micrometer-tracing/src/main/java/org/springframework/boot/micrometer/tracing/autoconfigure/TracingAndMeterObservationHandlerGroup.java
@@ -47,7 +47,7 @@ class TracingAndMeterObservationHandlerGroup implements ObservationHandlerGroup
@Override
public boolean isMember(ObservationHandler> handler) {
- return MeterObservationHandler.class.isInstance(handler) || TracingObservationHandler.class.isInstance(handler);
+ return handler instanceof MeterObservationHandler || handler instanceof TracingObservationHandler;
}
@Override
diff --git a/module/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/autoconfigure/TomcatWebServerFactoryCustomizer.java b/module/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/autoconfigure/TomcatWebServerFactoryCustomizer.java
index e14b4b57c38..199b48f1e4d 100644
--- a/module/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/autoconfigure/TomcatWebServerFactoryCustomizer.java
+++ b/module/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/autoconfigure/TomcatWebServerFactoryCustomizer.java
@@ -320,7 +320,7 @@ public class TomcatWebServerFactoryCustomizer
Class type, ObjIntConsumer consumer) {
factory.addConnectorCustomizers((connector) -> {
ProtocolHandler handler = connector.getProtocolHandler();
- if (type.isAssignableFrom(handler.getClass())) {
+ if (type.isInstance(handler)) {
consumer.accept(type.cast(handler), value);
}
});