Open1
【kotlin】data classでファクトリメソッドをなぜ実装しないのか?なぜprivate constructorにしないのか?
結論:
※2023年時点
data class
を作成するともれなくpublicであるcopy()
メソッドが実装されるので、private constractorにしたところで意味がない。
(原文)
Proposed solution
The Team has agreed that this behavior should be considered a "design bug". As a result, the intention is to:
- Change the default visibility of copy to coincide with that of the constructor,
- Provide a migration plan to ensure a smooth transition.
(DeepL訳)
解決策の提案
チームは、この挙動を「設計上のバグ」とみなすことに合意した。その結果、次のような意図がある:
- コピーのデフォルトの可視性をコンストラクタの可視性と一致するように変更する、
- スムーズな移行を確実にするための移行計画を提供する。
data classでもprivate constructorを使いたい、という意見
現状やろうとすると警告が出る模様。