Quelle est la différence entre GWT.create(SomeClass.class)
et new SomeClass()
?
Pourquoi voudriez-vous utiliser l'un sur l'autre?
Quelle est la différence entre GWT.create(SomeClass.class)
et new SomeClass()
?
Pourquoi voudriez-vous utiliser l'un sur l'autre?
GWT.create
est utilisé par le compilateur GWT pour différés de liaison. Différé de liaison est une option du compilateur GWT qui fonctionne en générant de nombreuses versions de code au moment de la compilation, un seul de ce qui doit être chargé par un client particulier lors de l'amorçage au moment de l'exécution.
Vous ne devez utiliser l' GWT.create
pour les cas qui dépendent de ce cas d'utilisation spécifiques. Par exemple lors de la création d'un RPC classe: (MyServiceAsync)GWT.create(MyService.class)
. Dans tous les autres cas, utilisez new
.
Pour plus d'informations, consultez le GWT page sur Différé de liaison: http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html
GWT.créer emploie différé de liaison travail autour pour le manque de réflexion de soutien.
Selon la FAQ:
Différé de Liaison est Google Web Toolkit, en réponse à la réflexion Java.
Il est plus facile d'expliquer Différé de Liaison en partant d'un cas d'utilisation. Chaque navigateur a ses propres particularités, habituellement, beaucoup d'entre eux. (Le grand nombre ingérable d'entre eux est le problème GWT a été créé pour résoudre en premier lieu.) Le standard de Java façon de traiter avec les idiosyncrasies serait pour encapsuler le code personnalisé dans les sous-classes, avec une sous-classe pour chaque navigateur pris en charge. Au moment de l'exécution, l'application utilise la réflexion et la dynamique classloading pour sélectionner la sous-classe appropriée pour l'environnement actuel, la charge de la classe, créez une instance, puis utiliser cette instance comme le fournisseur de service pour la durée du programme.
C'est en effet ce que GWT. Toutefois, le code JavaScript de l'environnement dans lequel GWT applications, finalement, exécutez simplement ne prend pas en charge dynamique classloading (aussi connu comme la liaison dynamique.) Vous pouvez certainement inclure le code à l'appui de chaque navigateur dans votre code JavaScript généré, mais pour ce faire, vous devez inclure le support pour tous les navigateurs est le seul dossier de candidature. Pourquoi un Opéra de l'utilisateur de télécharger de code spécifique à Firefox, quand il n'y a aucune chance qu'elle ne sera jamais besoin de cela?
En raison de liaison dynamique n'est pas disponible comme une technique pour GWT, GWT utilise à la place de différé de liaison. Une façon de penser, c'est que "la dynamique de la classe de chargement qui se produit au moment de la compilation au lieu de temps d'exécution." Lorsque le Compilateur GWT compile votre application Java, il détermine tous les différents "idiosyncrasies" qu'il doit prendre en charge, et génère un distinct, bien à la version simplifiée de l'application de configuration spécifique. Par exemple, il génère une autre version du fichier de l'application pour Firefox que pour l'Opéra.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.