6 fonctionnalités que j'ai manquées après mon retour de Scala à Java

introduction

Je travaille principalement sur Scala depuis environ deux ans, mais pour diverses raisons, je le développe en Java pour la première fois depuis quelques années, mais je voudrais résumer les fonctions qui m'ont manqué Scala.

Scala est développé en utilisant Scala 2.12.x et Java est développé en utilisant Java 8. Ensuite, cela viendra rapidement. (Puisque c'est l'ordre que j'ai proposé, il n'y a pas de signification particulière dans l'ordre)

Inférence de type

Quand j'écrivais Scala, j'ai omis les types de variables et de méthodes qui ne sont pas exposés à l'extérieur, mais Java ne le permet jamais. Au début, je ne saisis pas du tout le rythme de l'écriture. Depuis Java 10, il peut être omis dans certaines règles (?). Je ne connaissais pas du tout Java car le temps s'était arrêté depuis Java 7.

Renvoie une valeur avec if etc.

J'étais très reconnaissant de retourner à Java. Java a un opérateur ternaire, mais dans les projets sur lesquels je travaillais, il était généralement interdit par convention.

Je l'ai écrit comme ça avec Scala

val mode = if (Expression conditionnelle) "xxx" else "yyy"

Puisque Java ne peut pas renvoyer une valeur

String mode;
if (Expression conditionnelle) {
  mode = "xxx";
} else {
  mode = "yyy";
}

C'est comme ça? Je m'en fichais du tout dans le passé, mais c'était très désagréable de quitter la culture de la réaffectation.

Divers peuvent être omis

Vous pouvez omettre diverses choses dans Scala, mais les trois suivantes sont celles que j'ai le plus oublié d'écrire après avoir écrit Java après un long moment. ; Sur chaque ligne Le dernier «retour» de la méthode Une méthode sans arguments et sans effets secondaires ()

Tapez un alias

Java ne peut pas être renommé lors de l'importation. C'est donc dommage d'utiliser la même classe dans un package différent. Quand j'ai pensé que le nom de la classe était quelque chose de désagréable, je ne pouvais pas changer le nom, alors j'ai pensé que c'était une mesure minutieuse et j'ai décidé de le lire.

Sont d'intégrer des variables dans des chaînes

C'est le bon. (Ça s'appelle un interpolateur)

val name = "James"
println(s"Hello, $name")

Je ne suis pas sûr du type de chaîne de caractères qui sera généré après la concaténation des chaînes de caractères et son emballage avec le formateur, ou j'utilise le format, mais un argument ne suffit pas? N'y en a-t-il pas beaucoup? J'ai eu beaucoup de problèmes comme oublier le format.

Il n'est pas nécessaire d'échapper aux chaînes

C'est ce qu'on appelle le littéral de chaîne brute, et c'est une sorte d'interpolateur. Je traite souvent avec Json à cause de mon travail, mais je peux l'écrire sous le nom de Scala.

val json = """
{
  "id": "12345",
  "name": "James"
}
"""

Avec Java ...

String json = "{\n"
        + "  \"id\": \"12345\",\n"
        + "  \"name\": \"James\"\n"
        + "}";

C'est dur. .. .. Il n'y a pas d'autre choix que d'écrire Json dans l'éditeur et de le coller dans Intellij. (Il a été enregistré car il s'est échappé automatiquement lorsque je l'ai collé sans utilisation)

finalement

Il y avait beaucoup d'autres choses, mais j'oubliais car il y avait trop de lutte contre les effets secondaires. Je vais continuer à travailler avec Java en pensant que je peux écrire comme ça avec Scala.

Recommended Posts

6 fonctionnalités que j'ai manquées après mon retour de Scala à Java
Nouvelles fonctionnalités de Java7 à Java8
Exécuter R à partir de Java Je veux exécuter rJava
Je veux écrire rapidement de java vers sqlite
Changements de Java 8 à Java 11
Somme de Java_1 à 100
De Java à Ruby !!
[Java] Je souhaite calculer la différence par rapport à la date
Comment écrire Scala du point de vue de Java
Migration de Cobol vers JAVA
Je suis allé à Scala Fukuoka 2019!
Connectez-vous de Java à PostgreSQL
De Java inefficace à Java efficace
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
J'ai essayé d'interagir avec Java
Java sera impliqué dès aujourd'hui
De Java à VB.NET - Écriture de notes de contraste
Java, interface pour partir du débutant
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
J'ai essayé de résumer l'apprentissage Java (1)
La route de JavaScript à Java
Appelez l'API Java de TensorFlow depuis Scala
J'ai essayé de résumer Java 8 maintenant
[Java] Conversion d'un tableau à une liste
Introduction à Scala du point de vue Java (basique)
Ce à quoi j'ai pensé lorsque j'ai commencé à migrer de Java vers Kotlin
J'ai essayé de traduire la grammaire de R et Java [Mis à jour de temps en temps]
J'ai essayé de résumer les expressions Java lambda
Convertir l'heure UTC Java en heure JST
Connectez-vous de Java à MySQL à l'aide d'Eclipse
De l'installation d'Eclipse à l'exécution de Java (PHP)
Publier sur Slack à partir de Play Framework 2.8 (Java)
Java: Comment envoyer des valeurs du servlet au servlet
[Java] Flux du code source à l'exécution
Je veux arrêter complètement les mises à jour Java
Introduction à la surveillance à partir de Java Touching Prometheus
Précautions lors de la migration de VB6.0 vers JAVA
Je suis allé au Java Women's Club # 1
[* Java *] Je suis allé au JJUG CCC 2017 Automne
Ce que j'ai appris du calcul monétaire Java
Mémo pour la migration de Java vers Kotlin
Conversion de type du type java Big Decimal au type String
Résumé des points qui m'inquiétaient lors de la migration de Java vers Kotlin
Fonctionnalités Java
Fonctionnalités Java
Je veux que vous utilisiez Scala comme meilleur Java pour le moment
[Java] De deux listes à une liste de tableaux
Upsert du SDK Java vers Azure Cosmos DB
J'ai essayé de faire une authentification de base avec Java
Utiliser les bibliothèques natives de Scala via Java CPP + Java
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
Je souhaite envoyer un e-mail en Java.
Connectez-vous à Aurora (MySQL) depuis une application Java
java j'ai essayé de casser un simple bloc
Pour devenir programmeur VB.net depuis une boutique Java
Migrer de Java vers Kotlin côté serveur + Spring-boot
Je veux utiliser java8 forEach avec index
Comment obtenir une classe depuis Element en Java