javax.enterprise.inject

Interface Instance<T>

  • Type Parameters:
    T - the required bean type
    All Superinterfaces:
    Iterable<T>, Provider<T>
    All Known Implementing Classes:
    CDI

    public interface Instance<T>
    extends Iterable<T>, Provider<T>

    Allows the application to dynamically obtain instances of beans with a specified combination of required type and qualifiers.

    In certain situations, injection is not the most convenient way to obtain a contextual reference. For example, it may not be used when:

    • the bean type or qualifiers vary dynamically at runtime, or
    • depending upon the deployment, there may be no bean which satisfies the type and qualifiers, or
    • we would like to iterate over all beans of a certain type.

    In these situations, an instance of the Instance may be injected:

     @Inject
     Instance<PaymentProcessor> paymentProcessor;
     

    Any combination of qualifiers may be specified at the injection point:

     @Inject
     @PayBy(CHEQUE)
     Instance<PaymentProcessor> chequePaymentProcessor;
     

    Or, the @Any qualifier may be used, allowing the application to specify qualifiers dynamically:

     @Inject
     @Any
     Instance<PaymentProcessor> anyPaymentProcessor;
     

    Finally, the @New qualifier may be used, allowing the application to obtain a @New qualified bean:

     @Inject
     @New(ChequePaymentProcessor.class)
     Instance<PaymentProcessor> chequePaymentProcessor;
     

    For an injected Instance:

    • the required type is the type parameter specified at the injection point, and
    • the required qualifiers are the qualifiers specified at the injection point.

    The inherited Provider.get() method returns a contextual references for the unique bean that matches the required type and required qualifiers and is eligible for injection into the class into which the parent Instance was injected, or throws an UnsatisfiedResolutionException or AmbiguousResolutionException.

     PaymentProcessor pp = chequePaymentProcessor.get();
     

    The inherited Iterable.iterator() method returns an iterator over contextual references for beans that match the required type and required qualifiers and are eligible for injection into the class into which the parent Instance was injected.

     for (PaymentProcessor pp : anyPaymentProcessor)
         pp.test();
     
    Author:
    Gavin King
    See Also:
    Provider.get(), Iterable.iterator(), AnnotationLiteral, TypeLiteral
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method and Description
      void destroy(T instance)
      On destroy(Object) being called, the container destroys the instance if the active context object for the scope type of the bean supports destroying bean instances.
      boolean isAmbiguous()
      Determines if there is more than one bean that matches the required type and qualifiers and is eligible for injection into the class into which the parent Instance was injected.
      boolean isUnsatisfied()
      Determines if there is no bean that matches the required type and qualifiers and is eligible for injection into the class into which the parent Instance was injected.
      Instance<T> select(Annotation... qualifiers)
      Obtains a child Instance for the given additional required qualifiers.
      <U extends T>
      Instance<U>
      select(Class<U> subtype, Annotation... qualifiers)
      Obtains a child Instance for the given required type and additional required qualifiers.
      <U extends T>
      Instance<U>
      select(TypeLiteral<U> subtype, Annotation... qualifiers)
      Obtains a child Instance for the given required type and additional required qualifiers.

      Erste Seite von API Java Inhaltsverzeichnis Haut

      • Methods inherited from interface javax.inject.Provider

        get
    • Method Detail

      • select

        Instance<T> select(Annotation... qualifiers)

        Obtains a child Instance for the given additional required qualifiers.

        Parameters:
        qualifiers - the additional required qualifiers
        Returns:
        the child Instance
        Throws:
        IllegalArgumentException - if passed two instances of the same qualifier type, or an instance of an annotation that is not a qualifier type
      • select

        <U extends TInstance<U> select(Class<U> subtype,
                                         Annotation... qualifiers)

        Obtains a child Instance for the given required type and additional required qualifiers.

        Type Parameters:
        U - the required type
        Parameters:
        subtype - a Class representing the required type
        qualifiers - the additional required qualifiers
        Returns:
        the child Instance
        Throws:
        IllegalArgumentException - if passed two instances of the same qualifier type, or an instance of an annotation that is not a qualifier type
      • select

        <U extends TInstance<U> select(TypeLiteral<U> subtype,
                                         Annotation... qualifiers)

        Obtains a child Instance for the given required type and additional required qualifiers.

        Type Parameters:
        U - the required type
        Parameters:
        subtype - a TypeLiteral representing the required type
        qualifiers - the additional required qualifiers
        Returns:
        the child Instance
        Throws:
        IllegalArgumentException - if passed two instances of the same qualifier type, or an instance of an annotation that is not a qualifier type
      • isUnsatisfied

        boolean isUnsatisfied()

        Determines if there is no bean that matches the required type and qualifiers and is eligible for injection into the class into which the parent Instance was injected.

        Returns:
        true if there is no bean that matches the required type and qualifiers and is eligible for injection into the class into which the parent Instance was injected, or false otherwise.
      • isAmbiguous

        boolean isAmbiguous()

        Determines if there is more than one bean that matches the required type and qualifiers and is eligible for injection into the class into which the parent Instance was injected.

        Returns:
        true if there is more than one bean that matches the required type and qualifiers and is eligible for injection into the class into which the parent Instance was injected, or false otherwise.
      • destroy

        void destroy(T instance)

        On destroy(Object) being called, the container destroys the instance if the active context object for the scope type of the bean supports destroying bean instances. All normal scoped built-in contexts support destroying bean instances.

        The instance passed should either be a dependent scoped bean instance, or the client proxy for a normal scoped bean instance.

        Parameters:
        instance - the instance to destroy
        Throws:
        UnsupportedOperationException - if the active context object for the scope type of the bean does not support destroying bean instances
        Since:
        1.1

Deutsche Übersetzung

Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.

Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.

Vielen Dank im Voraus.

Dokument erstellt 11/06/2005, zuletzt geändert 18/08/2025
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/java-api-javaee-rf-javax/enterprise/inject/Instance.html

Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.

Referenzen

  1. Zeigen Sie - html-Dokument Sprache des Dokuments:fr Manuel PHP : https://docs.oracle.com, Instance (Java(TM) EE 7 Specification APIs)

Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor dieser Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.