Java中的方法类| getDefaultValue()方法

这个 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
喜欢就支持一下吧
点赞8 分享