方法类 | 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–