From cf6f7d55897e0c6b1badbcfc241e512a4bb154b8 Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Tue, 20 Apr 2004 12:30:19 +0000 Subject: Byte.java, [...]: Fixed javadocs, coding style and argument names all over. 2004-04-20 Michael Koch * java/lang/Byte.java, java/lang/CharSequence.java, java/lang/ClassLoader.java, java/lang/Compiler.java, java/lang/Double.java, java/lang/Float.java, java/lang/Integer.java, java/lang/Long.java, java/lang/Math.java, java/lang/Number.java, java/lang/Package.java, java/lang/Runtime.java, java/lang/RuntimePermission.java, java/lang/SecurityManager.java, java/lang/Short.java, java/lang/StringBuffer.java, java/lang/System.java, java/lang/ThreadGroup.java, java/lang/Throwable.java, java/lang/reflect/InvocationHandler.java, java/lang/reflect/Proxy.java: Fixed javadocs, coding style and argument names all over. From-SVN: r80899 --- libjava/java/lang/reflect/Proxy.java | 53 ++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 26 deletions(-) (limited to 'libjava/java/lang/reflect/Proxy.java') diff --git a/libjava/java/lang/reflect/Proxy.java b/libjava/java/lang/reflect/Proxy.java index 03b2a45..56d7aeb 100644 --- a/libjava/java/lang/reflect/Proxy.java +++ b/libjava/java/lang/reflect/Proxy.java @@ -211,35 +211,36 @@ public class Proxy implements Serializable * Returns the proxy {@link Class} for the given ClassLoader and array * of interfaces, dynamically generating it if necessary. * - * There are several restrictions on this method, the violation of + *

There are several restrictions on this method, the violation of * which will result in an IllegalArgumentException or - * NullPointerException: + * NullPointerException:

+ * *

+ *

  • All objects in `interfaces' must represent distinct interfaces. + * Classes, primitive types, null, and duplicates are forbidden.
  • + *
  • The interfaces must be visible in the specified ClassLoader. + * In other words, for each interface i: + * Class.forName(i.getName(), false, loader) == i + * must be true.
  • + *
  • All non-public interfaces (if any) must reside in the same + * package, or the proxy class would be non-instantiable. If + * there are no non-public interfaces, the package of the proxy + * class is unspecified.
  • + *
  • All interfaces must be compatible - if two declare a method + * with the same name and parameters, the return type must be + * the same and the throws clause of the proxy class will be + * the maximal subset of subclasses of the throws clauses for + * each method that is overridden.
  • + *
  • VM constraints limit the number of interfaces a proxy class + * may directly implement (however, the indirect inheritance + * of {@link Serializable} does not count against this limit). + * Even though most VMs can theoretically have 65535 + * superinterfaces for a class, the actual limit is smaller + * because a class's constant pool is limited to 65535 entries, + * and not all entries can be interfaces.
  • + * * - * Note that different orders of interfaces produce distinct classes. + *

    Note that different orders of interfaces produce distinct classes.

    * * @param loader the class loader to define the proxy class in; null * implies the bootstrap class loader -- cgit v1.1