这个 getDefaultValue() 方法 JAVA朗,反思 .方法类。它返回 注释成员 由方法对象表示。 当注释成员属于基元类型时,该方法返回该基元类型的实例 包装类型 。如果批注成员不包含任何默认值,或者如果方法对象没有批注类型的成员,则返回null。
null
语法:
public Object getDefaultValue()
返回值: 此方法返回此方法对象表示的注释成员的默认值。
例外情况: 这种方法会引发 TypeNotPresentException 如果注释的类型为Class,并且找不到默认类值的定义。
下面的程序演示了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: 下面的程序包含一个接口名演示和一个类名演示,该接口名演示包含由接口方法表示的注释成员的一些默认值,该类名演示没有注释的此类默认值。程序的主方法为接口和类的每个方法创建方法对象,如果方法包含注释的默认值,则打印注释的默认值。
/* * 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–
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END