Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2024-03-28T18:25:45+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Logiciel de gestion d'un hôpital , message #2544332024-03-28T18:25:45+01:00mukokoofabrice/@mukokoofabricehttps://zestedesavoir.com/forums/sujet/17386/logiciel-de-gestion-dun-hopital/?page=1#p254433<p>Bonjour cher tous ! Quel langage de programmation choisir concernant mon cas</p>Exemple de projet Java, message #2544102024-03-26T10:17:09+01:00viki53/@viki53https://zestedesavoir.com/forums/sujet/10311/exemple-de-projet-java/?page=1#p254410<p><a href="/@mukokoofabrice" rel="nofollow" class="ping ping-link">@<span class="ping-username">mukokoofabrice</span></a> : je t’invite à créer un sujet dédié en expliquant ton projet pour obtenir des conseils adaptés. <img src="/static/smileys/svg/clin.svg" alt=";)" class="smiley"> </p>
<p>Le choix d’un langage ne se fait pas en fonction d’une description d’une phrase, ça a des impacts à long terme, surtout pour un projet (semi-)professionnel.</p>Exemple de projet Java, message #2543982024-03-24T19:58:03+01:00mukokoofabrice/@mukokoofabricehttps://zestedesavoir.com/forums/sujet/10311/exemple-de-projet-java/?page=1#p254398<p>Bonjour cher tous !
juste savoir si ce cours est-il encore d’actualité.</p>
<p>Sinon j’adore ce site vue que les cours restent focus sur le sujet d’étude.
j’ai un projet de développement d’une application de gestion d’un complexe scolaire et d’un hôpital</p>
<p>Java est-il le bon langage de programmation qui pourra m’aider à atteindre ma faim ?</p>Javaquarium, message #2542472024-03-10T15:24:26+01:00kaise3/@kaise3https://zestedesavoir.com/forums/sujet/447/javaquarium/?page=7#p254247<p>Watch online Mangal Lakshmi in colors Tv. Mangal Lakshmi explores the unique bond between the two sisters, delving into their joys, challenges, and the unbreakable connection that ties them together. Set against the vibrant backdrop of Colors TV, the show is set to take viewers on a journey that celebrates the intricacies of sisterhood. Follow for Desi Serials <a href="https://mangallakshmi.net/">https://mangallakshmi.net/</a></p>Les tests unitaires en Java, message #2541212024-02-25T14:41:44+01:00Arius/@Ariushttps://zestedesavoir.com/forums/sujet/16651/les-tests-unitaires-en-java/?page=1#p254121<p>Bonjour,</p>
<p>La bêta du contenu « Les tests unitaires en Java » a été désactivée.</p>Lire les entrées clavier, message #2539052024-02-06T10:51:36+01:00gedeon.19302/@gedeon.19302https://zestedesavoir.com/forums/sujet/5542/lire-les-entrees-clavier/?page=1#p253905<p>Je veux un livre sur les boucles en java </p>Strategy Pattern utilisant des paramètres différents, message #2534002023-12-22T09:50:34+01:00QuentinC/@QuentinChttps://zestedesavoir.com/forums/sujet/17260/strategy-pattern-utilisant-des-parametres-differents/?page=1#p253400<p>Hello,</p>
<p>JE suis curieux de savoir ce que tu as trouvé, mais le lien vers le papier ne marche pas…</p>Strategy Pattern utilisant des paramètres différents, message #2533902023-12-20T23:29:08+01:00Migwel/@Migwelhttps://zestedesavoir.com/forums/sujet/17260/strategy-pattern-utilisant-des-parametres-differents/?page=1#p253390<p>Je compte faire un billet (ou un post de présentation de projets) lorsque j’aurai terminé mais en quelques mots, l’objectif, c’est d’avoir un service qui exécute deux actions:</p>
<ol>
<li>Identifier une chanson qui est en train d’être jouée quelque part. Initialement, je compte supporter la radio (j’ai déjà joué avec des flux audio) et les Sonos (car j’en possède) mais ça pourrait s’étendre à d’autres services.</li>
<li>Faire une action avec cette chanson. Celle qui me serait la plus utile serait d’ajouter cette chanson à une playlist sur Spotify mais je peux aussi imaginer simplement l’enregistrer dans une base de données ou contacter un autre service que Spotify.</li>
</ol>
<p>Mon cas d’utilisation, c’est que quand j’écoute la radio et qu’une chanson que j’aime bien passe, je voudrais qu’elle soit ajoutée presque automatiquement à ma playlist Spotify. Ce que mon service permettrait de faire en un appel API.</p>
<blockquote>
<p>Je pensais à une URI parce que tu as parlé de streams audio, mais en fait tu peux passer du JSON ou du XML si tu es plus à l’aise. Ca ne change pas grand chose au principe.</p>
</blockquote>
<p>Pour clarifier et être sûr qu’on est sur la même longueur d’ondes, voici comment j’imagine mon design. J’ai un contrôleur qui acceptera des requêtes JSON des utilisateurs qui spécifieront d’où le service doit lire la chanson. Idéalement, je compte autoriser les requêtes à être fortement différentes selon les sources (radio serait juste un paramètre URI, Sonos serait plusieurs paramètres pour identifier le Sonos qu’on cible, etc.).</p>
<p>Une fois que mon contrôleur reçoit cette requête, je voulais appliquer le <em>Strategy pattern</em> car il me semble adapté: je veux toujours exécuter les deux étapes que je décris plus haut, peu importe la source (ou l’action que l’on voudra prendre avec la chanson). Mais c’est ici que je tombe sur un os: généralement, les méthodes utilisées par ce pattern n’ont soit pas de paramètre, soit des paramètres communs à toutes les implémentations. Or dans mon cas, mes implémentations étaient tellement différentes, c’est quelque chose que je voudrais éviter.</p>
<p>J’ai trouvé <a href="https://hillside.net/plop/2010/papers/ACMVersions/papers/sobajic.pdf">un papier</a> qui propose une solution à mon problème et qui décrit exactement ce que je suis en train d’affronter:</p>
<blockquote>
<ol start="2">
<li>Shortcomings of Strategy pattern</li>
</ol>
<p>The strategy pattern can be used to host different algorithms which either have no parameters or the set of
parameters for each algorithm is the same. The problem arises if various algorithms with different sets of parameters
are to be used. Obviously, these parameters cannot be declared in the execute() method in the abstract class
Algorithm, as they vary from algorithm to algorithm. Existence of various sets of parameters results in different
interfaces which would not be acceptable for the strategy pattern. Hence, the strategy pattern needs to be adapted in
order to handle the problem.</p>
<p>The traditional solution is to develop a context interface that would have the union of all parameters needed by the
different algorithms. However, this solution breaks the independence between client and the algorithm. It means that
adding a new algorithm, whose parameters are not in the union of parameters, requires some changes to be made on
the client.</p>
<p>In the following section we present a solution which does not break the independence between client and algorithms;
is able to host algorithms with different parameters; and provide the user with parameters specific to a chosen
algorithm.</p>
</blockquote>
<p>Je dois encore prendre le temps de le lire pour voir ce qu’ils proposent.</p>Strategy Pattern utilisant des paramètres différents, message #2533892023-12-20T22:54:49+01:00QuentinC/@QuentinChttps://zestedesavoir.com/forums/sujet/17260/strategy-pattern-utilisant-des-parametres-differents/?page=1#p253389<p>Hello,</p>
<blockquote>
<p>Utiliser un paramètre commun à tous les services (que ça soit un URI ou autre chose) est effectivement une autre possibilité mais je la trouve aussi pas super car mes implémentations ont potentiellement besoin de paramètres complètement différent. Par exemple pour Sonos, il y a des notions de household et group. Ca peut peut-être rentrer dans un format URI mais ça m’a l’air assez hacky.</p>
</blockquote>
<p>Ca reste des identifiants, des ID, des clés non ? Donc ça passe dans une chaîne de caractères.</p>
<blockquote>
<p>Et même si on utilise une autre classe que URI, ça veut dire que si j’ajoute un nouveau service, je devrai modifier cette classe pour lui ajouter les attributs nécessaires, qui ne seront utilisés que par une seule implémentation.</p>
</blockquote>
<p>Un moment donné quand tu dois passer quelque chose de générique, ou avec des paramètres tellement différents d’un service à l’autre, tu n’as pas trop le choix en fait, tu es obligé d’utiliser un truc pas trop rigide.
Tu dois forcément avoir une factory qui regarde un bout de message comun à tous pour savoir quoi faire ensuite.</p>
<p>Je pensais à une URI parce que tu as parlé de streams audio, mais en fait tu peux passer du JSON ou du XML si tu es plus à l’aise.
Ca ne change pas grand chose au principe.</p>
<p>En fait c’est quoi l’objectif ?
Tu écoutes une musique sur une radio, ou sur un service de musique quelconque autre que spotify, et le but c’est de retrouver le morceau sur spotify et de l’ajouter dans une playlist ?</p>
<p>Si c’est ça, j’avoue que ça peut potentiellement m’intéresser… c’est un peu embêtant quand tu as des amis qui ne sont pas abonnés au même service que toi.</p>Strategy Pattern utilisant des paramètres différents, message #2533882023-12-20T20:06:28+01:00Migwel/@Migwelhttps://zestedesavoir.com/forums/sujet/17260/strategy-pattern-utilisant-des-parametres-differents/?page=1#p253388<p>Salut Quentin,</p>
<p>Merci pout ta réponse !</p>
<blockquote>
<p>Où se trouve ton service ? Est-ce que c’est une application qui tourne en local chez toi, ou bien c’est un service en ligne ? Est-ce qu’il y a un seul utilisateur humain par instance ou plusieurs ?
[…]
Sinon, si c’est une application plus ou moins ouverte au monde disponible H24 avec plein d’utilisateurs, par contre…</p>
</blockquote>
<p>Dans un premier temps, je serai le seul utilisateur mais je compte améliorer ça pour ouvrir ça à plus d’utilisateurs. Mon idée est d’abord d’implémenter ça de façon simple avec un utilisateur et sans me soucier trop de l’authentification et hardcoder 2–3 choses (pour interagir avec Sonos ou Spotify, je compte faire du OAuth 2.0) avant de rendre ça plus flexible.</p>
<p>Mais je ne pense pas que ça devrait changer grand chose à mon design de base concernant mes services.</p>
<blockquote>
<p>Tu peux mettre pas mal de choses dans une URL, un token complet si tu veux, donc il y a de quoi faire. Sinon, il te faudra imaginer un autre objet plus riche mais qui reste toujours générique.</p>
</blockquote>
<p>Utiliser un paramètre commun à tous les services (que ça soit un URI ou autre chose) est effectivement une autre possibilité mais je la trouve aussi pas super car mes implémentations ont potentiellement besoin de paramètres complètement différent. Par exemple pour Sonos, il y a des notions de <code>household</code> et <code>group</code>. Ca peut peut-être rentrer dans un format URI mais ça m’a l’air assez <em>hacky</em>.</p>
<p>Et même si on utilise une autre classe que URI, ça veut dire que si j’ajoute un nouveau service, je devrai modifier cette classe pour lui ajouter les attributs nécessaires, qui ne seront utilisés que par une seule implémentation.</p>
<blockquote>
<p>L’approche naïve [] dois connaitre le type de service pour lui passer le bon type de paramètre. Ca va complètement à l’encontre de plein de principes OO, et donc ce n’est pas une bonne solution.</p>
</blockquote>
<p>Dans tous les cas, la requête que je recevrai de l’utilisateur sera différente. Donc je pense que je pourrais m’en sortir en ayant des Factory (ou quelque chose du genre) qui pourraient créer des <code>PlayingRequest</code> en fonction de la requête reçue et qui potentiellement retourneraient aussi le service à utiliser.</p>Strategy Pattern utilisant des paramètres différents, message #2533872023-12-20T19:26:39+01:00QuentinC/@QuentinChttps://zestedesavoir.com/forums/sujet/17260/strategy-pattern-utilisant-des-parametres-differents/?page=1#p253387<p>Salut,</p>
<p>Où se trouve ton service ? Est-ce que c’est une application qui tourne en local chez toi, ou bien c’est un service en ligne ? Est-ce qu’il y a un seul utilisateur humain par instance ou plusieurs ?</p>
<p>Je te pose la question parce que si tu es tout seul à utiliser ton service, ou si c’est un truc qui tourne en local, passer les identifiants de tes sonos dans SonosSpeakerService est certainement suffisant, car tu ne vas pas modifier ton système souvent (et au pire tu redémarres après un changement de configuration)).
Pas besoin de se casser la tête.</p>
<p>Sinon, si c’est une application plus ou moins ouverte au monde disponible H24 avec plein d’utilisateurs, par contre…</p>
<p>L’approche naïve serait une interface abstraite PlayingParameters avec deux classes concrètes RadioPlayingParameters et SonosPlayingParameters, mais ça implique que, au moment où tu appelles whatsPlaying(), tu dois connaitre le type de service pour lui passer le bon type de paramètre.
Ca va complètement à l’encontre de plein de principes OO, et donc ce n’est pas une bonne solution.</p>
<p>Pour faire mieux, voici mon idée: on pourrait imaginer que tu passes un genre d’URL générique, ou autrement dit une URI, qui, dans le cas sonos, encapsule les identifiants nécessaire. Par exemple sonos://user=<a href="mailto:123@xyz.com">123@xyz.com</a>&id=abc&room=def.
C’est par exemple le genre de principe utilisé dans les URL de connexion aux bases de donnée (ça ne te rappelle pas jdbc:mysql:…, h2:…, etc. ?)</p>
<p>Dans le cas des DataSource, en très très gros résumé, au sommet, il y a une factory qui va regarder le protocole de l’URI, et instancier le driver correspondant.
Puis le driver reçoit l’URI, et va récupérer les paramètres pour se configurer et se connecter.</p>
<p>Dans ton cas il te faudrait donc un SpeakerServiceFactory du genre: <code>SpeakerService getSpeakerService(URI)</code></p>
<p>Tu peux mettre pas mal de choses dans une URL, un token complet si tu veux, donc il y a de quoi faire. Sinon, il te faudra imaginer un autre objet plus riche mais qui reste toujours générique.</p>Strategy Pattern utilisant des paramètres différents, message #2533862023-12-20T16:32:58+01:00Migwel/@Migwelhttps://zestedesavoir.com/forums/sujet/17260/strategy-pattern-utilisant-des-parametres-differents/?page=1#p253386<p>Bonjour à tous,</p>
<p>Je suis en train de développer une application permettant de savoir ce qui est en train d’être joué quelque part pour ensuite pouvoir par exemple l’ajouter à une playlist Spotify. Ce quelque part est variable et peut par exemple être une station radio spécifique ou un speaker Sonos.</p>
<p>Donc pour modéliser tout ça, je pensais utiliser un Strategy pattern qui ferait deux choses:</p>
<ol>
<li>Identifier la chanson qui est en train d’être jouée</li>
<li>La sauvegarder dans une playlist</li>
</ol>
<p>Pour ma première étape, je voulais avoir une interface du type</p>
<div class="hljs-code-div hljs-code-java"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span></div><pre><code class="hljs language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">SpeakerService</span> </span>{
<span class="hljs-function">Song <span class="hljs-title">whatsPlaying</span><span class="hljs-params">()</span></span>;
}
</code></pre></div>
<p>Et ensuite avoir une implémentation pour <code>RadioSpeakerService</code> et une autre pour <code>SonosSpeakerService</code>. Mais c’est ici que je bloque: ces deux implémentations ont besoin de paramètres différents pour savoir ce qui est joué. Dans le cas du RadioSpeakerService, on a besoin d’une URL vers le stream tandis que pour SonosSpeakerService, on a besoin de l’ID du speaker (et potentiellement d’autres paramètres).</p>
<p>Je vois deux solutions pour résoudre ceci:</p>
<ul>
<li>Ajouter un paramètre <code>PlayingRequest</code> à ma méthode <code>whatsPlaying</code> qui serait une interface. Ensuite avoir deux implémentations de cette interface, une pour radio, une pour Sonos. Je pense que ça devrait fonctionner mais ça m’a l’air potentiellement usine à gaz et une mauvaise utilisation du pattern</li>
<li>Plutôt que d’ajouter un paramètre à la méthode, je pourrais ajouter des attributs à mes services concrets et ma méthode pourrait rester sans paramètre. Je n’aime pas cette solution non plus car idéallement, je voudrais que mes services soient des composants Spring que je peux instancier une seule fois plutôt qu’une fois par requête.</li>
</ul>
<p>Je serais curieux d’avoir votre avis si il y a d’autres solutions que je n’aurais pas envisagées qui vous semblent adéquates pour résoudre mon problème. Ou si une des deux solutions présentées vous semblent pas si mauvaise que ça.</p>
<p>Merci d’avance !</p>N'injecter qu'une seule dépendance dans le constructeur du Bean-Service ?, message #2533812023-12-19T23:27:23+01:00Herbe/@Herbehttps://zestedesavoir.com/forums/sujet/17258/ninjecter-quune-seule-dependance-dans-le-constructeur-du-bean-service/?page=1#p253381<p>Oui en fait j’ai été induit en erreur par le fait que je me situais dans une classe de test, où je mocke les dépendances et où je ne demande pas à Spring de les injectés (d’où le fait que je souhaitais instancier moi-même).</p>
<p>Dans le tunnel d’exécution hors-tests, en effet, Spring gère tout de A à Z. Et ma question est alors un non-sens.</p>N'injecter qu'une seule dépendance dans le constructeur du Bean-Service ?, message #2533802023-12-19T23:19:30+01:00Migwel/@Migwelhttps://zestedesavoir.com/forums/sujet/17258/ninjecter-quune-seule-dependance-dans-le-constructeur-du-bean-service/?page=1#p253380<p>Lorsque tu annotates tes classes avec <code>@Service</code> (ou <code>@Component</code> et autres), tu demandes à Spring de gérer ces beans pour toi. Donc si dans une autre classe, tu as besoin de ce bean, Spring pourra te le fournir.</p>
<p>Donc quand tu dis que tu veux exécuter <code>new EmployeeService("bidule");</code>, ça va à l’encontre de ce principe. En demandant à Spring de gérer tes beans, tu lui demandes de créer les instances nécessaires et de te le fournir lorsque tu en as besoin. Donc si tu as besoin de bean, tu demandes à Spring, tu ne le crées pas toi-même "à la main".</p>
<p>Dans le cas que tu présentes, il faudrait plus de détails sur l’utilité de cette classe et de ce paramètres. En particulier, il serait bon de savoir à quelle fréquence tu devrais créer un nouveal EmployeeService. Une seule fois au démarrage de ton application ? Une fois par requête ? Plusieurs fois? Selon les cas, tu pourrais:</p>
<ul>
<li>Passer cette chaine de caractères en tant que paramètres aux méthodes de EmployeeService qui en ont besoin</li>
<li>Si cette valeur est statique, utiliser <code>@Value</code></li>
<li>Ne pas laisser Spring gérer ce service en particulier (donc enlever l’annotation <code>@Service</code>) et le créer à la main. Tu pourrais avoir quelque chose du genre</li>
</ul>
<div class="hljs-code-div hljs-code-java"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span></div><pre><code class="hljs language-java"><span class="hljs-meta">@Component</span>
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">EmployeeServiceFactory</span> </span>{
<span class="hljs-keyword">private</span> <span class="hljs-keyword">final</span> DepartmentService departmentService;
<span class="hljs-meta">@Autowired</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-title">EmployeeServiceFactory</span><span class="hljs-params">(DepartmentService departmentService)</span> </span>{
<span class="hljs-keyword">this</span>.departmentService = departmentService;
}
<span class="hljs-function"><span class="hljs-keyword">public</span> EmployeeService <span class="hljs-title">getEmployeeService</span><span class="hljs-params">(String additionalParameter)</span> </span>{
<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> EmployeeService(additionalParameter, departmentService);
}
}
</code></pre></div>
<p>Cette dernière solution est sans doute celle qui répond le mieux à tes critères mais qui personnellement me semble la moins "Spring-friendly".</p>N'injecter qu'une seule dépendance dans le constructeur du Bean-Service ?, message #2533792023-12-19T22:47:01+01:00Herbe/@Herbehttps://zestedesavoir.com/forums/sujet/17258/ninjecter-quune-seule-dependance-dans-le-constructeur-du-bean-service/?page=1#p253379<p>Hello,</p>
<p>Voici un exemple pour illustrer ma question :</p>
<div class="hljs-code-div hljs-code-java"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span></div><pre><code class="hljs language-java"><span class="hljs-meta">@Service</span>
<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">EmployeeService</span> </span>{
<span class="hljs-keyword">private</span> <span class="hljs-keyword">final</span> DepartmentService departmentService;
<span class="hljs-keyword">private</span> <span class="hljs-keyword">final</span> String additionalParameter;
<span class="hljs-meta">@Autowired</span> <span class="hljs-comment">// CETTE ANNOTATION EST OPTIONNELLE DEPUIS UNE CERTAINE VERSION DE SPRING</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-title">EmployeeService</span><span class="hljs-params">(
String additionalParameter,
DepartmentService departmentService
)</span>
</span>{
<span class="hljs-keyword">this</span>.departmentService = departmentService;
<span class="hljs-keyword">this</span>.additionalParameter = additionalParameter;
}
</code></pre></div>
<p>Le plugin Spring d’Intellij IDEA me dit que "Could not autowire. No beans of 'String' type found.", à juste titre puisque Spring va tenter d’injecter ces deux dépendances. Or, je souhaiterais que le deuxième paramètre ne soit pas une dépendance à injecter justement, mais une simple chaîne de caractères.</p>
<p>Cela signifie donc que je devrais pouvoir exécuter ça : <code>new EmployeeService("bidule");</code>, sans avoir besoin de spécifier le second paramètre, puisque Spring le ferait lui-même.</p>
<p>Sauf que je ne comprends pas comment faire. Je sais qu’il y a l’annotation <code>@Value</code> mais visiblement ce n’est pas non plus ce que je recherche. J’ai l’impression que dès qu’on déclare un Bean de type Service, on est obligé de subir la DI sur absolument tous les paramètres du constructeur, ce qui est bizarre.</p>
<p>Merci beaucoup et bonne soirée !</p>
<p>Jars</p>Javaquarium, message #2519182023-09-03T02:37:59+02:00maraboutsafari/@maraboutsafarihttps://zestedesavoir.com/forums/sujet/447/javaquarium/?page=7#p251918<p>FAIRE REVENIR SON EX, RETOUR D’AFFECTION, RETOUR D’AFFECTION RAPIDE, RETOUR D’AFFECTION EN 72H</p>
<p>Votre partenaire ne veut plus de vous et vous laisse tomber…
Vous êtes largué(e) et vous fondez en larmes Pourtant, ce n’est pas la fin du monde, même si vous avez cette impression en ce moment
Pour ceux qui souhaitent reconquérir son ex grâce au maraboutage, la première étape à faire sera de trouver un bon et vrai marabout africain.
En effet, avec le besoin accru des gens en termes de maraboutage, il n’est pas rare que des profiteurs, ne connaissant rien du milieu, surgissent pour vous dérober votre portefeuille. C’est pourquoi, afin de garantir les résultats en matière de retour affectif, assurez-vous de vous adresser à un vrai sage doté de pouvoirs et de dons maraboutiques.
Avant de vous confier à quelconque marabout, prenez le temps de vous renseigner.
Si vous recherchez un vrai marabout qui pourra vous aider dans votre quête, le medium sérieux compétent SAFARI Tidiane, entre autres, dispose des dons nécessaire pour vous faire vivre le vrai retour affectif par magie blanche.</p>
<p>Contactez Maître Marabout SAFARI Tidiane par:
Tel/WhatsApp : 00229 63 39 25 31
E-Mail : maitremaraboutsafari @ gmail.com
Site web: <a href="http://www.maitre-marabout-africain-safari-france.fr/">http://www.maitre-marabout-africain-safari-france.fr/</a></p>Compression en java, message #2507752023-06-09T11:07:26+02:00ache/@achehttps://zestedesavoir.com/forums/sujet/16996/compression-en-java/?page=1#p250775<p>Une solution serait d’embarquer la BDD SQLite dans un cache à télécharger lors du premier lancement de l’application. Une avantage est qu’en cas de mise à jour des données, tu n’as pas besoin de faire de mise à jour de l’application.</p>
<p>Ça demande d’utiliser un CDN plutôt que d’embarquer la BDD dans l’application.</p>
<p>Une autre solution encore serait de compresser le contenu de la BDD.</p>
<p>Pour mon cas: <a href="https://zestedesavoir.com/forums/sujet/13617/gros-dictionnaire/">https://zestedesavoir.com/forums/sujet/13617/gros-dictionnaire/</a>
Chaque entrée SQLite était compresser avec msgpack.</p>
<p>Les deux solutions ne s’excluent pas.</p>
<p>PS: Assures-toi de bien compiler en mode release également. Je suppose que c’est déjà le cas mais parfois on oublie.</p>Compression en java, message #2507732023-06-09T10:56:41+02:00mayugloire/@mayugloirehttps://zestedesavoir.com/forums/sujet/16996/compression-en-java/?page=1#p250773<p>Bonjour la grand famille je suis développeur mobile( java ). J’ai déjà quelques applications sur Google play store mais je suis limitée sur un point essentiel qui est d’avoir une application que sa taille est minisable mais hélas je fais plus de six mois sans solution. Bref mon application et une application similaire utilisé le même contenu mais la mienne sa taille est importante ( 10 Mb) et la tienne 1.7Mb je veux réduire la taille de la mienne. J’ai appliqué toute les solutions que j’ai vu sur internet mais sans solution.
Cordialement</p>Recommendation : API Java de requête Google (sites de presse américains), message #2507292023-06-06T14:28:55+02:00newsdataapi/@newsdataapihttps://zestedesavoir.com/forums/sujet/11528/recommendation-api-java-de-requete-google-sites-de-presse-americains/?page=1#p250729<p>As you know Google News Search API is no longer available, I have found the best alternative to this which is <a href="https://newsdata.io/google-news-api">Google News API</a> powered by NewsData.io</p>Javaquarium, message #2503362023-05-08T13:53:07+02:00gymer01/@gymer01https://zestedesavoir.com/forums/sujet/447/javaquarium/?page=7#p250336<p>Javaquarium is a virtual aquarium simulation game written in the Java programming language. It allows users to create and customize their own aquariums, add fish and other creatures, and watch them interact with the environment. The game is a popular example of object-oriented programming principles and GUI programming in Java<a href="https://mygymadvisor.com/">.</a></p>fonctions arguments et valeur de retour à type variable, message #2500012023-04-17T13:27:15+02:00Rintonala/@Rintonalahttps://zestedesavoir.com/forums/sujet/16770/fonctions-arguments-et-valeur-de-retour-a-type-variable/?page=1#p250001<p>Bonjour,
Je voudrais savoir svp comment je peux récupérer une partie de la valeur que j’ai stocké dans une variable avec JAVA? voici mon code :
package com.jeu.projetjava.examen;
import com.jeu.projetjava.examen.Player;
import com.jeu.projetjava.examen.Weapon;
import java.util.Scanner;</p>
<p>public class Execution{</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span><span data-count="29"></span><span data-count="30"></span><span data-count="31"></span><span data-count="32"></span><span data-count="33"></span><span data-count="34"></span><span data-count="35"></span><span data-count="36"></span><span data-count="37"></span><span data-count="38"></span><span data-count="39"></span><span data-count="40"></span><span data-count="41"></span><span data-count="42"></span><span data-count="43"></span><span data-count="44"></span><span data-count="45"></span><span data-count="46"></span><span data-count="47"></span><span data-count="48"></span><span data-count="49"></span><span data-count="50"></span><span data-count="51"></span><span data-count="52"></span><span data-count="53"></span><span data-count="54"></span><span data-count="55"></span><span data-count="56"></span><span data-count="57"></span><span data-count="58"></span><span data-count="59"></span><span data-count="60"></span><span data-count="61"></span><span data-count="62"></span><span data-count="63"></span><span data-count="64"></span><span data-count="65"></span><span data-count="66"></span><span data-count="67"></span><span data-count="68"></span><span data-count="69"></span><span data-count="70"></span><span data-count="71"></span><span data-count="72"></span><span data-count="73"></span><span data-count="74"></span><span data-count="75"></span><span data-count="76"></span><span data-count="77"></span><span data-count="78"></span><span data-count="79"></span><span data-count="80"></span><span data-count="81"></span><span data-count="82"></span><span data-count="83"></span><span data-count="84"></span><span data-count="85"></span><span data-count="86"></span><span data-count="87"></span><span data-count="88"></span><span data-count="89"></span><span data-count="90"></span><span data-count="91"></span><span data-count="92"></span><span data-count="93"></span><span data-count="94"></span><span data-count="95"></span><span data-count="96"></span><span data-count="97"></span><span data-count="98"></span><span data-count="99"></span><span data-count="100"></span><span data-count="101"></span><span data-count="102"></span><span data-count="103"></span></div><pre><code class="hljs language-text">public static void main(String[]args)
{
/* Création de variable pour stocker mes données*/
System.out.println("Welcome on Battle Weapon!");
System.out.println("________________________________________________________________________");
/* Initialisation de player*/
Player player1 = new Player("Rintonala",100,50 ,"Sabre");
Player player2 = new Player("Rajao",100,50,"Flèche");
Player player3 = new Player("Raly",100,50,"épée");
Player player4 = new Player("Rakoto",100,50,"Lance pierre");
/* Initialisation of weapon*/
Weapon weapon1 = new Weapon("Sabre",40);
Weapon weapon2 = new Weapon("Flèche",20);
Weapon weapon3 = new Weapon("épée",50);
Weapon weapon4 = new Weapon("Lance pierre",30);
/* Affichage et choix des deux joueurs */
String answer1 = " ";
String answer2 = " ";
//Premier boucle tant que l'utilisateur ne choisit pas une réponse entre A,B,C,D il resaisit la valeur
do
{
System.out.println("Choose first player between A,B,C,D : ");
Scanner ptscan = new Scanner(System.in);
answer1 = ptscan.nextLine().toUpperCase();
if (answer1.equals("A"))
{
//int damage = weapon1.getDamagew() ;
//player1.damage( damage ) ;
answer1 = ("A -" + player1.getName() + "/ Number of life : " + player1.getNb_life() + " / Weapon: " + weapon1.getName() + " / Damage: " + weapon1.getDamagew());
System.out.println(answer1);
break;
}
else if (answer1.equals("B"))
{
answer1 = ("B -" + player2.getName() + "/ Number of life : " + player2.getNb_life() + " / Weapon: " + weapon2.getName() + " / Damage: " + weapon2.getDamagew());
System.out.println(answer1);
break;
} else if (answer1.equals("C"))
{
answer1 = ("C -" + player3.getName() + "/ Number of life : " + player3.getNb_life() + " / Weapon: " + weapon3.getName() + " / Damage: " + weapon3.getDamagew());
System.out.println(answer1);
break;
} else if (answer1.equals("D"))
{
answer1 = ptscan.nextLine();
answer1 = ("D -" + player4.getName() + "/ Number of life : " + player4.getNb_life() + " / Weapon: " + weapon4.getName() + " / Damage: " + weapon4.getDamagew());
System.out.println(answer1);
break;
}
else
{
System.out.println("No player for this letter!");
}
} while (true);
//Deuxième boucle tant que l'utilisateur ne choisit pas une réponse entre A,B,C,D il resaisit la valeur
System.out.println("________________________________________________________________________");
do {
System.out.println("Choose second player between A,B,C,D : ");
Scanner ptscan1 = new Scanner(System.in);
answer2 = ptscan1.nextLine().toUpperCase();
if (answer2.equals("A"))
{
answer2 = ("A -" + player1.getName() + "/ Number of life : " + player1.getNb_life() + " / Weapon: " + weapon1.getName() + " / Damage: " + weapon1.getDamagew());
System.out.println(answer2);
break;
} else if (answer2.equals("B"))
{
answer2 = ("B -" + player2.getName() + "/ Number of life : " + player2.getNb_life() + " / Weapon: " + weapon2.getName() + " / Damage: " + weapon2.getDamagew());
System.out.println(answer2);
break;
} else if (answer2.equals("C"))
{
answer2 = ("C -" + player3.getName() + "/ Number of life : " + player3.getNb_life() + " / Weapon: " + weapon3.getName() + " / Damage: " + weapon3.getDamagew());
System.out.println(answer2);
} else if (answer2.equals("D"))
{
answer2 = ("D -" + player4.getName() + "/ Number of life : " + player4.getNb_life() + " / Weapon: " + weapon4.getName() + " / Damage: " + weapon4.getDamagew());
System.out.println(answer2);
break;
} else
{
System.out.println("No player for this letter!");
}
}while (true);
//Affichage des deux joueurs séléctionnés si valeur=correctes
System.out.println("________________________________________________________________________");
System.out.println(answer1+ "\n*****ATTAQUE******\n" + answer2);
System.out.println("________________________________________________________________________");
}
</code></pre></div>
<p>}</p>
<p>//Et je voudrais juste récupérer une partie de la valeur que j’ai stocké dans la variable answer1, comme par exemple juste le nombre de vie que je souhaite afficher après mais je ne sais pas commment m’y prendre.merci </p>