「java获取方法参数」java获取方法参数名
本篇文章给大家谈谈java获取方法参数,以及java获取方法参数名对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java怎样获取url参数
- 2、Java如何获取方法参数的参数名称
- 3、java如何获取方法参数名
- 4、Java如何获取方法的参数名称
- 5、Java如何获取方法参数中的名称
- 6、java 通过反射怎么获取方法中参数值
java怎样获取url参数
如果是javaweb 项目,那么非常简单,直接调用 HttpServletRequest 对象的 .getParamter("参数名称") 方法即可得到。
如果是普通java 项目:
/**
* 获取网址的指定参数值
*
* @param url
* 网址
* @param parameter
* 参数名称
* @author cevencheng
* @return
*/
public static String getParameter(String url, String parameter, String defaultValue) {
try {
final String charset = "utf-8";
url = URLDecoder.decode(url, charset);
if (url.indexOf('?') != -1) {
final String contents = url.substring(url.indexOf('?') + 1);
HashMapString, String map = new HashMapString, String();
String[] keyValues = contents.split("");
for (int i = 0; i keyValues.length; i++) {
String key = keyValues[i].substring(0, keyValues[i].indexOf("="));
String value = keyValues[i].substring(keyValues[i].indexOf("=") + 1);
if (key.equals(parameter)) {
if (value == null || "".equals(value.trim())) {
return defaultValue;
}
return value;
}
map.put(key, value);
}
}
return null;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Java如何获取方法参数的参数名称
package com.mikan;
import java.lang.annotation.*;
/**
* @author Mikan
* @date 2015-08-04 23:39
*/
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Param {
String value();
}
获取注解中的参数名的工具类:
package com.mikan;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
/**
* @author Mikan
* @date 2015-08-05 00:26
*/
public class ParameterNameUtils {
/**
* 获取指定方法的参数名
*
* @param method 要获取参数名的方法
* @return 按参数顺序排列的参数名列表
*/
public static String[] getMethodParameterNamesByAnnotation(Method method) {
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
if (parameterAnnotations == null || parameterAnnotations.length == 0) {
return null;
}
String[] parameterNames = new String[parameterAnnotations.length];
int i = 0;
for (Annotation[] parameterAnnotation : parameterAnnotations) {
for (Annotation annotation : parameterAnnotation) {
if (annotation instanceof Param) {
Param param = (Param) annotation;
parameterNames[i++] = param.value();
}
}
}
return parameterNames;
}
}
测试类:
package com.mikan;
import java.lang.reflect.Method;
import java.util.Arrays;
/**
* @author Mikan
* @date 2015-08-04 23:40
*/
public class ParameterNameTest {
public void method1(@Param("parameter1") String param1, @Param("parameter2") String param2) {
System.out.println(param1 + param2);
}
public static void main(String[] args) throws Exception {
ClassParameterNameTest clazz = ParameterNameTest.class;
Method method = clazz.getDeclaredMethod("method1", String.class, String.class);
String[] parameterNames = ParameterNameUtils.getMethodParameterNamesByAnnotation(method);
System.out.println(Arrays.toString(parameterNames));
}
}
java如何获取方法参数名
用反射机制,简单写了一个例子,不懂的可以看一下相关api public class OwerMethodParam {
public static void main(String[] args) {
new OwerMethodParam().test("bb");
}
public void test(String aa) {
Method[] methods = OwerMethodParam.class.getDeclaredMethods(); //取得这个类的所有方法
if (methods != null) {
for (int i = 0; i methods.length; i++) {
Method method = methods[i];
if ("test".equals(method.getName())) { //取得本方法,这个方法是test,所以就用test比较
Class?[] paramsClass = method.getParameterTypes(); //取得参数列表的所有类
if (paramsClass != null) {
for (Class? class1 : paramsClass) {
System.out.println(class1.getName());
}
}
break;
}
}
Java如何获取方法的参数名称
package test;
import java.lang.reflect.Method;
public class TTT {
public static void main(String[] args) {
Class c = Test.class;
Method[] methods =c.getDeclaredMethods();
for (Method method : methods) {
System.out.print("方法的返回值"+method.getReturnType().getName());
System.out.print(" 方法名:"+method.getName()+"(");
Class[] paraTypes = method.getParameterTypes();
for (Class class1 : paraTypes) {
System.out.print("参数类型:"+class1.getSimpleName()+",");
}
System.out.println(")");
}
}
}
class Test
{
public void say(String word)
{
System.out.println(word);
}
public void say(String word,int n)
{
for(int i=0;in;i++){
System.out.println(word);
}
}
}
===============
方法的返回值void 方法名:say(参数类型:String,)
方法的返回值void 方法名:say(参数类型:String,参数类型:int,)
Java如何获取方法参数中的名称
一、从注解中获取
使用注解方式,我们需要自定义一个注解,在注解中指定参数名,然后通过反射机制,获取方法参数上的注解,从而获取到相应的注解信息。这里自定义的注解是Param,通过value参数指定参数名,定义了一个工具类ParameterNameUtils来获取指定方法的参数名列表,这里获取测试类ParameterNameTest中定义的方法method1的参数名列表表,下面是具体的代码。
java 通过反射怎么获取方法中参数值
Class? clazz = object.getClass();
Method[] ms = clazz.getMethods();
for (int i = 0; i ms.length; i++) {
System.out.println("方法名:"+ms[i].getName());
Type[] t = ms[i].getGenericParameterTypes();//获取参数类型,至于你说的获取参数值,我没明白
}
java获取方法参数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取方法参数名、java获取方法参数的信息别忘了在本站进行查找喔。
发布于:2022-12-22,除非注明,否则均为
原创文章,转载请注明出处。