J'essaie de convertir la méthode suivante en kotlin mais je ne connais pas la syntaxe équivalente. La classe complète peut être trouvée ici . Je ne sais pas que nous pouvons implémenter cela en kolin.
@GetMapping("/account")
@Transactional(propagation = REQUIRES_NEW)
public HttpEntity<PagedModel<AccountModel>> listAccounts(
@PageableDefault(size = 5, direction = Sort.Direction.ASC) Pageable page) {
return ResponseEntity
.ok(pagedResourcesAssembler.toModel(accountRepository.findAll(page), accountModelAssembler()));
}
private RepresentationModelAssembler<Account, AccountModel> accountModelAssembler() {
return (entity) -> {
AccountModel model = new AccountModel();
model.setName(entity.getName());
model.setType(entity.getType());
model.setBalance(entity.getBalance());
model.add(linkTo(methodOn(AccountController.class)
.getAccount(entity.getId())
).withRel(IanaLinkRelations.SELF));
return model;
};
}
3 Réponses :
Pour convertir le code Java en code Kotlin de manière rapide, vous devez ouvrir le fichier .java que vous souhaitez convertir en kotlin. P>
Aller à Ceci convertira automatiquement votre code Java en code Kotlin. P>
Pour moi, le moyen le plus court est de copier le code Java et de la coller dans le fichier Kotlin de l'IDE. Et l'IDE (Android Studio / Intellij) fera le reste. Cela pourrait faire face à des problèmes pour convertir le code. Pour ce cas, vous devez résoudre ceux manuellement. P>
Voici votre code à Kotlin: Bien sûr, je ne suis pas au courant de certaines de vos classes, il y a donc une chance qu'il ne compile pas. Certaines choses sont très proches de Java, mais de comprendre les autres, vous devez connaître Kotlin :) P> P>
Si vous souhaitez faire plus d'idiomatique, vous pouvez remplacer la variable temporaire code> code> avec un appel à .Apply {...} code> et utilisez un corps d'expression pour éviter de spécifier le retour. taper. Et vous pouvez probablement utiliser it code> au lieu du paramètre code> d'entité code> ou supprimez les paramètres de type explicite. Mais ceux-ci s'entraînent dans des questions de style plutôt que de l'exactitude!
Je ne vois pas une méthode code> par défaut code> (méthode implémentée dans une interface) ici; Quelle est exactement la partie dont vous ne savez pas comment traduire? Les annotations?
La deuxième méthode s'il vous plaît