當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java java.lang.reflect.Parameter用法及代碼示例


java.lang.reflect.Parameter 類提供有關方法參數的信息,包括它們的名稱和修飾符。它還提供了獲取參數屬性的另一種方法。

Parameter 類的一些有用方法是:

  1. public int getModifiers():它返回此 Parameter 對象表示的參數的修飾符標誌。
  2. public String getName():返回方法參數的名稱。
  3. public Type getParameterizedType():返回參數的類型。

下麵列出了java.lang.reflect.Parameter類的所有方法:

方法 說明
equals(Object obj) 基於可執行文件和索引進行比較。
Field getAnnotatedType() 返回一個AnnotatedType對象,該對象表示使用類型來指定此Parameter表示的形參的類型。
getAnnotation(Class<T> 注釋類) 如果存在指定類型的該元素的注釋,則返回該元素的注釋,否則返回 null。
Class getAnnotations() 返回此元素上存在的注釋。
getAnnotationsByType(Class<T> 注釋類) 返回與該元素關聯的注釋。
getDeclaredAnnotations() 返回直接出現在該元素上的注釋。
getDeclaredAnnotation(Class<T> 注釋類) 如果直接存在這樣的注釋,則返回指定類型的該元素的注釋,否則返回 null。
getDeclaringExecutable() 返回聲明此參數的可執行文件。
getDeclaredAnnotationsByType(Class<T> 注釋類) 如果指定類型的注釋直接存在或間接存在,則返回此元素的注釋。
getModifiers() 獲取由此 Parameter 對象表示的該參數的修飾符標誌。
File getName() 返回參數的名稱。
getParameterizedType() 返回一個 Type 對象,該對象標識由此 Parameter 對象表示的參數的參數化類型。
Field getType() 返回一個 Class 對象,該對象標識此 Parameter 對象表示的參數的聲明類型。
hashCode() 根據可執行文件的哈希碼和索引返回哈希碼。
isImplicit () 如果參數在源代碼中隱式聲明,則返回 true,否則返回 false
isNamePresent () 如果參數具有與類文件一致的名稱,則返回 true
isVarArgs () 如果此參數表示變量參數列表,則返回 true。
isSynthetic() 如果參數未隱式或顯式聲明則返回 true,否則返回 false
toString () 返回說明該參數的字符串

例子:

Java


// Java program to illustrate Parameter class of
// java.lang.reflect package
// Importing  java.lang.reflect package to
// obtain reflective information about classes and objects
import java.lang.reflect.*;
// Class 1
// Helper class
class Calculate {
    // Function 1
    // To add to numbers
    int add(int a, int b)
    {
        // Returning the sum
        return (a + b);
    }
    // Function 2
    // To multiply two numbers
    int mul(int a, int b)
    {
        // Returning the number obtained
        // after multiplying numbers
        return (b * a);
    }
    // Function 3
    // Subtracting two numbers
    long subtract(long a, long b)
    {
        // Return the numbers after subtracting
        // second number from the first number
        return (a - b);
    }
}
// Class 2
// Main class
public class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Creating object of helper class
        // in the main method
        Class cls = Calculate.class;
        // Getting all the methods of
        // a particular class
        Method[] methods = cls.getDeclaredMethods();
        // Iterating over each method
        // using the for each loop
        for (Method method : methods) {
            // Print and display the method name
            // using getName() method
            System.out.print(
                "Method Name: " + method.getName() + " ");
            // Getting all the parameters of
            // a particular method
            Parameter parameters[] = method.getParameters();
            // Print and display
            System.out.println("\nparameters of "
                               + method.getName()
                               + "() methods: ");
            // Iterating over parameters
            // using for each loop
            for (Parameter parameter : parameters) {
                // Display the type of parameters
                System.out.print(
                    parameter.getParameterizedType() + " ");
                // Print the parameters of method
                System.out.print(parameter.getName() + " ");
            }
            // New line
            System.out.print("\n\n");
        }
    }
}
輸出
Method Name: subtract 
parameters of subtract() methods: 
long arg0 long arg1 

Method Name: add 
parameters of add() methods: 
int arg0 int arg1 

Method Name: mul 
parameters of mul() methods: 
int arg0 int arg1 


相關用法


注:本文由純淨天空篩選整理自kapilnama1998大神的英文原創作品 java.lang.reflect.Parameter Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。