Refine use of isArray() and componentType()
This commit is contained in:
parent
cc9b39b53f
commit
6505c4b839
|
@ -288,7 +288,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA
|
|||
String lastKey = tokens.keys[tokens.keys.length - 1];
|
||||
|
||||
if (propValue.getClass().isArray()) {
|
||||
Class<?> requiredType = propValue.getClass().componentType();
|
||||
Class<?> componentType = propValue.getClass().componentType();
|
||||
int arrayIndex = Integer.parseInt(lastKey);
|
||||
Object oldValue = null;
|
||||
try {
|
||||
|
@ -296,10 +296,9 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA
|
|||
oldValue = Array.get(propValue, arrayIndex);
|
||||
}
|
||||
Object convertedValue = convertIfNecessary(tokens.canonicalName, oldValue, pv.getValue(),
|
||||
requiredType, ph.nested(tokens.keys.length));
|
||||
componentType, ph.nested(tokens.keys.length));
|
||||
int length = Array.getLength(propValue);
|
||||
if (arrayIndex >= length && arrayIndex < this.autoGrowCollectionLimit) {
|
||||
Class<?> componentType = propValue.getClass().componentType();
|
||||
Object newArray = Array.newInstance(componentType, arrayIndex + 1);
|
||||
System.arraycopy(propValue, 0, newArray, 0, length);
|
||||
int lastKeyIndex = tokens.canonicalName.lastIndexOf('[');
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -211,7 +211,7 @@ public abstract class RepeatableContainers {
|
|||
throw new NoSuchMethodException("No value method found");
|
||||
}
|
||||
Class<?> returnType = valueMethod.getReturnType();
|
||||
if (!returnType.isArray() || returnType.componentType() != repeatable) {
|
||||
if (returnType.componentType() != repeatable) {
|
||||
throw new AnnotationConfigurationException(
|
||||
"Container type [%s] must declare a 'value' attribute for an array of type [%s]"
|
||||
.formatted(container.getName(), repeatable.getName()));
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -516,11 +516,9 @@ public class CodeFlow implements Opcodes {
|
|||
*/
|
||||
public static String toJvmDescriptor(Class<?> clazz) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (clazz.isArray()) {
|
||||
while (clazz.isArray()) {
|
||||
sb.append('[');
|
||||
clazz = clazz.componentType();
|
||||
}
|
||||
while (clazz.isArray()) {
|
||||
sb.append('[');
|
||||
clazz = clazz.componentType();
|
||||
}
|
||||
if (clazz.isPrimitive()) {
|
||||
if (clazz == boolean.class) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -49,8 +49,8 @@ public class DestinationVariableArgumentResolver implements RSocketServiceArgume
|
|||
collection.forEach(requestValues::addRouteVariable);
|
||||
return true;
|
||||
}
|
||||
else if (argument.getClass().isArray()) {
|
||||
for (Object variable : (Object[]) argument) {
|
||||
else if (argument instanceof Object[] arguments) {
|
||||
for (Object variable : arguments) {
|
||||
requestValues.addRouteVariable(variable);
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -623,7 +623,7 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
|
|||
parameterizedType.getActualTypeArguments().length == 1) {
|
||||
Type typeArgument = parameterizedType.getActualTypeArguments()[0];
|
||||
if (typeArgument instanceof Class<?> classArgument) {
|
||||
return ((classArgument.isArray() && byte.class == classArgument.componentType()) ||
|
||||
return ((byte.class == classArgument.componentType()) ||
|
||||
isPrimitiveWrapper(classArgument) || isStandardClass(classArgument) ||
|
||||
supportsInternal(classArgument, false));
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -208,11 +208,10 @@ public abstract class AbstractMultiCheckedElementTag extends AbstractCheckedElem
|
|||
throw new IllegalArgumentException("Attribute 'items' is required and must be a Collection, an Array or a Map");
|
||||
}
|
||||
|
||||
if (itemsObject.getClass().isArray()) {
|
||||
Object[] itemsArray = (Object[]) itemsObject;
|
||||
for (int i = 0; i < itemsArray.length; i++) {
|
||||
Object item = itemsArray[i];
|
||||
writeObjectEntry(tagWriter, valueProperty, labelProperty, item, i);
|
||||
if (itemsObject instanceof Object[] itemsArray) {
|
||||
for (int itemIndex = 0; itemIndex < itemsArray.length; itemIndex++) {
|
||||
Object item = itemsArray[itemIndex];
|
||||
writeObjectEntry(tagWriter, valueProperty, labelProperty, item, itemIndex);
|
||||
}
|
||||
}
|
||||
else if (itemsObject instanceof Collection<?> optionCollection) {
|
||||
|
|
Loading…
Reference in New Issue