Au moment de la publication de cet article, j'ai mentionné que les annotations «NonNull» / «Nullable» dans «org.springframework.lang» fonctionnaient également, mais c'était incorrect. Lorsque ces annotations ont été utilisées, la notation complémentaire sur l'EDI a changé, mais seul un avertissement a été émis au moment de la compilation.
Nous nous excusons pour la correction.
En utilisant des annotations telles que «NotNull» / «Nullable» dans «org.jetbrains.annotations», vous pouvez gérer les champs «Java» de «Kotlin» à «Kotlin».
Voir ci-dessous pour d'autres annotations qui peuvent également être utilisées.
Tout ce que vous avez à faire est de le donner comme suit.
import org.jetbrains.annotations.NotNull;
public class Sample {
private String field;
@NotNull
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
}
Avant d'accorder, il est traité comme String!
Type (type de plate-forme) sur Kotlin
comme indiqué dans l'image ci-dessous.
Après avoir accordé, vous pouvez voir qu'il est traité comme un type String
.
Vous pouvez également le traiter comme un type «Chaîne?» En modifiant l'annotation en «Nullable» comme indiqué ci-dessous.
Changer en Nullable
- import org.jetbrains.annotations.NotNull;
+ import org.jetbrains.annotations.Nullable;
- @NotNull
+ @Nullable
public String getField() {
Lors de l'annotation d'un objet de type POJO, il est préférable de le donner au getter. Comme vous pouvez le voir sur l'image, si vous la secouez sur le terrain, vous serez en colère contre "Initialiser".
Lors de l'introduction de Kotlin
dans un projet Java
ou de l'utilisation du framework Java
de Kotlin
, il se comporte souvent comme "Initialiser un objet avec un constructeur sans valeur-> Injecter chaque valeur avec un setter". Il peut y avoir des cas.
Dans un tel cas, si vous essayez d'écrire l'objet cible dans Kotlin
, vous devez faire beaucoup d'efforts, et vous pouvez dire:" Est-ce significatif d'écrire dans Kotlin
?"
Si vous avez un objet Java
existant et que vous avez besoin de tout réécrire un par un, l'effort n'est pas stupide.
C'est une bonne idée de créer un utilitaire qui peut être mappé à la classe Data
depuis le début, mais le coût initial sera plus élevé que la réécriture.
Je pense qu'il serait plus intelligent d'annoter simplement le getter si vous voulez faire cela (à moins que vous ne vouliez que tout soit complet Kotlin
, bien sûr, mais le comportement que vous pouvez obtenir est le même. Si c'est le cas, je pense que vous pouvez l'écrire séparément en Java
).
Recommended Posts