方法类 | Java中的 isVarArgs() 方法
Method 类的Java.lang.reflect.Method.isVarArgs()方法检查 Method Object 是否被声明为采用可变数量的参数。如果该方法可以采用可变数量的参数,则返回 true,否则返回 false。
VarArgs(可变长度参数) :
VarArgs 允许方法接受多个参数。当不知道要在方法中传递多少个参数时,传递参数比数组更好。
句法:
public boolean isVarArgs()
返回值:当且仅当 Method 具有可变长度参数时,此方法返回 true,否则返回 false。
下面的程序说明了 Method 类的 isVarArgs() 方法:
示例 1:下面的程序检查 GFG 类方法是否 Method 具有可变长度参数。在这个程序中,一个方法接受 VarArgs 并通过 isVarArgs() 检查方法是否接受 VarArgs,最后打印结果。
// Program Demonstrate isVarArgs() method
// of Method Class.
import java.lang.reflect.Method;
public class GFG {
// create another method
public static void paint(Object... values)
{
String message = "A Computer Science portal for geeks";
}
// create main method
public static void main(String args[])
{
try {
// get list of declared method objects of class GFG
Method[] methods = GFG.class.getMethods();
// loop through method list
for (Method method : methods) {
// check method conts VarArgs or not
boolean isVarArgs = method.isVarArgs();
// print result if VarArgs are present
if (isVarArgs)
System.out.println(method + " method accepts VarArgs :"
+ isVarArgs);
}
}
catch (Exception e) {
// Print Exception if any Exception occurs
e.printStackTrace();
}
}
}
输出:
public static void GFG.paint(java.lang.Object[]) method accepts VarArgs :true
示例 2:该程序将返回包含类Java.util.Collections 的可变长度参数的所有方法。
说明:在这个方法中,首先创建了Java.util.Collections 类对象。创建Java.util.Collections Class 的 Class Object 后,通过调用 Object 类的 getMethods() 创建方法对象列表。使用 isVarArgs() 遍历方法列表并获取包含可变长度参数的方法。最后打印合成方法名称。
// Program Demonstrate isVarArgs() method
// of Method Class.
import java.lang.reflect.Method;
import java.util.Collections;
public class GFG {
// create main method
public static void main(String args[])
{
try {
// create class object for class Collections
Class c = Collections.class;
// get list of Method object
Method[] methods = c.getMethods();
System.out.println("Methods of Collections Class"
+ " contains VarArgs");
// Loop through Methods list
for (Method m : methods) {
// check whether the method contains VarArgs or not
if (m.isVarArgs())
// Print Method name
System.out.println("Method: " + m.getName());
}
}
catch (Exception e) {
// print Exception is any Exception occurs
e.printStackTrace();
}
}
}
输出:
Methods of Collections Class contains VarArgs
Method: addAll
参考:
- https://docs.oracle.com/javase/8/docs/api/java Java arArgs–
- https://www.geeksforgeeks.org/variable-arguments-varargs-in-java/