Java Constructor isSynthetic()方法及示例

来源:这里教程网 时间:2026-02-17 20:44:13 作者:

Java Constructor isSynthetic()方法及示例

java.lang.reflect.Constructor类isSynthetic() 方法是用来返回布尔值true,如果这个构造器对象是一个合成构造,则该方法返回false,显示该构造器不是一个合成构造。正如我们所知,合成构造是由Java编译器为内部目的而创建的类、字段和方法。在构造函数的例子中,合成构造是由java编译器为内部使用而创建的构造函数。这个方法有助于识别这些构造。

语法

public boolean isSynthetic()

参数: 此方法不接受任何参数。

返回 :当且仅当这个可执行文件是《Java语言规范》所定义的合成结构时,该方法才会返回true。

下面的程序说明了isSynthetic()方法:

程序1 :

// Java program to illustrate isSynthetic() method  import java.lang.reflect.Constructor;  public class GFG {      public static void main(String[] args)    {        // create a class object        Class classObj = shape.class;          // get Constructor object        // array from class object        Constructor[] cons = classObj.getConstructors();          // check isSynthetic or not        boolean answer = cons[0].isSynthetic();          // print result        System.out.println("isSynthetic : " + answer);    }      @CustomAnnotation(createValues = "GFG")    public class shape {          @CustomAnnotation(createValues = "GFG")        public shape()        {        }    }      // create a custom annotation    public @interface CustomAnnotation {        public String createValues();    }    }

输出:

isSynthetic : false

程序2

// Java program to illustrate isSynthetic() method  import java.lang.annotation.Annotation;import java.lang.reflect.Constructor;  public class GFG {      public static void main(String[] args)    {        // create a class object        Class classObj = String.class;          // get Constructor object        // array from class object        Constructor[] cons = classObj.getConstructors();          for (int i = 0; i < cons.length; i++) {              System.out.println("Constructor: "                               + cons[i]);              // get array of isSynthetic            boolean answer = cons[0].isSynthetic();              // print result            System.out.println("isSynthetic : " + answer);        }    }}

输出:

Constructor:  public java.lang.String(byte[], int, int)  isSynthetic : false  Constructor:  public java.lang.String(byte[], java.nio.charset.Charset)  isSynthetic : false  Constructor: public java.lang.String(byte[], java.lang.String) throws java.io.UnsupportedEncodingException  isSynthetic : false  Constructor: public java.lang.String(byte[], int, int, java.nio.charset.Charset)  isSynthetic : false  Constructor:  public java.lang.String(byte[], int, int, java.lang.String) throws java.io.unsupportedEncodingException  isSynthetic : false  Constructor: public java.lang.String(java.lang.StringBuilder)  isSynthetic : false  Constructor: public java.lang.String(java.lang.StringBuffer)  isSynthetic : false  Constructor: public java.lang.String(byte[])  isSynthetic : false  Constructor: public java.lang.String(int[], int, int)  isSynthetic : false  Constructor: public java.lang.String()  isSynthetic : false  Constructor: public java.lang.String(char[])  isSynthetic : false  Constructor: public java.lang.String(java.lang.String)  isSynthetic : false  Constructor: public java.lang.String(char[],int,in).String(char[], int, int)  isSynthetic : false  Constructor:  public java.lang.String(byte[], int)  isSynthetic : false  Constructor:  public java.lang.String(byte[], int, int, int)  isSynthetic : false

参考资料: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#isSynthetic()

相关推荐