「java获取方法参数」java获取方法参数名

博主:adminadmin 2022-12-22 19:18:09 49

本篇文章给大家谈谈java获取方法参数,以及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获取方法参数的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。