見出し画像

【Console Application】ファイルとデータベース 212【学習記】

ファイルとかデータベースの話🤤

Q.
型を合わせて代入するだけ…?
A.
Java では配列に対しても get() なんだけど同じ関数のままにして内部の av.arguments を取り出すクラスを作ってたわけなんだけど、 av.arguments が String[] なら ゲタ側の arguments も別に偽装しないでそのまま av.arguments 入れればいいんじゃないの?っていう気付き🤤
リファレンス渡しになると思うので恐らくこちら新たに気付いた方式の方がメモリも節約できると思う🤔

→ドキュメントでは String になっている readline だがどうやら普通に終端では null が返ってくる事が判明するの巻🙄

#学習記 #Kotlin
#readline

【Console Application】ファイルとデータベース【学習記】
仕様
https://note.com/sayka/n/nb8a67fa90a64?magazine_key=m7bb64c6a359f#br1mB

仕様
レコード
・レベル
 1-12
・難易度
 b,n,h,a,l
・曲名
・ランプ
 -,x,a,e,c,h,e,f

オプションスイッチ
-u file.csv # 更新(略値)
 ファイル名だけ指定した場合更新処理と見做す
-d file.csv # 削除
-p # csv 出力(略値)
 何も指定せずに起動した場合出力処理と見做す
-v # バージョン
-h # ヘルプ

----備忘録
Java の main 側の AnalyzeArgs.arguments は String[] にして av.arguments 渡すだけ
status も忘れずに


デバグ

なんかオプションスイッチの判定がおかしいっぽいけど…🤔

ここらしい😑
それじゃブレイク張って見てみようず🤤

この段階だと勿論良くわからない🙄
ひとまずオプションが -h で入ってきててそこは正しそうな気がしないでもないけど Java でも -h だっけ? h だっけ?ってなってるのでとりあえず潜る😞

………値を取り出してるだけなのですぐ戻ってきて -h なんて無いぞって言われる…のか?🤔

………

………

………

あ、そうだった、これ Java だと下駄で作った main 側の橋渡しで列挙に変換してるんだった🙄
なんか似た誤りがちょいちょい起きるからゲタもちゃんと移植した方が今回は良さそうかな😞

………あれ?🤔
arguments 、変な小技 get の橋渡しクラス作ってるけど 型同じにして入れるだけでいいじゃんって書き直したんだけどこれ、 Java でも型を合わせて入れるだけでは…?🙄
options は列挙に変換してるから要るけど🤔

とりあえず Kotlin 側はこれでヨシ🤤
後はガワのクラスの方を使う様に書き換えたら動くかな?🤔

大丈夫そうかな🤤
それじゃアーティファクト jar かもん🤪

はい………以前疑問になってた「 readline() の返り値は String? なのでは🤔」問題😞
これが答え🙄
ラムダで while の判定式内に代入ごと書いてる記事を見た時も String? で処理していたのでなんでコンパイル通るんだろねってなったけどどうやら「コンパイルは通るけど null が来たら落ちる」ってだけだった😞
これ、ぬるぽ落ちより酷い仕様だわ🙄
まぁ、懸念が発生しててそのとおりだったってだけだから酷いもなにも無いんだけど🤪


次回は

この readline 周りを直すぽ🤤

この記事が気に入ったらサポートをしてみませんか?