2

そのため、昨日、提供された log.txt に次のようなカンマ区切りのエントリを持つログファイルがありました。

entry1.1,entry1.2,entry1.3
entry2.1,entry2,2,entry2.3
..........................

それで、とても幸せなことに、私は先に進み、ケースクラスを作成しました:

case class LogEntry(
  entry1:String,
  entry2:String,
  entry3:String
)

そして、次のようにケース クラスを読み取りながら、ケース クラスにデータを入力しました。

line.split match {
  case Array(entry1,entry2,entry3) => LogEntry(entry1,entry2,entry3)
}

今日コードを実行したときに問題が発生し、LogEntry オブジェクトが作成されていないことに気付きました。

今日提供された log.txt を見て、エントリが変更されていることに気付きました。

私は今持っています:

entry1.1,entry1.2,entry1.3,entry1.4
entry2.1,entry2,2,entry2.3,entry2.4
...................................

これで、各行に 4 番目のエントリができました。大したことではないように思えますが、4 番目のエントリ (コードの匂い 1) でケース クラスを変更し、パターン マッチ (コードの匂い 2) を変更するだけです。

この状況に対処するためにコードを書く方法を誰かが提案できますか? コードを変更するのではなく、コードを拡張したい。

ありがとう

4

1 に答える 1