Open
Description
The afterPropertiesSet() method currently contains multiple null checks and assignments that can be simplified. By utilizing Java 9’s Objects.requireNonNullElse and Objects.requireNonNullElseGet methods, we can make the code more concise, readable, and maintainable.
AS-IS
public void afterPropertiesSet() {
super.afterPropertiesSet();
if (defaultSerializer == null) {
defaultSerializer = new JdkSerializationRedisSerializer(
classLoader != null ? classLoader : this.getClass().getClassLoader());
}
if (enableDefaultSerializer) {
if (keySerializer == null) {
keySerializer = defaultSerializer;
}
if (valueSerializer == null) {
valueSerializer = defaultSerializer;
}
if (hashKeySerializer == null) {
hashKeySerializer = defaultSerializer;
}
if (hashValueSerializer == null) {
hashValueSerializer = defaultSerializer;
}
}
if (scriptExecutor == null) {
this.scriptExecutor = new DefaultScriptExecutor<>(this);
}
initialized = true;
}
TO-BE
public void afterPropertiesSet() {
super.afterPropertiesSet();
defaultSerializer = Objects.requireNonNullElseGet(
defaultSerializer,
() -> new JdkSerializationRedisSerializer(
Objects.requireNonNullElse(classLoader, getClass().getClassLoader()))
);
if (enableDefaultSerializer) {
keySerializer = Objects.requireNonNullElse(keySerializer, defaultSerializer);
valueSerializer = Objects.requireNonNullElse(valueSerializer, defaultSerializer);
hashKeySerializer = Objects.requireNonNullElse(hashKeySerializer, defaultSerializer);
hashValueSerializer = Objects.requireNonNullElse(hashValueSerializer, defaultSerializer);
}
scriptExecutor = Objects.requireNonNullElseGet(
scriptExecutor,
() -> new DefaultScriptExecutor<>(this)
);
initialized = true;
}
}