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

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

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