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


Java Method類 getDefaultValue()用法及代碼示例


java.lang.reflect.Method類的getDefaultValue()方法。它返回由Method對象表示的注釋成員的默認值。當注釋成員屬於原始類型時,該方法將返回該包裝類型的實例。如果注釋成員不包含任何默認值,或者方法對象沒有注釋類型的成員,則返回null。

用法:

public Object getDefaultValue()

返回值:此方法返回此Method對象表示的注釋成員的默認值。



異常:如果注釋的類型為Class,並且找不到默認類值的定義,則此方法將引發TypeNotPresentException。

以下示例程序旨在說明Method類的getDefaultValue()方法:

範例1:程序下麵的程序包含一個接口名稱演示,該接口名稱演示帶有由接口方法表示的注釋成員的一些默認值。程序的主方法為接口的每個方法創建方法對象,並在方法包含這樣的默認值時打印注釋的默認值注解。

/* 
* Program Demonstrate getDefaultValue() method  
* of Method Class. 
*/
import java.lang.reflect.Method; 
  
// Main Class 
public class GFG { 
    public static void main(String[] args) 
        throws NoSuchMethodException, SecurityException 
    { 
  
        // Get Method Object 
        Method methodObj1 = demo 
                                .class
                                .getDeclaredMethod("fauvMovie"); 
  
        // Apply getDefaultValue() method 
        Object obj1 = methodObj1.getDefaultValue(); 
  
        // print default value 
        System.out.println(obj1); 
  
        // Get Method Object 
        Method methodObj2 = demo 
                                .class
                                .getDeclaredMethod("fauvMovieRating"); 
  
        // Apply getDefaultValue() method 
        Object obj2 = methodObj2.getDefaultValue(); 
  
        // print default value 
        System.out.println(obj2); 
  
        // Get Method Object 
        Method methodObj3 = demo 
                                .class
                                .getDeclaredMethod("fauvMovieReleaseYear"); 
  
        // Apply getDefaultValue() method 
        Object obj3 = methodObj3.getDefaultValue(); 
  
        // print default value 
        System.out.println(obj3); 
    } 
  
    // an interface with default annotations 
    public @interface demo { 
        public String fauvMovie() default "Inception"; 
        public double fauvMovieRating() default 9.6; 
        public int fauvMovieReleaseYear(); 
    } 
    }
輸出:
Inception
9.6
null

範例2:下麵的程序包含一個接口名稱演示,該接口名稱演示具有一些由interface方法表示的注釋成員的默認值,以及一個類名稱演示,該注釋沒有此類默認值。該程序的Main方法為Interface和class的每個方法創建Method Object如果方法包含注釋的默認值,則打印注釋的默認值。

/* 
* Program Demonstrate getDefaultValue() method  
* of Method Class. 
*/
import java.lang.annotation.*; 
import java.lang.reflect.Method; 
  
// a simple class with no annotations 
class demo { 
    public void demoMethod(String value) 
    { 
        System.out.println("demo method:" + value); 
    } 
} 
  
public class GFG { 
  
    // Main method 
    public static void main(String[] args) 
    { 
        try { 
            // create class object 
            Class classobj = demo.class; 
            Class[] parameterTypes = { String.class }; 
  
            // get Method Object 
            @SuppressWarnings("unchecked") 
            Method method = classobj 
                                .getMethod("demoMethod", 
                                           parameterTypes); 
  
            // Print default value 
            System.out.println("default value of demoMethod():"
                               + method.getDefaultValue()); 
  
            // get Method Object 
            Method methodobj = demoInterface 
                                   .class
                                   .getDeclaredMethod("getValue"); 
  
            // get default value 
            Object defaultValue = methodobj.getDefaultValue(); 
  
            // Print default value 
            System.out.println("default value of getValue():"
                               + defaultValue); 
        } 
        catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 
  
    // a interface with some annotation 
    @Target({ ElementType.METHOD }) 
    @Retention(RetentionPolicy.RUNTIME) 
    private @interface demoInterface { 
        int getValue() default 51; 
    } 
}
輸出:
default value of demoMethod():null
default value of getValue():51

參考:
https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html#getDefaultValue-




相關用法


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