Appel d'une méthode de blocage à partir du Constructeur-Java


Je voudrais savoir si c'est une mauvaise idée d'appeler une méthode de blocage à partir du constructeur lui-même.

Je suis curieux de savoir si nous avons des directives/règles dans un tel scénario, que nous ne devrions jamais appeler des méthodes de blocage dans le Constructeur.

Fondamentalement, j'essaie de faire ceci:

class A
{
    // Many instance variables that is to be initialized on instantiaion
    String tempVar = null;

    public A()
    {
        // Initialize all the instance variables
        tempVar=objectClassB.**callBlockingMethod**(); // this method call would return 
                                                       // some data from ClassB Object
    }

    public static void main(String args ...)
    {
        A a = new A();
        // Or should I call the blocking method call only after instantiation according
        // to any guidelines of Java pertaining to performance ?

        // IMPORTANT: It's only when the blocked method returns value , should the main
        // thread proceed as the object 'a' would be sent for further processing
    }
}

PS: Eh ,je suis désolé si ma question semble très basique.

Author: robjohncox, 2013-07-02

1 answers

Je pensais que c'était mieux que vous puissiez créer une méthode comme connect () dans la classe A. Après avoir créé un objet, vous pouvez appeler comme

A a = nouveau A() A. connecter ()

Dans la méthode connect, vous définissez la méthode de blocage StreamConnection con=déclarant.acceptAndOpen() .....

Si votre appel de blocage ne revient pas dans la période spécifiée, vous envisagez un mécanisme pour récupérer ce scénario

 1
Author: Jojo John, 2013-07-02 19:41:13