Interface ConstructorExecutor

All Known Implementing Classes:
ReflectiveConstructorExecutor
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface ConstructorExecutor
A ConstructorExecutor is built by a ConstructorResolver and can be cached by the infrastructure to repeat an operation quickly without going back to the resolvers.

For example, the particular constructor to execute on a class may be discovered by a ConstructorResolver which then builds a ConstructorExecutor that executes that constructor, and the resolved ConstructorExecutor can be reused without needing to go back to the resolvers to discover the constructor again.

If a ConstructorExecutor becomes stale, it should throw an AccessException which signals to the infrastructure to go back to the resolvers to ask for a new one.

Since:
3.0
Author:
Andy Clement, Sam Brannen
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    execute(EvaluationContext context, Object... arguments)
    Execute a constructor in the specified context using the specified arguments.
  • Method Details

    • execute

      TypedValue execute(EvaluationContext context, Object... arguments) throws AccessException
      Execute a constructor in the specified context using the specified arguments.
      Parameters:
      context - the evaluation context in which the constructor is being executed
      arguments - the arguments to the constructor; should match (in terms of number and type) whatever the constructor will need to run
      Returns:
      the new object
      Throws:
      AccessException - if there is a problem executing the constructor or if this ConstructorExecutor has become stale