当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。