/[classpath]/classpath/java/lang/Class.java
ViewVC logotype

Diff of /classpath/java/lang/Class.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.22.2.18 by gnu_andrew, Tue Sep 20 18:46:27 2005 UTC revision 1.22.2.19 by jfrijters, Mon Sep 26 11:43:37 2005 UTC
# Line 39  exception statement from your version. * Line 39  exception statement from your version. *
39  package java.lang;  package java.lang;
40    
41  import gnu.classpath.VMStackWalker;  import gnu.classpath.VMStackWalker;
42    import gnu.java.lang.reflect.ClassSignatureParser;
43    
44  import java.io.InputStream;  import java.io.InputStream;
45  import java.io.Serializable;  import java.io.Serializable;
# Line 124  public final class Class<T> Line 125  public final class Class<T>
125    final transient Object vmdata;    final transient Object vmdata;
126    
127    /** newInstance() caches the default constructor */    /** newInstance() caches the default constructor */
128    private transient Constructor constructor;    private transient Constructor<T> constructor;
129    
130    /**    /**
131     * Class is non-instantiable from Java code; only the VM can create     * Class is non-instantiable from Java code; only the VM can create
# Line 1298  public final class Class<T> Line 1299  public final class Class<T>
1299     */     */
1300    public T cast(Object obj)    public T cast(Object obj)
1301    {    {
1302      return VMClass.cast(obj, this);      return (T)VMClass.cast(obj, this);
1303    }    }
1304    
1305    /**    /**
# Line 1368  public final class Class<T> Line 1369  public final class Class<T>
1369     */     */
1370    public T[] getEnumConstants()    public T[] getEnumConstants()
1371    {    {
1372      return VMClass.getEnumConstants(this);      return (T[])VMClass.getEnumConstants(this);
1373    }    }
1374    
1375    /**    /**
# Line 1602  public final class Class<T> Line 1603  public final class Class<T>
1603     */     */
1604    public Type[] getGenericInterfaces()    public Type[] getGenericInterfaces()
1605    {    {
1606      return VMClass.getGenericInterfaces(this);      if (isPrimitive())
1607          return new Type[0];
1608    
1609        String sig = VMClass.getClassSignature(this);
1610        if (sig == null)
1611          return getInterfaces();
1612    
1613        ClassSignatureParser p = new ClassSignatureParser(this, sig);
1614        return p.getInterfaceTypes();
1615    }    }
1616    
1617    /**    /**
# Line 1636  public final class Class<T> Line 1645  public final class Class<T>
1645     */     */
1646    public Type getGenericSuperclass()    public Type getGenericSuperclass()
1647    {    {
1648      return VMClass.getGenericSuperclass(this);      if (isArray())
1649          return Object.class;
1650    
1651        if (isPrimitive() || isInterface() || this == Object.class)
1652          return null;
1653    
1654        String sig = VMClass.getClassSignature(this);
1655        if (sig == null)
1656          return getSuperclass();
1657    
1658        ClassSignatureParser p = new ClassSignatureParser(this, sig);
1659        return p.getSuperclassType();
1660    }    }
1661    
1662    /**    /**
# Line 1653  public final class Class<T> Line 1673  public final class Class<T>
1673     */     */
1674    public TypeVariable<Class<T>>[] getTypeParameters()    public TypeVariable<Class<T>>[] getTypeParameters()
1675    {    {
1676      return VMClass.getTypeParameters(this);      String sig = VMClass.getClassSignature(this);
1677        if (sig == null)
1678          return (TypeVariable<Class<T>>[])new TypeVariable[0];
1679    
1680        ClassSignatureParser p = new ClassSignatureParser(this, sig);
1681        return p.getTypeParameters();
1682    }    }
1683    
1684    /**    /**

Legend:
Removed from v.1.22.2.18  
changed lines
  Added in v.1.22.2.19

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26