Support companion object factory method
@backuitist がすでに取り組んでいます。
2015年9月8日 から。
評価
この issue はまだ評価されていません。
説明
Sometimes you want to perform some validation before constructing an object. A good place for that is the method factory on the companion object:
class ParamsNeedValidation private(param1: Param1, param2: Param2)
object ParamsNeedValidation {
def apply(param1: Param1, param2: Param2) : ParamsNeedValidation = {
// validate param1 & param2
new ParamsNeedValidation(param1, param2)
}
}
When the primary constructor is found to be private, macwire could give the companion object a chance and IF it has a single apply method, try it.
So we would end up with this:
lazy val pnv = wire[ParamsNeedValidation]
Turned into
lazy val pnv = ParamsNeedValidation(param1, param2)
If the companion object has more than one apply method, a compilation error is returned:
ParamsNeedValidation constructor is private and its companion object has more than one apply method:
- apply(param1, param2)
- apply(param3)
If the companion object has no apply method, then we would fail with the usual:
ParamsNeedValidation constructor is private
- 主要言語
- Scala
- スター
- 1.3k
- フォーク
- 77
- 平均マージ
- 9分
- マージ済み PR(30日)
- 4
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
softwaremill/macwire のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
softwaremill/macwire#412 · コメント 3 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
softwaremill/macwire#391 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
softwaremill/macwire#301 · コメント 2 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
softwaremill/macwire#281 · コメント 5 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
softwaremill/macwire#278 · コメント 3 件 ·
softwaremill/macwire の issue をすべて見る
似ている issue
-
Area: Excel support
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
orbeon/orbeon-forms#7893 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
lichess-org/lila#21788 · コメント 2 件 ·
-
area:Iceberg area:writer documentation requires-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
apache/datafusion-comet#6147 ·
-
feature
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
GiganticMinecraft/SeichiAssist#2978 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
chipsalliance/rocket-chip#3833 ·