< prev index next >

src/java.base/share/classes/java/lang/Class.java

Print this page




  73 import jdk.internal.misc.Unsafe;
  74 import jdk.internal.module.Resources;
  75 import jdk.internal.reflect.CallerSensitive;
  76 import jdk.internal.reflect.ConstantPool;
  77 import jdk.internal.reflect.Reflection;
  78 import jdk.internal.reflect.ReflectionFactory;
  79 import jdk.internal.vm.annotation.ForceInline;
  80 import sun.invoke.util.Wrapper;
  81 import sun.reflect.generics.factory.CoreReflectionFactory;
  82 import sun.reflect.generics.factory.GenericsFactory;
  83 import sun.reflect.generics.repository.ClassRepository;
  84 import sun.reflect.generics.repository.MethodRepository;
  85 import sun.reflect.generics.repository.ConstructorRepository;
  86 import sun.reflect.generics.scope.ClassScope;
  87 import sun.security.util.SecurityConstants;
  88 import sun.reflect.annotation.*;
  89 import sun.reflect.misc.ReflectUtil;
  90 
  91 /**
  92  * Instances of the class {@code Class} represent classes and interfaces
  93  * in a running Java application. An enum type is a kind of class and an
  94  * annotation type is a kind of interface. Every array also
  95  * belongs to a class that is reflected as a {@code Class} object
  96  * that is shared by all arrays with the same element type and number
  97  * of dimensions.  The primitive Java types ({@code boolean},
  98  * {@code byte}, {@code char}, {@code short},
  99  * {@code int}, {@code long}, {@code float}, and
 100  * {@code double}), and the keyword {@code void} are also
 101  * represented as {@code Class} objects.
 102  *
 103  * <p> {@code Class} has no public constructor. Instead a {@code Class}
 104  * object is constructed automatically by the Java Virtual Machine
 105  * when a class loader invokes one of the
 106  * {@link ClassLoader#defineClass(String,byte[], int,int) defineClass} methods
 107  * and passes the bytes of a {@code class} file.
 108  *
 109  * <p> The methods of class {@code Class} expose many characteristics of a
 110  * class or interface. Most characteristics are derived from the {@code class}
 111  * file that the class loader passed to the Java Virtual Machine. A few
 112  * characteristics are determined by the class loading environment at run time,
 113  * such as the module returned by {@link #getModule() getModule()}.




  73 import jdk.internal.misc.Unsafe;
  74 import jdk.internal.module.Resources;
  75 import jdk.internal.reflect.CallerSensitive;
  76 import jdk.internal.reflect.ConstantPool;
  77 import jdk.internal.reflect.Reflection;
  78 import jdk.internal.reflect.ReflectionFactory;
  79 import jdk.internal.vm.annotation.ForceInline;
  80 import sun.invoke.util.Wrapper;
  81 import sun.reflect.generics.factory.CoreReflectionFactory;
  82 import sun.reflect.generics.factory.GenericsFactory;
  83 import sun.reflect.generics.repository.ClassRepository;
  84 import sun.reflect.generics.repository.MethodRepository;
  85 import sun.reflect.generics.repository.ConstructorRepository;
  86 import sun.reflect.generics.scope.ClassScope;
  87 import sun.security.util.SecurityConstants;
  88 import sun.reflect.annotation.*;
  89 import sun.reflect.misc.ReflectUtil;
  90 
  91 /**
  92  * Instances of the class {@code Class} represent classes and interfaces
  93  * in a running Java application. An enum type and a record type are kinds of class; an
  94  * annotation type is a kind of interface. Every array also
  95  * belongs to a class that is reflected as a {@code Class} object
  96  * that is shared by all arrays with the same element type and number
  97  * of dimensions.  The primitive Java types ({@code boolean},
  98  * {@code byte}, {@code char}, {@code short},
  99  * {@code int}, {@code long}, {@code float}, and
 100  * {@code double}), and the keyword {@code void} are also
 101  * represented as {@code Class} objects.
 102  *
 103  * <p> {@code Class} has no public constructor. Instead a {@code Class}
 104  * object is constructed automatically by the Java Virtual Machine
 105  * when a class loader invokes one of the
 106  * {@link ClassLoader#defineClass(String,byte[], int,int) defineClass} methods
 107  * and passes the bytes of a {@code class} file.
 108  *
 109  * <p> The methods of class {@code Class} expose many characteristics of a
 110  * class or interface. Most characteristics are derived from the {@code class}
 111  * file that the class loader passed to the Java Virtual Machine. A few
 112  * characteristics are determined by the class loading environment at run time,
 113  * such as the module returned by {@link #getModule() getModule()}.


< prev index next >