當前位置:首頁 » 編程語言 » 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;
}
}

熱點內容
二級c語言技巧 發布:2025-01-13 07:54:37 瀏覽:2
自動充值腳本 發布:2025-01-13 07:48:02 瀏覽:19
越容易壓縮 發布:2025-01-13 07:37:37 瀏覽:558
ecstore資料庫 發布:2025-01-13 07:29:43 瀏覽:297
手機設置密碼忘記了怎麼解開 發布:2025-01-13 07:28:29 瀏覽:21
存儲卡交流 發布:2025-01-13 07:16:06 瀏覽:984
php字元串浮點數 發布:2025-01-13 07:15:28 瀏覽:999
python排序cmp 發布:2025-01-13 07:09:04 瀏覽:73
雲腳本精靈 發布:2025-01-13 07:03:27 瀏覽:619
高維訪問 發布:2025-01-13 07:03:23 瀏覽:976