List of usage examples for org.apache.commons.lang3 ClassUtils primitiveToWrapper
public static Class<?> primitiveToWrapper(final Class<?> cls)
Converts the specified primitive Class object to its corresponding wrapper Class object.
NOTE: From v2.2, this method handles Void.TYPE , returning Void.TYPE .
From source file:com.datatorrent.lib.projection.ProjectionOperator.java
/** * addRemainderField: Add field details (name, type, getter and setter) for field with given name * in remainderFields list//from ww w.ja v a 2 s . c om */ protected void addRemainderField(String s) { try { Field f = inClazz.getDeclaredField(s); TypeInfo t = new TypeInfo(f.getName(), ClassUtils.primitiveToWrapper(f.getType())); t.getter = PojoUtils.createGetter(inClazz, t.name, t.type); t.setter = PojoUtils.createSetter(remainderClazz, t.name, t.type); remainderFields.add(t); } catch (NoSuchFieldException e) { throw new RuntimeException("Field " + s + " not found in class " + inClazz, e); } }
From source file:com.datatorrent.contrib.enrich.POJOEnricher.java
@SuppressWarnings({ "unchecked", "rawtypes" }) private PojoUtils.Setter generateSettersForField(Class<?> klass, String outputFieldName) throws NoSuchFieldException, SecurityException { Field f = klass.getDeclaredField(outputFieldName); Class c = ClassUtils.primitiveToWrapper(f.getType()); return PojoUtils.createSetter(klass, outputFieldName, c); }
From source file:jp.furplag.util.commons.NumberUtilsTest.java
/** * {@link jp.furplag.util.commons.NumberUtils#add(java.lang.Object, java.lang.Number, java.lang.Class)}. *//*w w w . j a v a2 s . com*/ @SuppressWarnings("unchecked") @Test public void testAddObjectNumberClassOfT() { assertEquals("null", null, add(null, null, null)); assertEquals("null", null, add("123.456", null, null)); assertEquals("null", null, add("123.456", 1, null)); assertEquals("null", null, add("", 10, null)); assertEquals("null", null, add(null, 10, null)); assertEquals("null", null, add(123.456, 10, null)); assertEquals("123 + .456: Float", (Object) 123.456f, add(123, .456, Float.class)); assertEquals("123 + .456: Float", (Object) Float.class, add(123, .456, Float.class).getClass()); assertEquals("123 + .456: Float", (Object) Float.class, add(123L, .456d, Float.class).getClass()); for (Class<?> type : NUMBERS) { try { Object expected = null; Class<? extends Number> typeOfN = (Class<? extends Number>) type; Class<? extends Number> wrapper = (Class<? extends Number>) ClassUtils.primitiveToWrapper(type); assertEquals("null: default: " + type.getSimpleName(), valueOf(null, typeOfN), add(null, null, typeOfN)); assertEquals("123.456: " + type.getSimpleName(), valueOf(123 + .456, typeOfN), add("123", .456, typeOfN)); assertEquals("NaN + 123: " + type.getSimpleName(), valueOf(123, typeOfN), add("NaN", 123, typeOfN)); assertEquals("123 + NaN: " + type.getSimpleName(), valueOf("123", typeOfN), add("123", Float.NaN, typeOfN)); assertEquals("invalid + 123: " + type.getSimpleName(), valueOf(123, typeOfN), add("not a number", 123, typeOfN)); if (Double.class.equals(wrapper)) { expected = (wrapper.getField("MAX_VALUE").getDouble(null) * -1) + 123; } else if (Float.class.equals(wrapper)) { expected = Float.NEGATIVE_INFINITY; } else if (ClassUtils.isPrimitiveWrapper(wrapper)) { expected = valueOf("-Infinity", typeOfN); } else { expected = INFINITY_DOUBLE.negate().add(BigDecimal.valueOf(123)); if (BigInteger.class.equals(type)) expected = ((BigDecimal) expected).toBigInteger(); } assertEquals("-Infinity: Double: + 123: " + type.getSimpleName(), expected, add("-Infinity", 123, typeOfN)); if (ObjectUtils.isAny(wrapper, Double.class, Float.class)) { expected = wrapper.getField("POSITIVE_INFINITY").get(null); } else if (ClassUtils.isPrimitiveWrapper(wrapper)) { expected = valueOf("Infinity", typeOfN); } else { expected = INFINITY_DOUBLE.add(BigDecimal.valueOf(123)); if (BigInteger.class.equals(type)) expected = ((BigDecimal) expected).toBigInteger(); } assertEquals("Infinity: Double: + 123: " + type.getSimpleName(), expected, add("Infinity", 123, typeOfN)); if (Double.class.equals(wrapper)) { expected = (wrapper.getField("MAX_VALUE").getDouble(null) * -1) + 123; } else if (Float.class.equals(wrapper)) { expected = Float.NEGATIVE_INFINITY; } else if (ClassUtils.isPrimitiveWrapper(wrapper)) { expected = valueOf("-Infinity", typeOfN); } else { expected = INFINITY_DOUBLE.negate().add(BigDecimal.valueOf(123)); if (BigInteger.class.equals(type)) expected = ((BigDecimal) expected).toBigInteger(); } assertEquals("123 - Infinity: Double: " + type.getSimpleName(), expected, add("123", Double.NEGATIVE_INFINITY, typeOfN)); if (ObjectUtils.isAny(wrapper, Double.class, Float.class)) { expected = wrapper.getField("POSITIVE_INFINITY").get(null); } else if (ClassUtils.isPrimitiveWrapper(wrapper)) { expected = valueOf("Infinity", typeOfN); } else { expected = INFINITY_DOUBLE.add(BigDecimal.valueOf(123)); if (BigInteger.class.equals(type)) expected = ((BigDecimal) expected).toBigInteger(); } assertEquals("123 + Infinity: Double: " + type.getSimpleName(), expected, add("123", Double.POSITIVE_INFINITY, typeOfN)); } catch (Exception e) { e.printStackTrace(); fail(e.getMessage() + "\n" + Arrays.toString(e.getStackTrace())); } } }
From source file:com.github.erchu.beancp.MapperImpl.java
@SuppressWarnings({ "TooBroadCatch", "UseSpecificCatch" }) private <D> D constructObjectUsingDefaultConstructor(final Class<D> destinationClass) throws MappingException { try {//from w w w.j av a 2s .c om if (destinationClass.isPrimitive()) { return (D) ClassUtils.primitiveToWrapper(destinationClass); } else { return (D) destinationClass.newInstance(); } } catch (Exception ex) { throw new MappingException("Cannot create destination instance.", ex); } }
From source file:com.datatorrent.contrib.enrich.POJOEnricher.java
@SuppressWarnings({ "unchecked", "rawtypes" }) private PojoUtils.Getter generateGettersForField(Class<?> klass, String inputFieldName) throws NoSuchFieldException, SecurityException { Field f = klass.getDeclaredField(inputFieldName); Class c = ClassUtils.primitiveToWrapper(f.getType()); return PojoUtils.createGetter(klass, inputFieldName, c); }
From source file:com.qpark.maven.plugin.flowmapper.TabularMappingTypeGenerator.java
@Override String generateImplContent() {/*from www . ja va2s .co m*/ this.log.debug("+generateImpl"); final List<String> defaultDefinitionNames = this.getDefaultDefinitionNames(); final ComplexTypeChild inputValueReturnValue = this.getInputValueReturnChild(); final String inputValueName = this.getInputValueName(); final List<ComplexTypeChild> children = this.getChildren(); if (children.size() == 0) { this.log.warn( this.complexType.getType().getName() + " as ComplexMapper does not have children to access"); } Class<?> inputValueClass = String.class; if (inputValueReturnValue != null) { inputValueClass = XsdsUtil .getBuildInJavaClass(inputValueReturnValue.getComplexType().getType().getName()); if (inputValueClass == null) { inputValueClass = String.class; } } final boolean inputValueIsPrimitive = inputValueClass.isPrimitive(); if (inputValueIsPrimitive) { inputValueClass = ClassUtils.primitiveToWrapper(inputValueClass); } String inputValueClassName = inputValueClass.getName(); if (inputValueClassName.startsWith("java.lang.")) { inputValueClassName = inputValueClassName.substring("java.lang.".length()); } final ComplexTypeChild returnValueChild = this.getReturnChild(); Class<?> returnValueClass = XsdsUtil .getBuildInJavaClass(returnValueChild.getComplexType().getType().getName()); if (returnValueClass == null) { returnValueClass = String.class; } final boolean returnValueIsPrimitive = returnValueClass.isPrimitive(); if (returnValueIsPrimitive) { returnValueClass = ClassUtils.primitiveToWrapper(returnValueClass); } String returnValueClassName = returnValueClass.getName(); if (returnValueClassName.startsWith("java.lang.")) { returnValueClassName = returnValueClassName.substring("java.lang.".length()); } ComplexTypeChild ctc; final Set<String> importedClasses = this.complexType.getJavaImportClasses(); final String[] propertyNames = getDirectAccessProperties( this.complexType.getType().getName().getLocalPart()); if (propertyNames.length > 0 && children.size() > 0) { ctc = children.get(0); for (final String propertyName : propertyNames) { ctc = ctc.getComplexType().getChild(propertyName); if (ctc != null) { importedClasses.addAll(ctc.getComplexType().getJavaImportClasses()); } else { break; } } } for (final ComplexTypeChild child : children) { importedClasses.addAll(child.getComplexType().getJavaImportClasses()); } final List<Entry<ComplexTypeChild, List<ComplexTypeChild>>> childrenTree = new ArrayList<Entry<ComplexTypeChild, List<ComplexTypeChild>>>(); importedClasses.addAll(this.getImplImports(childrenTree)); importedClasses.add(new StringBuffer(this.basicFlowPackageName).append(".FlowContext").toString()); final StringBuffer sb = new StringBuffer(1024); sb.append("package "); sb.append(this.packageNameImpl); sb.append(";\n"); sb.append("\n"); importedClasses.add(String.format("%s.%s", this.packageName, this.interfaceName)); importedClasses.add("java.util.HashMap"); importedClasses.add("java.util.Map"); importedClasses.add("java.util.Objects"); for (final String importedClass : importedClasses) { sb.append("import ").append(importedClass).append(";\n"); } sb.append("\n"); sb.append("/**\n"); sb.append(" * The {@link "); sb.append(this.interfaceName); sb.append("} implementation.\n"); if (this.complexType.getAnnotationDocumentation() != null) { sb.append(" * <p/>\n"); sb.append(toJavadocHeader(this.complexType.getAnnotationDocumentation())); } sb.append(" * <p/>\n"); sb.append(" * This is a ").append(this.getMappingType()).append(".\n"); sb.append(Util.getGeneratedAtJavaDocClassHeader(this.getClass(), this.eipVersion)); sb.append(" */\n"); sb.append("@Component\n"); sb.append("public class "); sb.append(this.implName); sb.append(" implements "); sb.append(this.interfaceName); sb.append(" {\n"); sb.append("\t/** The {@link ObjectFactory}. */\n"); sb.append("\tprivate final ObjectFactory of = new ObjectFactory();\n"); sb.append("\t/** The {@link Map} to support tabular mappings. */\n"); sb.append("\tprivate final Map<"); sb.append(inputValueClassName); sb.append(", "); sb.append(returnValueClassName); sb.append("> tabularValueMap = new HashMap<"); sb.append(inputValueClassName); sb.append(", "); sb.append(returnValueClassName); sb.append(">();\n"); sb.append("\n"); sb.append(this.getConstructor(defaultDefinitionNames, inputValueClass, returnValueClass)); sb.append("\n"); sb.append("\t/**\n"); sb.append("\t * Creates the {@link "); sb.append(this.complexType.getClassNameFullQualified()); sb.append("} defined as \n"); sb.append("\t * <i>"); sb.append(this.complexType.getType().getName().getLocalPart()); sb.append("</i> in name space\n"); sb.append("\t * <i>"); sb.append(this.complexType.getType().getName().getNamespaceURI()); sb.append("</i>.\n"); sb.append("\t * This name space is stored in file "); sb.append(this.config.getXsdContainer(this.complexType.getTargetNamespace()).getRelativeName()); sb.append(".\n"); sb.append(this.getSeeInterfaceJavaDoc(children)); sb.append("\t */\n"); sb.append("\tpublic "); sb.append(this.complexType.getClassNameFullQualified()); sb.append(" "); sb.append(this.getMethodName()); final String methodArgs = this.getMethodArgs(children); sb.append("("); sb.append(methodArgs); if (methodArgs.trim().length() > 0) { sb.append(", "); } sb.append("FlowContext flowContext"); sb.append(") {\n"); sb.append("\t\t"); sb.append(this.complexType.getClassNameFullQualified()); sb.append(" mappingType = of.create"); sb.append(this.complexType.getClassName()); sb.append("();\n"); sb.append(this.getSetterStatements("mappingType", children)); sb.append("\n"); sb.append("\t\t"); sb.append(returnValueClassName); sb.append(" mappedValue = this.tabularValueMap.get("); sb.append(inputValueName); if (inputValueClass.equals(Boolean.class) || inputValueClass.equals(boolean.class)) { sb.append(".isReturn());\n"); } else { sb.append(".getReturn());\n"); } if (inputValueClass.equals(String.class)) { sb.append("\t\tif (Objects.isNull(mappedValue) && "); sb.append(inputValueName); sb.append(".getReturn() != null) {\n"); sb.append("\t\t\tfor (String key : this.tabularValueMap.keySet()) {\n"); sb.append("\t\t\t\tif ("); sb.append(inputValueName); sb.append(".getReturn().matches(key)) {\n"); sb.append("\t\t\t\t\tmappedValue = this.tabularValueMap.get(key);\n"); sb.append("\t\t\t\t}\n"); sb.append("\t\t\t}\n"); sb.append("\t\t}\n"); } sb.append("\n"); if (defaultDefinitionNames.contains("DEFAULT_DEFAULT")) { sb.append("\t\tif (Objects.isNull(mappedValue)){\n"); sb.append("\t\t\tmappedValue = "); sb.append(getValueInstance(returnValueClass, "DEFAULT_DEFAULT")); sb.append(";\n"); sb.append("\t\t}\n"); sb.append("\n"); } else if (defaultDefinitionNames.contains("DEFAULT_RETURN")) { sb.append("\t\tif (Objects.isNull(mappedValue)){\n"); sb.append("\t\t\tmappedValue = "); sb.append(getValueInstance(returnValueClass, "DEFAULT_RETURN")); sb.append(";\n"); sb.append("\t\t}\n"); sb.append("\n"); } if (returnValueIsPrimitive) { sb.append("\t\tif (Objects.nonNull(mappedValue)) {\n"); sb.append("\t\t\tmappingType.setValue(mappedValue);\n"); sb.append("\t\t\tmappingType.setReturn(mappedValue);\n"); sb.append("\t\t}\n"); } else { sb.append("\t\tmappingType.setValue(mappedValue);\n"); sb.append("\t\tmappingType.setReturn(mappedValue);\n"); } sb.append("\t\treturn mappingType;\n"); sb.append("\t}\n"); sb.append("}\n"); this.log.debug("-generateImpl"); return sb.toString(); }
From source file:hu.bme.mit.sette.tools.spf.SpfParser.java
@Override protected void parseSnippet(Snippet snippet, SnippetInputsXml inputsXml) throws Exception { File outputFile = RunnerProjectUtils.getSnippetOutputFile(getRunnerProjectSettings(), snippet); File errorFile = RunnerProjectUtils.getSnippetErrorFile(getRunnerProjectSettings(), snippet); if (errorFile.exists()) { // TODO make this section simple and clear List<String> lines = FileUtils.readLines(errorFile); String firstLine = lines.get(0); if (firstLine.startsWith("java.lang.RuntimeException: ## Error: Operation not supported!")) { inputsXml.setResultType(ResultType.NA); } else if (firstLine.startsWith("java.lang.NullPointerException")) { inputsXml.setResultType(ResultType.EX); } else if (firstLine .startsWith("java.lang.RuntimeException: ## Error: symbolic log10 not implemented")) { inputsXml.setResultType(ResultType.NA); } else if (firstLine.startsWith("***********Warning: everything false")) { // TODO enhance // now skip } else if (snippet.getMethod().toString().contains("_Constants") || snippet.getMethod().toString().contains(".always()")) { // TODO JPF/SPF compilation differences between javac and ecj: // https://groups.google.com/forum/#!topic/java-pathfinder/jhOkvLx-SKE // now just accept } else {/*from w ww . j a v a 2 s . c o m*/ // TODO error handling // this is debug (only if unhandled error) System.err.println("============================="); System.err.println(snippet.getMethod()); System.err.println("============================="); for (String line : lines) { System.err.println(line); } System.err.println("============================="); // TODO error handling throw new RuntimeException("PARSER PROBLEM, UNHANDLED ERROR"); } } if (inputsXml.getResultType() == null) { // TODO enhance inputsXml.setResultType(ResultType.S); if (snippet.getMethod().toString().contains("_Constants") || snippet.getMethod().toString().contains(".always()")) { // TODO JPF/SPF compilation differences between javac and ecj: // https://groups.google.com/forum/#!topic/java-pathfinder/jhOkvLx-SKE // now just accept // no inputs for constant tests, just call them once inputsXml.getGeneratedInputs().add(new InputElement()); } else { LineIterator lines = FileUtils.lineIterator(outputFile); // find input lines List<String> inputLines = new ArrayList<>(); boolean shouldCollect = false; while (lines.hasNext()) { String line = lines.next(); if (line.trim() .equals("====================================================== Method Summaries")) { shouldCollect = true; } else if (shouldCollect) { if (line.startsWith("======================================================")) { // start of next section shouldCollect = false; break; } else { if (!StringUtils.isBlank(line)) { inputLines.add(line.trim()); } } } } // close iterator lines.close(); // remove duplicates inputLines = new ArrayList<>(new LinkedHashSet<>(inputLines)); System.out.println(snippet.getMethod()); String firstLine = inputLines.get(0); assert (firstLine.startsWith("Inputs: ")); firstLine = firstLine.substring(7).trim(); String[] parameterStrings = StringUtils.split(firstLine, ','); ParameterType[] parameterTypes = new ParameterType[parameterStrings.length]; if (inputLines.size() == 2 && inputLines.get(1).startsWith("No path conditions for")) { InputElement input = new InputElement(); for (int i = 0; i < parameterStrings.length; i++) { // no path conditions, only considering the "default" // inputs Class<?> type = snippet.getMethod().getParameterTypes()[i]; parameterTypes[i] = getParameterType(type); input.getParameters() .add(new ParameterElement(parameterTypes[i], getDefaultParameterString(type))); } inputsXml.getGeneratedInputs().add(input); } else { // parse parameter types Class<?>[] paramsJavaClass = snippet.getMethod().getParameterTypes(); for (int i = 0; i < parameterStrings.length; i++) { String parameterString = parameterStrings[i]; Class<?> pjc = ClassUtils.primitiveToWrapper(paramsJavaClass[i]); if (parameterString.endsWith("SYMINT")) { if (pjc == Boolean.class) { parameterTypes[i] = ParameterType.BOOLEAN; } else if (pjc == Byte.class) { parameterTypes[i] = ParameterType.BYTE; } else if (pjc == Short.class) { parameterTypes[i] = ParameterType.SHORT; } else if (pjc == Integer.class) { parameterTypes[i] = ParameterType.INT; } else if (pjc == Long.class) { parameterTypes[i] = ParameterType.LONG; } else { // int for something else parameterTypes[i] = ParameterType.INT; } } else if (parameterString.endsWith("SYMREAL")) { if (pjc == Float.class) { parameterTypes[i] = ParameterType.FLOAT; } else if (pjc == Float.class) { parameterTypes[i] = ParameterType.DOUBLE; } else { // int for something else parameterTypes[i] = ParameterType.DOUBLE; } } else if (parameterString.endsWith("SYMSTRING")) { parameterTypes[i] = ParameterType.EXPRESSION; } else { // TODO error handling // int for something else System.err.println(parameterString); throw new RuntimeException("PARSER PROBLEM"); } } // example // inheritsAPIGuessTwoPrimitives(11,-2147483648(don't care)) // --> // "java.lang.IllegalArgumentException..." // inheritsAPIGuessTwoPrimitives(9,11) --> // "java.lang.IllegalArgumentException..." // inheritsAPIGuessTwoPrimitives(7,9) --> // "java.lang.RuntimeException: Out of range..." // inheritsAPIGuessTwoPrimitives(4,1) --> Return Value: 1 // inheritsAPIGuessTwoPrimitives(0,0) --> Return Value: 0 // inheritsAPIGuessTwoPrimitives(9,-88) --> // "java.lang.IllegalArgumentException..." // inheritsAPIGuessTwoPrimitives(-88,-2147483648(don't // care)) // --> "java.lang.IllegalArgumentException..." String ps = String.format("^%s\\((.*)\\)\\s+-->\\s+(.*)$", snippet.getMethod().getName()); // ps = String.format("^%s(.*)\\s+-->\\s+(.*)$", // snippet.getMethod() // .getName()); ps = String.format("^(%s\\.)?%s(.*)\\s+-->\\s+(.*)$", snippet.getContainer().getJavaClass().getName(), snippet.getMethod().getName()); Pattern p = Pattern.compile(ps); // parse inputs int i = -1; for (String line : inputLines) { i++; if (i == 0) { // first line continue; } else if (StringUtils.isEmpty(line)) { continue; } Matcher m = p.matcher(line); if (m.matches()) { String paramsString = StringUtils.substring(m.group(2).trim(), 1, -1); String resultString = m.group(3).trim(); paramsString = StringUtils.replace(paramsString, "(don't care)", ""); String[] paramsStrings = StringUtils.split(paramsString, ','); InputElement input = new InputElement(); // if index error -> lesser inputs than parameters for (int j = 0; j < parameterTypes.length; j++) { if (parameterTypes[j] == ParameterType.BOOLEAN && paramsStrings[j].contains("-2147483648")) { // don't care -> 0 paramsStrings[j] = "false"; } ParameterElement pe = new ParameterElement(parameterTypes[j], paramsStrings[j].trim()); try { // just check the type format pe.validate(); } catch (Exception e) { // TODO error handling System.out.println(parameterTypes[j]); System.out.println(paramsStrings[j]); System.out.println(pe.getType()); System.out.println(pe.getValue()); e.printStackTrace(); System.err.println("============================="); System.err.println(snippet.getMethod()); System.err.println("============================="); for (String lll : inputLines) { System.err.println(lll); } System.err.println("============================="); System.exit(-1); } input.getParameters().add(pe); } if (resultString.startsWith("Return Value:")) { // has retval, nothing to do } else { // exception; example (" is present inside the // string!!!): // "java.lang.ArithmeticException: div by 0..." // "java.lang.IndexOutOfBoundsException: Index: 1, Size: 5..." int pos = resultString.indexOf(':'); if (pos < 0) { // not found :, search for ... pos = resultString.indexOf("..."); } String ex = resultString.substring(1, pos); input.setExpected(ex); // System.err.println(resultString); // System.err.println(ex); // // input.setExpected(expected); } inputsXml.getGeneratedInputs().add(input); } else { System.err.println("NO MATCH"); System.err.println(ps); System.err.println(line); throw new Exception("NO MATCH: " + line); } } } } inputsXml.validate(); } }
From source file:com.datatorrent.contrib.avro.AvroToPojo.java
/** * Use reflection to generate field info values if the user has not provided * the inputs mapping/*from www . j ava 2 s .co m*/ * * @return String representing the POJO field to Avro field mapping */ private String generateFieldInfoInputs(Class<?> cls) { java.lang.reflect.Field[] fields = cls.getDeclaredFields(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < fields.length; i++) { java.lang.reflect.Field f = fields[i]; Class<?> c = ClassUtils.primitiveToWrapper(f.getType()); sb.append(f.getName()).append(FIELD_SEPARATOR).append(f.getName()).append(FIELD_SEPARATOR) .append(c.getSimpleName().toUpperCase()).append(RECORD_SEPARATOR); } return sb.substring(0, sb.length() - 1); }
From source file:hu.bme.mit.sette.tools.catg.CatgGenerator.java
private static String getTypeString(Class<?> javaClass) { if (javaClass.isPrimitive()) { javaClass = ClassUtils.primitiveToWrapper(javaClass); }/*w ww .jav a 2s.c o m*/ if (javaClass.equals(Byte.class)) { return "byte"; } else if (javaClass.equals(Short.class)) { return "short"; } else if (javaClass.equals(Integer.class)) { return "int"; } else if (javaClass.equals(Long.class)) { return "long"; } else if (javaClass.equals(Boolean.class)) { return "boolean"; } else if (javaClass.equals(Character.class)) { return "char"; } else if (javaClass.equals(String.class)) { return "String"; } else { return null; } }
From source file:com.wrmsr.search.dsl.util.DerivedSuppliers.java
private static java.lang.reflect.Type boxType(java.lang.reflect.Type type) { if (type instanceof Class) { Class<?> clazz = (Class<?>) type; if (clazz.isPrimitive()) { return requireNonNull(ClassUtils.primitiveToWrapper(clazz)); }//from w w w . j av a 2s.c o m } return type; }