Gardons cela à l'esprit Quoi de neuf dans Java 9

Cet article est l'article du premier jour du Calendrier de l'Avent SRA 2017.

Contenu de la version Java 9

salut! Voici Sasaki de la division du Kansai. En septembre 2017, Java 9 est sorti. Java 8 a attiré beaucoup d'attention en raison du contenu qui a un impact important sur le codage, comme les expressions Lambda, les méthodes d'interface par défaut, les références de méthode et l'ajout d'Optionnel. Grâce à cela, même si vous ne regardez pas les dernières informations sur Java, il semble que beaucoup de gens connaissent certaines nouvelles fonctionnalités de Java 8. Cependant, en ce qui concerne Java 9, les personnes qui ne collectent pas activement d'informations ne semblent pas savoir quel type de version a été faite, et pour ceux qui n'ont pas le temps pour le moment, l'un des contenus de la version Java 9 qui "Keep this alone" Je voudrais vous présenter le département. «C'est tout», voici mon jugement personnel, il peut donc y avoir des désaccords, mais dans ce cas, je vous serais reconnaissant de bien vouloir le compléter par des commentaires. (Autre application d'alimentation)

jshell Vous pouvez maintenant utiliser l'outil REPL jshell. jshell.JPG Vous pouvez omettre le point-virgule à la fin de la phrase et vous n'avez pas besoin de créer une classe ou une méthode pour exécuter du code Java. (Bien sûr, vous pouvez créer des classes et des méthodes) De plus, dans l'exemple ci-dessus, après avoir créé un objet Random, saisissez " r.`` `" et appuyez sur la touche TAB pour terminer la méthode. De plus, il existe de nombreuses commandes dans jshell qui commencent par "/ (slash)". Voici quelques-uns

Fonction de recherche Javadoc

Vous pouvez maintenant utiliser la fonction de recherche dans Javadoc. javadoc_search2.JPG Vous pouvez effectuer une recherche incrémentielle telle que le nom du package et le nom de la classe en entrant un mot-clé dans la fenêtre de recherche en haut à droite. Pour les noms de packages et les noms de classes, je pense que la fonction de recherche du navigateur a été capable de le faire dans une certaine mesure, mais vous pouvez également rechercher des noms de méthodes soudainement. javadoc_search3.JPG

Système de module

En fait, la caractéristique principale de Java 9 est le "système de modules". Le système de modules est assez ésotérique lorsqu'on essaie de le comprendre en profondeur, mais je vais le garder au minimum ici. Tout d'abord, avant le système de modules, je vais expliquer brièvement les deux problèmes suivants.

JAR hell L'enfer JAR est un problème causé par les applications Java reposant sur de nombreux JAR. Cela dépend de trop de JAR à gérer et vous obtenez une exception ClassNotFoundException au moment de l'exécution, ou vous obtenez une erreur car vous avez le même fichier JAR pour différentes versions.

Le problème d'être négligé

Ce "problème d'avoir du mal à voir trop" a été arbitrairement nommé par moi, mais en Java, les classes incluses dans JAR peuvent être "vues". Vous pouvez contrôler l'accès à des classes telles que privées et publiques, mais vous devez les rendre publiques afin de pouvoir y accéder à partir d'autres packages, et par conséquent, vous pourrez également y accéder à partir d'autres JAR. De plus, le package n'avait pas de contrôle d'accès comme une classe.

module-info.java Le système de modules résout les problèmes ci-dessus. Pour utiliser le système de modules, placez un fichier appelé "module-info.java" dans le répertoire supérieur de src.

src -- kazsharp.lambda_logging.jcl
     |                          |
     |                          -- LambdaLog4jLog.java
     |
     -- module-info.java

Et dans module-info.java, décrivez les modules dépendants, les packages à publier, etc.

module-info.java


module <Nom du module> {
  requires <Nom du module dépendant>;
  exports <Nom du package à publier>;
}

Comme d'habitude, vous pouvez accéder aux packages qui ne sont pas exportés dans votre module, mais les autres modules ne peuvent accéder qu'aux packages exportés. De plus, si plusieurs modules ont le même package, une erreur se produit.

Mesures transitoires

Je m'inquiète pour le système de modules lors de l'utilisation de Java 9

Cela étant dit, il existe une période appelée «mesures transitoires». Les mesures de transition incluent des "modules anonymes" et des "modules automatiques", même si module-info.java n'est pas placé.

Cependant, comme il s'agit d'une mesure transitoire, si vous utilisez Java 9, vous devez le définir de manière appropriée en utilisant module-info.java.

Jusqu'à présent, nous avons introduit le contenu que Java 9 devrait contenir au moins ce montant. Vous devez en savoir plus sur le système de modules et d'autres contenus avant de pouvoir le développer, mais j'espère que cet article vous donnera l'occasion d'en savoir plus sur Java 9.

Recommended Posts

Gardons cela à l'esprit Quoi de neuf dans Java 9
Nouveautés de Java 8
Nouveautés de Java 9,10,11
[Java Bronze] 5 problèmes à garder à l'esprit
L'histoire de Java dans ce monde
Quoi de neuf dans Apache Camel 2.19.0
Utilisons Twilio en Java! (Introduction)
J'ai essayé le nouveau yuan à Java
Pleiades Eclipse 2020-03 Release ~ Java 14 Essayons de nouvelles fonctionnalités!
Définir le délai d'attente HTTP Keep Alive dans le client HTTP Java
Créons un framework Web ultra-simple avec Java
Points à garder à l'esprit lorsque vous vous engagez dans CRuby
Utilisons Java New FileIO! (Introduction, pour les débutants)
Étudions Java
Partition en Java
Changements dans Java 11
java1.8 nouvelles fonctionnalités
Taux circonférentiel à Java
FizzBuzz en Java
[Java] Déclarons les variables utilisées dans la boucle dans la boucle [Variations dans le bloc]
[LeJOS] Programmons mindstorm-EV3 avec Java [Construction de l'environnement partie 2]
Points à noter lors de l'ajout de la guerre à la dépendance
Points à garder à l'esprit lors de l'utilisation de l'instruction if
Ceci et cela pour éditer ini en Java. : inieditor-java