Java tutorial
/** * Copyright 2007-2010 ? * All rights reserved. * * This library is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License v3 as published by the Free Software * Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along * with this library; if not, see http://www.gnu.org/licenses/lgpl.html. * */ package org.firesoa.common.util; import java.lang.annotation.Annotation; import java.lang.reflect.Method; import javax.jws.WebParam; import org.apache.commons.lang.StringUtils; /** * * @author ? nychen2000@163.com * Fire Workflow www.firesoa.com www.fireflow.org * */ public class JSR181ParameterNameDiscover implements ParameterNameDiscoverer { /* (non-Javadoc) * @see org.firesoa.common.util.ParameterNameDiscoverer#getParameterNames(java.lang.reflect.Method) */ public String[] getParameterNames(Method method) { Annotation[][] annotations = method.getParameterAnnotations(); int paramNum = annotations.length; String[] paramNames = new String[paramNum]; if (paramNum == 0) return paramNames; for (int i = 0; i < paramNum; i++) { Annotation[] annotationArr = annotations[i]; if (annotationArr.length == 0) { //WebParam ????WebParam?WebParam??? paramNames[i] = null; continue; } javax.jws.WebParam obj = (javax.jws.WebParam) this.findWebParam(annotationArr); if (obj == null) { paramNames[i] = null; continue; } String name = obj.name(); if (StringUtils.isEmpty(name)) { paramNames[i] = null; continue; } paramNames[i] = name; } return paramNames; } private Annotation findWebParam(Annotation[] annotationArr) { for (Annotation annotation : annotationArr) { if (annotation.annotationType().equals(WebParam.class)) { return annotation; } } return null; } }