当前位置:首页 » 编程语言 » java取方法参数

java取方法参数

发布时间: 2022-09-08 09:13:57

1. java中怎么从一个方法中调用另一个方法中的参数

  1. 一个方法中的参数是局部变量,只能在本方法内部使用。

  2. 非要在别的方法中使用,可以将你在方法1中输入的整数作为方法1的返回值,在方法2中调用方法1,间接调用输入的整数。

2. java方法参数问题

可以,这称为方法引用。

前提是这个方法的参数应该是一个函数接口。

下面是一个例子:

public class Main {

public static void main(String []args) {

test(Main::sf);

test(new Main()::f);

test(System.out::println);

test((i)->{System.out.println("lambda:"+i);});

}

static void test(i o) {

o.x(666);

}

void f(int i) {

System.out.println("f:"+i);

}

static void sf(int i) {

System.out.println("sf:"+i);

}

}

interface i {

void x(int i);

}

这是运行结果截图:

3. java 怎么在当前方法内部得到当前方法的参数类型列表

java在当前方法内部想得到当前方法参数类型列表,可以通过对该方法所在的类进行反射来得到当前方法的参数列表。对当前对象进行反射可以得到类中所有成员变量和方法的对象数组,对当前方法的名字与方法数组进行比较,得到相同名字的方法(即当前方法),然后通过使用该方法对象的方法来获得参数列表。

4. Java如何获取方法参数的参数名称

  • packagecom.mikan;

  • importjava.lang.annotation.*;

  • /**

  • *@authorMikan

  • *@date2015-08-0423:39

  • */

  • @Target(ElementType.PARAMETER)

  • @Retention(RetentionPolicy.RUNTIME)

  • @Documented

  • public@interfaceParam{

  • Stringvalue();

  • }

    获取注解中的参数名的工具类:

  • packagecom.mikan;

  • importjava.lang.annotation.Annotation;

  • importjava.lang.reflect.Method;

  • /**

  • *@authorMikan

  • *@date2015-08-0500:26

  • */

  • publicclassParameterNameUtils{

  • /**

  • *获取指定方法的参数名

  • *

  • *@parammethod要获取参数名的方法

  • *@return按参数顺序排列的参数名列表

  • */

  • publicstaticString[](Methodmethod){

  • Annotation[][]parameterAnnotations=method.getParameterAnnotations();

  • if(parameterAnnotations==null||parameterAnnotations.length==0){

  • returnnull;

  • }

  • String[]parameterNames=newString[parameterAnnotations.length];

  • inti=0;

  • for(Annotation[]parameterAnnotation:parameterAnnotations){

  • for(Annotationannotation:parameterAnnotation){

  • if(annotationinstanceofParam){

  • Paramparam=(Param)annotation;

  • parameterNames[i++]=param.value();

  • }

  • }

  • }

  • returnparameterNames;

  • }

  • }

测试类:

  • packagecom.mikan;

  • importjava.lang.reflect.Method;

  • importjava.util.Arrays;

  • /**

  • *@authorMikan

  • *@date2015-08-0423:40

  • */

  • publicclassParameterNameTest{

  • publicvoidmethod1(@Param("parameter1")Stringparam1,@Param("parameter2")Stringparam2){

  • System.out.println(param1+param2);

  • }

  • publicstaticvoidmain(String[]args)throwsException{

  • Class<ParameterNameTest>clazz=ParameterNameTest.class;

  • Methodmethod=clazz.getDeclaredMethod("method1",String.class,String.class);

  • String[]parameterNames=ParameterNameUtils.(method);

  • System.out.println(Arrays.toString(parameterNames));

  • }

  • }

5. 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;i<n;i++){

System.out.println(word);
}
}

}
===============

方法的返回值void 方法名:say(参数类型:String,)
方法的返回值void 方法名:say(参数类型:String,参数类型:int,)

6. 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;
}
}

热点内容
创建邮箱地址服务器连接错误 发布:2025-01-13 09:49:24 浏览:723
linux编辑文档 发布:2025-01-13 09:47:51 浏览:435
二手制冷压缩机 发布:2025-01-13 09:43:59 浏览:585
网鱼电脑密码多少 发布:2025-01-13 09:33:46 浏览:464
如何取消子账号密码 发布:2025-01-13 09:22:41 浏览:347
抖音搜索有缓存 发布:2025-01-13 09:17:28 浏览:590
c语言字符数组连接 发布:2025-01-13 08:55:11 浏览:901
国二c语言编程题目 发布:2025-01-13 08:45:41 浏览:285
ipad软件如何加密 发布:2025-01-13 08:28:59 浏览:278
android的文件操作 发布:2025-01-13 08:24:48 浏览:173