diff options
Diffstat (limited to 'spring-beans/src/main/java/org/springframework/beans/BeanUtils.java')
-rw-r--r-- | spring-beans/src/main/java/org/springframework/beans/BeanUtils.java | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/spring-beans/src/main/java/org/springframework/beans/BeanUtils.java b/spring-beans/src/main/java/org/springframework/beans/BeanUtils.java index 5c735f16..50c04c3b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/BeanUtils.java +++ b/spring-beans/src/main/java/org/springframework/beans/BeanUtils.java @@ -63,11 +63,10 @@ public abstract class BeanUtils { /** * Convenience method to instantiate a class using its no-arg constructor. - * As this method doesn't try to load classes by name, it should avoid - * class-loading issues. * @param clazz class to instantiate * @return the new instance * @throws BeanInstantiationException if the bean cannot be instantiated + * @see Class#newInstance() */ public static <T> T instantiate(Class<T> clazz) throws BeanInstantiationException { Assert.notNull(clazz, "Class must not be null"); @@ -87,13 +86,12 @@ public abstract class BeanUtils { /** * Instantiate a class using its no-arg constructor. - * As this method doesn't try to load classes by name, it should avoid - * class-loading issues. * <p>Note that this method tries to set the constructor accessible * if given a non-accessible (that is, non-public) constructor. * @param clazz class to instantiate * @return the new instance * @throws BeanInstantiationException if the bean cannot be instantiated + * @see Constructor#newInstance */ public static <T> T instantiateClass(Class<T> clazz) throws BeanInstantiationException { Assert.notNull(clazz, "Class must not be null"); @@ -110,18 +108,16 @@ public abstract class BeanUtils { /** * Instantiate a class using its no-arg constructor and return the new instance - * as the the specified assignable type. - * <p>Useful in cases where - * the type of the class to instantiate (clazz) is not available, but the type - * desired (assignableTo) is known. - * <p>As this method doesn't try to load classes by name, it should avoid - * class-loading issues. - * <p>Note that this method tries to set the constructor accessible - * if given a non-accessible (that is, non-public) constructor. + * as the specified assignable type. + * <p>Useful in cases where the type of the class to instantiate (clazz) is not + * available, but the type desired (assignableTo) is known. + * <p>Note that this method tries to set the constructor accessible if given a + * non-accessible (that is, non-public) constructor. * @param clazz class to instantiate * @param assignableTo type that clazz must be assignableTo * @return the new instance * @throws BeanInstantiationException if the bean cannot be instantiated + * @see Constructor#newInstance */ @SuppressWarnings("unchecked") public static <T> T instantiateClass(Class<?> clazz, Class<T> assignableTo) throws BeanInstantiationException { @@ -131,14 +127,13 @@ public abstract class BeanUtils { /** * Convenience method to instantiate a class using the given constructor. - * As this method doesn't try to load classes by name, it should avoid - * class-loading issues. - * <p>Note that this method tries to set the constructor accessible - * if given a non-accessible (that is, non-public) constructor. + * <p>Note that this method tries to set the constructor accessible if given a + * non-accessible (that is, non-public) constructor. * @param ctor the constructor to instantiate * @param args the constructor arguments to apply * @return the new instance * @throws BeanInstantiationException if the bean cannot be instantiated + * @see Constructor#newInstance */ public static <T> T instantiateClass(Constructor<T> ctor, Object... args) throws BeanInstantiationException { Assert.notNull(ctor, "Constructor must not be null"); @@ -147,20 +142,16 @@ public abstract class BeanUtils { return ctor.newInstance(args); } catch (InstantiationException ex) { - throw new BeanInstantiationException(ctor.getDeclaringClass(), - "Is it an abstract class?", ex); + throw new BeanInstantiationException(ctor, "Is it an abstract class?", ex); } catch (IllegalAccessException ex) { - throw new BeanInstantiationException(ctor.getDeclaringClass(), - "Is the constructor accessible?", ex); + throw new BeanInstantiationException(ctor, "Is the constructor accessible?", ex); } catch (IllegalArgumentException ex) { - throw new BeanInstantiationException(ctor.getDeclaringClass(), - "Illegal arguments for constructor", ex); + throw new BeanInstantiationException(ctor, "Illegal arguments for constructor", ex); } catch (InvocationTargetException ex) { - throw new BeanInstantiationException(ctor.getDeclaringClass(), - "Constructor threw exception", ex.getTargetException()); + throw new BeanInstantiationException(ctor, "Constructor threw exception", ex.getTargetException()); } } |