📜  方法类 | Java中的 getParameterCount() 方法

📅  最后修改于: 2022-05-13 01:55:40.859000             🧑  作者: Mango

方法类 | Java中的 getParameterCount() 方法

Method 类的Java.lang.reflect.Method.getParameterCount()方法返回在方法 Object 上声明的参数数量。

句法:

public int getParameterCount()

返回值:此方法返回在此方法对象上定义的形式参数的数量。

下面的程序说明了 Method 类的 getParameterCount() 方法:

示例 1:下面的程序返回作为输入给出的特定方法的参数编号。

// Program Demonstrate how to apply getParameterCount()
// method of Method Class.
  
import java.lang.reflect.Method;
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
  
        try {
            // create class object
            Class classobj = GFG.class;
  
            // get list of methods
            Method[] methods = classobj.getMethods();
  
            // get no of parameters for method setManyValues
            int noOfParameters = methods[0].getParameterCount();
  
            System.out.println("Method Name: "
                               + methods[0].getName());
  
            // print no of parameters
            System.out.println("No of parameters:" + noOfParameters);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
  
    // method name setManyValues
    // No of parameters is one for this method
    public void setManyValues(String parameter1)
    {
        System.out.println("setManyValues");
    }
}
输出:
Method Name: setManyValues
No of parameters:1

示例 2:下面的程序为类中定义的所有方法返回 No of Parameters。

// Program Demonstrate how to apply getParameterCount() method
// of Method Class.
  
import java.lang.reflect.Method;
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
  
        try {
            // create class object
            Class classobj = DemoClass.class;
  
            // get list of methods
            Method[] methods = classobj.getMethods();
  
            // get no of parameters for each
            // method in list of methods
            for (Method method : methods) {
  
                // print name of method
                System.out.print("Method Name is "
                                 + method.getName());
  
                // get no of parameters for each method
                int noOfParameters = method.getParameterCount();
  
                // print no of parameters
                System.out.println(" and No of parameters = "
                                   + noOfParameters);
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}
// Demo class to apply getParameterCount() method
class DemoClass {
  
    // method name DemoMethod1
    // No of parameters is 1 for this method
    public void DemoMethod1(String parameter1)
    {
        System.out.println("DemoMethod1");
    }
  
    // method name DemoMethod2
    // No of parameters is 2 for this method
    public void DemoMethod2(String parameter1,
                            String parameter2)
    {
        System.out.println("DemoMethod2");
    }
  
    // method name DemoMethod2
    // No of parameters is Zero for this method
    public void DemoMethod3()
    {
        System.out.println("DemoMethod3");
    }
}
输出:
Method Name is DemoMethod1 and No of parameters = 1
Method Name is DemoMethod2 and No of parameters = 2
Method Name is DemoMethod3 and No of parameters = 0
Method Name is wait and No of parameters = 2
Method Name is wait and No of parameters = 1
Method Name is wait and No of parameters = 0
Method Name is equals and No of parameters = 1
Method Name is toString and No of parameters = 0
Method Name is hashCode and No of parameters = 0
Method Name is getClass and No of parameters = 0
Method Name is notify and No of parameters = 0
Method Name is notifyAll and No of parameters = 0

说明:该程序的输出还显示方法对象的结果,而不是类对象中定义的方法,如 wait、equals、toString、hashCode、getClass、notify、notifyAll。这些方法由类对象继承自Java.lang lang 包的超类名 Object。

参考: https: Java/lang/reflect/Method.html#getParameterCount–