47 |
import java.lang.reflect.Method; |
import java.lang.reflect.Method; |
48 |
import java.lang.reflect.Modifier; |
import java.lang.reflect.Modifier; |
49 |
import java.net.URL; |
import java.net.URL; |
50 |
|
import java.security.AccessController; |
51 |
import java.security.AllPermission; |
import java.security.AllPermission; |
52 |
import java.security.Permissions; |
import java.security.Permissions; |
|
import java.security.ProtectionDomain; |
|
|
import java.security.AccessController; |
|
53 |
import java.security.PrivilegedAction; |
import java.security.PrivilegedAction; |
54 |
|
import java.security.ProtectionDomain; |
55 |
import java.util.ArrayList; |
import java.util.ArrayList; |
56 |
import java.util.Arrays; |
import java.util.Arrays; |
57 |
import java.util.HashMap; |
import java.util.HashMap; |
58 |
import java.util.HashSet; |
import java.util.HashSet; |
59 |
|
|
60 |
|
|
61 |
/** |
/** |
62 |
* A Class represents a Java type. There will never be multiple Class |
* A Class represents a Java type. There will never be multiple Class |
63 |
* objects with identical names and ClassLoaders. Primitive types, array |
* objects with identical names and ClassLoaders. Primitive types, array |
103 |
/* We use an inner class, so that Class doesn't have a static initializer */ |
/* We use an inner class, so that Class doesn't have a static initializer */ |
104 |
private static final class StaticData |
private static final class StaticData |
105 |
{ |
{ |
106 |
final static ProtectionDomain unknownProtectionDomain; |
static final ProtectionDomain unknownProtectionDomain; |
107 |
|
|
108 |
static |
static |
109 |
{ |
{ |
113 |
} |
} |
114 |
} |
} |
115 |
|
|
116 |
transient final Object vmdata; |
final transient Object vmdata; |
117 |
|
|
118 |
/** newInstance() caches the default constructor */ |
/** newInstance() caches the default constructor */ |
119 |
private transient Constructor constructor; |
private transient Constructor constructor; |