★★Java質問・相談スレッド182★★

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウウー Sa73-AAco [106.132.135.194])
垢版 |
2018/11/19(月) 11:37:06.10ID:C68x9bSia

プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 (p)ttp://www.wikiroom.com/java/?path,classpath
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。

前スレ
★★Java質問・相談スレッド181★★
https://mevius.5ch.net/test/read.cgi/tech/1518252580/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
565デフォルトの名無しさん (ワッチョイ 178f-WuPA [118.7.1.66])
垢版 |
2019/11/07(木) 22:48:14.42ID:k1TXPQAL0
>>564
目的は自分がオブジェクト指向を理解する為です。
簡単な例で理解したいと思いまして。

プログラムをこれ以上修正する要件はありません。
2019/11/08(金) 07:26:56.73ID:98dXBVGk0
なるほど勉強用ね
商品と商品たちはそれぞれクラスにする
ItemクラスとItemListクラス
ただし一般的な用件ならjava.util.Listで十分なので商品たちはList<Item>とすればいい
JavaでOOPらしくしたいなら配列はまず使わない

ほかに思考のヒントとしては
ItemクラスとProductクラスを分けてhas-a関係にするとか
商品IDクラスや製造日クラスの導入を検討するなど
製造日クラスも実用上はjava.time.LocalDateあたりで十分
日付の類いをStringのまま取り回すのはやはりOOPらしくはない
2019/11/08(金) 12:59:41.86ID:DC2XQdtiM
>>565
オブジェクト指向でもそうじゃなくても、モデルが適切かどうかは、解こうとしてる問題に対しての有用性で判断するもの。

データに「商品」があるからとあってそれをクラスとしてモデリングすべきかどうかは、それが解こうとしてる問題に対して有用がどうかで判断する。

今回のケースではXXXReader、XXXWriter、XXXImporter、XXXConverterみたいなクラスから考えた方が適切。
568デフォルトの名無しさん (ワッチョイ 178f-WuPA [118.7.1.66])
垢版 |
2019/11/08(金) 16:27:50.10ID:yOhc3kk50
>>567
その場合、商品データはどうやって管理しますか?
2019/11/09(土) 10:53:42.88ID:3R32mnhiM
>>568
テキストファイル

Javaで書かなくてもをExcelのインポート機能でも似たようなこと出来るよね? Excelには商品クラス定義されてないにも関わらず。

テキストデータの各行を特定の型として捉えないと困るような処理(製造日を特定のルールで加工するとか商品マスタに登録されてないIDはエラーにするとか)がなければ、不必要に入力データの中身に依存せず、汎用的なスペース区切りのテキスト処理として考える。

各行の値に依存した処理が必要なら商品をクラスや構造体にして型として扱うがその場合でもXXXConverterのconvertメソッドのようなプログラムの大枠は変わらないからそっちから先に考えた方がいい。
570デフォルトの名無しさん (ワッチョイ 178f-WuPA [118.7.1.66])
垢版 |
2019/11/09(土) 17:55:14.88ID:rZdHNCVm0
あくまでも勉強用に小さなデータでクラス概念を理解しようとしているので、
Excelのデータ区切りは考えていません。

聞きたかったのは、テキストデータを読み込むとして
どのようにデータを保持するのかです。
単に配列に入れて管理ならもう作ってあります。

>566さんのやり方で1度作ってみます。
2019/11/09(土) 20:58:38.34ID:DEKDELV2M
>>570
Readerで読みつつWriterで書き出せばいいから、配列とかにデータを保持する必要ないよ

商品クラスから考えて作りたいならそれでやってみて試行錯誤から学べばいい
572デフォルトの名無しさん (アウアウウー Sa5b-WuPA [106.132.131.88])
垢版 |
2019/11/10(日) 10:36:56.34ID:wEe+Asgia
すみません。
大事なことを言い忘れてました。

商品のデータは1列に書かれていません。
商品名は必ず先頭にあるのですが、その情報は複数行にわかれて書かれています。
例えば、

商品A 重さ 型版
商品A 注文日
など。

しかも商品によって書き方はバラバラで、
唯一の規則性は商品名から必ず始まる事とスペース区切なことです。
商品の情報が何行に記述されるか、
一行に何個情報がスペース区切りされているかは、ランダムとしか言えません。
(本当は規則があるんでしょうけど・・・)

ということで、商品クラスを作って実装しました。
これは配列より暗黙的な部分が少なくていい感じです。

ありがとうございました。
非常に勉強になりました。
573デフォルトの名無しさん (ワッチョイ 9f94-E5K3 [123.48.64.125])
垢版 |
2019/11/10(日) 21:13:49.63ID:guOKKfCD0
moduleでパッケージAを非公開、パッケージBを公開、
パッケージBのクラスのAPIがパッケージAのクラスを返す、
とした場合に外部のプログラムはそのAPIを利用できますか?
574デフォルトの名無しさん (ワッチョイ 9f61-vPHs [61.245.59.179])
垢版 |
2019/11/12(火) 09:32:48.20ID:jtOqdKRJ0
そんなことできたら、moduleの意味が全くなくなる。
典型的なWrapperパターンの出番(ProxyとかAdapterをBに用意する)
2019/11/12(火) 10:37:47.46ID:QKLh6vCVr
インターフェイスを公開すればいいんじゃないの
576デフォルトの名無しさん (ワッチョイ 9f94-QzFo [123.48.64.125])
垢版 |
2019/11/12(火) 21:55:14.70ID:JzWcTGKB0
>>574
Wrapperクラスを使えば直接対象クラスにアクセスしないからmoduleの制約に引っかからないという事?

>>575
usesとかprovidesで指定されたインターフェースが非公開のクラスを返す場合、
あるいは公開されたクラスを返すとしても返値のクラスのgetterで非公開のクラスが返される場合、
アクセスできるんだろうか?できないんだろうけど。

インターフェースXが公開、実装Yが非公開の場合、YのオブジェクトをXとして使用する事はできるんだろうか?

というのは、良く連鎖的にクラスの依存関係が生じていくわけで、
moduleで外部プログラムとの連携をやろうとしたらほとんどの場合
大量のパッケージを公開設定しなきゃいけないんじゃないか?と。

moduleをうまく使うテクニックみたいなのはあるんだろうか。
例えば公開用インターフェースをまとめたクラスを作ってそれだけを公開するとか?
でも、そのインターフェースから非公開のクラスに辿れてしまったら機能しないんだよな。
577デフォルトの名無しさん (ワッチョイ 9702-QzFo [124.208.53.194])
垢版 |
2019/11/13(水) 19:53:24.72ID:UXUUsSoF0
JAVAの求人が多いと知り、
就職の為にJAVAを学ぼうと思うんですが、
本屋さんのプログラミング書籍の棚のJAVA本が充実しすぎて困ったぁ!
僕はどれを買えばいいんですかね?
2019/11/13(水) 20:06:36.56ID:ESFhNQze0
>>577
どれを買っても一緒だから独断と偏見で一冊買って最後まで読め
コンピューターサイエンスの本に関して一般的に言えることだが一冊でオールマイティな本なんて存在しないし存在し得ない
何冊か買っては読み買っては読みしていくうちに自ずから獲得するべき知識がわかってくるものだ

ひたすら精進あるのみ
2019/11/13(水) 22:06:42.16ID:PTDdhEKV0
Java と言えば、オブジェクト指向を学ぶ、歴史を変えた本!
スッキリわかる Java入門 第2版、2014

この本の大ヒットにより、革命が起きて、
あちこちへ、スッキリシリーズが浸透していった!

たのしいRuby 第6版、2019/3/19
未だに、プログラミング・オブジェクト指向を学ぶには、この2冊がベスト!

ただし、Java の就職は、建設業と同じで、5大SIer を頂点とした土方系!
1社経由するごとに、3割抜かれる!

貴族・奴隷、Waterfall 型、上流・下流の階級制度!
顧客は上流としか、契約を結ばない

一方、Ruby on Rails は、モダンな自社サービスWeb 系だから、抜かれない!
2019/11/13(水) 22:50:15.53ID:R4jPTy5Y0
ム板にいるとrubyがどんどん嫌いになる
581デフォルトの名無しさん (ワッチョイ 9702-Kn9a [124.208.53.194])
垢版 |
2019/11/13(水) 23:48:10.19ID:UXUUsSoF0
>>578
了解です!
今はあまり深く考えないでおきます
582デフォルトの名無しさん (ワッチョイ e361-Ks/Y [123.230.68.41])
垢版 |
2019/11/14(木) 10:57:04.52ID:gpjLruj80
>>576
exportされたクラスで、
public void X openMethod() {return new Y();}
public void Y openMethod() {return new Y();}
とした場合、
上は全くOK。
下は、client側で”import”しない限りはOK(コンパイルは通ってしまう)。
var変数への代入も可能。
けれどメンバーには一切アクセスできない(こっちはコンパイルエラー)。
export側でコンパイルエラーにならない理由はわからん。
583デフォルトの名無しさん (ワッチョイ e394-zGDE [123.48.64.125])
垢版 |
2019/11/14(木) 11:14:29.68ID:axmqwQma0
>>582
レスありがとう

じゃあリフレクションでYにアクセスする事はできないけどXとしてYを使用する事はできると。
JPMSはリフレクションでも非公開インターフェースにアクセスできないようにするのが売りだろうから。

リフレクションで任意のクラスにアクセスできないとなると
デバッガみたいなものが作りづらくなりそうだ。

JPMSはやはり納得しづらい感じがある
584デフォルトの名無しさん (ワッチョイ e394-zGDE [123.48.64.125])
垢版 |
2019/11/14(木) 11:16:42.35ID:axmqwQma0
後者はコンパイル時に問題が見つかりにくくなっているという問題もあるのか。
恐らく後者のコードで実行時にYにアクセスしたら例外が出るはず。
そうじゃなきゃJPMSの意味が無い

直接非公開クラスにアクセスしたらアウト、じゃなくて
非公開クラスである事を知りつつアクセスしたらアウト、という事になるのか。
585デフォルトの名無しさん (ワッチョイ e361-Ks/Y [123.230.68.41])
垢版 |
2019/11/14(木) 16:31:20.81ID:gpjLruj80
なんで?
使う側は安全(コンパイルエラー)でしょ。
公開メソッド(たとえばtoString)は普通にアクセスできる。
純粋にimport(Y)できないから、型明示の代入やCastもできない。
あと、ディープリフレクションはexportとは別設定。
2019/11/21(木) 13:42:25.06ID:oMz9B2oV0
メゾットの連続番号を簡略化するのは無理でしょうか?

aho=new baka1();

このbakaのナンバーを変更したいのです

for(int i=1;i<5;i++)aho[i]=new baka+i+();

みたいにするとエラーが出ます

なんかいい方法はないでしょうか?
2019/11/21(木) 15:21:53.56ID:/5GdDHEF0
「メゾット」じゃなくて「メソッド(method)」、
あと
new Hoge();
はメソッドではなくコンストラクタの呼出し。

クラスを動的にインスタンス化したいならリフレクション使う。大雑把に書くと
Class.forName(...) -> clazz.getConstructor(...) -> constructor.newInstance(...)
する。後は自分で調べて。
2019/11/21(木) 15:23:24.39ID:/5GdDHEF0
クラスとかメソッドに連番を振るようなのは、
それぞれのクラスがどういった機能を持つかとか覚えきれなくなるだろうし
ろくな事にならないからヤメとけ、と思いますけどね。
※感想には個人差があります。
2019/11/21(木) 15:35:48.75ID:/tpvzaBhd
>>586
何に使うかさっぱりわからんからエスパーだけど
そういう時は
baka(int i)ってコンストラクタを作ってその中で条件分岐させたほうが良い
590デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.134.37])
垢版 |
2019/11/21(木) 17:23:38.70ID:MbgK9qpEa
>>586
ありません。

それと、ゾじゃなくてソだ。
591デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.134.37])
垢版 |
2019/11/21(木) 17:26:18.60ID:MbgK9qpEa
>>587
あそうか。リフレクションでできるか。
しかしうクラス名変わったらおしまいな方法なのでお勧めする気が起きないな。
2019/11/21(木) 18:33:39.54ID:Wapa4TJu0
Javaで、string型のデータをhtml使わずhttpconnection使ってサーバーにつないで、postで送るんですが、springbootで作られたサーバーではどう書けば受け取れますか?
どうやってもうまくいかなくて…説明も下手ですみません。
@Requestparamで受け取れるかと思ったんですが、変数どうやって指定したらいいかとか解決できない状況です
2019/11/21(木) 18:59:03.74ID:t93OqxgW0
Ruby on Rails なら、ルーティングを設定する

Post メソッドで、/login というパスで、Sessions コントローラーのlogin アクション。
post "login" => "sessions#login"

Rails では、下のどちらの書き方でも、params[ :name ] で取り出せる

ttp://〜/コントローラー/アクション/sato
ttp://〜/コントローラー/アクション?name=sato

「spring boot post」で検索して!
2019/11/21(木) 21:23:20.19ID:oMz9B2oV0
>>587
コストラクトの連番の簡略化できました。ありがとうございます。

for(int i=1;i<5;i++){
Class<?> c=Class.forName("baka"+i);
aho[i]=c.newInstance();
}

これでできました!
2019/11/21(木) 22:49:32.49ID:t93OqxgW0
ハァ? クラス名の連番?w
メタプログラミングじゃあるまいし、Ruby から、学び直せ!w

Ruby にも、メタプログラミング用で、動的にメソッド名を付ける、define_method は有る。
これは、規則性のあるメソッド名を、複数つける場合に使う

こういう手法は、たいてい「メタプログラミングRuby 第2版」みたいな
「メタプログラミング何々」というような本に書いてある

「メタプログラミング Java」という本は無さそうだけど、リフレクションだろ
596デフォルトの名無しさん (ワッチョイ 52ad-c8oy [27.139.18.89])
垢版 |
2019/11/22(金) 00:35:57.65ID:nCUGDEyM0
>>594
でもそれ出来れば設計考え直した方が良いと思うよ。自分では変更不可の領域に連番クラスがあるというのなら仕方ないけど。
2019/11/22(金) 07:50:28.91ID:kieD0Z1+0
修正すべきコードの例w
2019/11/22(金) 08:28:14.11ID:GTCFu0T70
aho配列に入れるBakaクラスなら連番でもいいのだ
一人一人のBakaに代入互換性はなく総称しても使い道がない
ただaho配列に並ぶだけ
これでいいのだ
599デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.123.141])
垢版 |
2019/11/22(金) 10:07:48.59ID:G2a56k/Ua
>>598
全てのBakaに共通するインターフェースがない限りObjectクラスとしてしか扱えないのであまり価値がないのではないか?
2019/11/22(金) 18:50:54.91ID:IgRfeEG+0
動的にクラス名を生成するのは、Ruby on Rails で言えば、

コマンド「bin/rails g controller コントローラー名 アクション名」で、
例えば、top コントローラー、index アクションなら、
自動的に、ApplicationController の派生クラス名・メソッド名が定義される

class TopController < ApplicationController
def index
end
end

こういうフレームワークを作る側のメタプログラミングだから、10年以上のメンテナー・ベテランの話!

君らは「スッキリわかる Java入門 第2版」にも書いてある通り、
フレームワークを使う側の人でしょ?

1. スッキリなどの入門書
2. Effective 何々、逆引き本
3. フレームワークを使う側の本
4. メタプログラミング、フレームワークを作る側の本

こういう順序で言えば、4は、一生関係ない人がほとんど!
2019/11/22(金) 19:15:41.34ID:bHONFyXJ0
>>600
rubyは聞いていません。javaで回答してもらえませんか?
2019/11/22(金) 19:35:37.83ID:627roQa/M
>>600
低年収言語はいらないです
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/01068/111100004/
2019/11/22(金) 20:56:32.49ID:Ojo/8f50M
RubyはJavaで作られてるから実質Java
604デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.133.94])
垢版 |
2019/11/22(金) 21:49:44.03ID:l6/+AaOma
あれ?rubyってJavaで作られてたの?じゃあJVM言語の一種?
2019/11/22(金) 22:37:07.24ID:GLN50yFfr
JRubyはそうだろうけど
2019/11/22(金) 23:17:45.16ID:NHoyDi/b0
何で
クラス連番にしたらいけなひの?
便利だよ
ほんと
2019/11/23(土) 07:18:44.34ID:32h5sYE/0
おまルールでいいじゃないか
608デフォルトの名無しさん (ワッチョイ 935f-3IAb [106.72.150.32])
垢版 |
2019/11/23(土) 08:45:31.09ID:fraeGssq0
調べたら
Class.forName("クラス名");
ってあんまり推奨されてないみたいなんだけど
暗号化の関係かな?
よおわからん
609デフォルトの名無しさん (ワッチョイ 52ad-c8oy [27.139.18.89])
垢版 |
2019/11/23(土) 17:13:27.52ID:JT6reT4x0
>>606
いけなくないけど不便だよ。君が便利と感じるのは経験が浅くてまだ困難に直面した事がないからだと思う。ま、頑張れ。
2019/11/23(土) 18:42:11.00ID:b2KhkZe6a
>>606
数が多くなると管理できなくなるんだよ
18と19の間に18.5を入れたくなったり
さらに18.3と18.4の間に18.35を入れたくなったりすると
完全に訳が分からなくなる
611デフォルトの名無しさん (ワッチョイ 9e01-k+6Q [111.90.14.57])
垢版 |
2019/11/23(土) 20:40:36.12ID:0wKJQE8U0
数ヶ月したらどの番号が何をやってるかなんて忘れてしまうから
クラス名を番号にしてると修正が必要になったときに全部開いて確認する羽目になる

設計書に番号と処理の対応表を書いておけばよいけれども
設計書を開かないとわからないし設計書と実装を見比べて探し当てるよりは
クラスにはだいたいの概要がつかめるような名前をつけたがよいよ

どうせ作っておしまいだからと思ってたら完全に忘却したあとに
修正が必要になるなんてことザラにあるからわかりやすい名前をつけて
整理しとかないと泣きながら修正することになる

みんなが一度は通る道だろうけど
2019/11/24(日) 05:27:04.83ID:QRZKKX3s0
>>606
他人と違うことやる俺カッケー
でもこういうやつの中から天才現れるんだよな。
まあ、頑張れ。
613デフォルトの名無しさん (ワッチョイ cf8f-Sa3v [118.7.1.66])
垢版 |
2019/11/24(日) 15:36:00.02ID:Gqvqz24c0
連番のメソッドで何をしてるのか知りたい。
614デフォルトの名無しさん (ワッチョイ cf8f-Sa3v [118.7.1.66])
垢版 |
2019/11/24(日) 15:36:45.26ID:Gqvqz24c0
あ、クラスか。
クラスを連番にする意味はないと思うが、何をする処理ですかね?
2019/11/24(日) 18:10:38.59ID:Cw5E2RGB0
一つ一つ名前考える手間が省ける。swingのボタンとかラベルとかテキストフィールドとか。
2019/11/24(日) 18:38:58.16ID:aaRbnr5kd
ボタン?
それなら尚更ちゃんと名前つけてあげないとわけわかんない事になるのでは……
2019/11/24(日) 19:08:52.08ID:Cw5E2RGB0
まあ程度問題やね。
コンポーネントが20個とか30個になると、全部一つ一つnewしてアクションリスナーに登録して、JPanelにaddするのがしんどくなる。
for文でまとめてやりたいという誘惑に駆られるから。
2019/11/24(日) 19:34:22.05ID:QRZKKX3s0
>>617
コンポーネントなら普通にやるじゃん。
チェックボックス10個並べるときなんかは配列にしてfor文で呼ぶし。
2019/11/24(日) 19:46:18.40ID:7cfX+7dDM
今時JavaでGUIアプリを作ること自体が全くもって普通ではないから無意味な例だな
2019/11/24(日) 23:13:55.87ID:E4b/CXSq0
>>617
インスタンスならわかるけどクラスだしなぁ
621デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.130.182])
垢版 |
2019/11/25(月) 10:37:08.19ID:veETdbiQa
IDEでボタン配置とかやってるならクラス名は連番だろうが何だろうがあまり気にならんかもな。どのボタンがどのクラスかなんてのはIDEでわかるんだろうし。
622デフォルトの名無しさん (ワッチョイ 5261-0DuE [61.245.58.252])
垢版 |
2019/11/25(月) 10:40:38.66ID:8LK1eAYw0
いい加減、クラス連番とかいうのかまうなw
623デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173])
垢版 |
2019/11/25(月) 11:16:38.67ID:9J43lBdJa
Java的には連番はご法度だよな
メソッド名も主語=オブジェクトに関連する動詞じゃなきゃだめ
しかも英語で略語も禁止

SunのJavaの教科書はそう書いてる

だからIDE使う

連番の入れ替えとか歯抜け追加起きたとき
プロジェクト炎上するなこいつのは


1
2
5
4
9
31
6

とかになる
624デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173])
垢版 |
2019/11/25(月) 11:32:46.60ID:9J43lBdJa
やるなら、


inteface Hage {
void pushShigeki();
}


class Tako implements Hage
class Hanako implements Hage

Hage[] listKokyaku = new Hage[2];
listKokyaku[0] = new Tako();
listKokyaku[1] = new Hanako();

for(Hage aitsu : listKokyaku) {
aitsu.pushShigeki();
}


うは、俺天才
625デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173])
垢版 |
2019/11/25(月) 11:41:30.91ID:9J43lBdJa
UMLからお勉強だな


http://objectclub.jp/technicaldoc/uml/

こんなアホな設計者にカネばらまいて
いざとなったらトンズラきめて
末端の派遣社員が鬱病になって
2chで粘着されて会社が潰れるのが目に浮かぶわww
2019/11/25(月) 12:54:42.34ID:XBh0S+UuM
的外れなレスを連投する君も同レベルのアホだよ
627デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173])
垢版 |
2019/11/25(月) 12:59:09.06ID:9J43lBdJa
そうだな、Hageは不適切だった

Enkeidatsumoshowがいいな
628デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173])
垢版 |
2019/11/25(月) 13:02:30.16ID:9J43lBdJa
ただしくは以下を見ろ
絶対に見ろ、命令だ


Java言語の命名指針 - Qiita
https://qiita.com/rkonno/items/1b30daf83854fecbb814
629デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173])
垢版 |
2019/11/25(月) 13:07:38.83ID:9J43lBdJa
うえのURLはハゲだった

まだふさふさしてるのは

https://future-architect.github.io/coding-standards/documents/forJava/Javaコーディング規約.html#フォーマット



https://www.google.co.jp/amp/s/nelog.jp/programming-words%3famp=1

だな
2019/11/25(月) 14:27:28.62ID:/ltgl4TyM
すごくつまらないです
2019/11/25(月) 16:01:07.05ID:sIY9dxa6d
頭の中で勝手にエンジニアと決めつけてキレてるやつ怖いわ
どう見ても素人だろこんなん
というかどんな現場だろうがこのレベルの奴が自分で設計なんてさせられるわけないわ
2019/11/26(火) 01:08:20.80ID:bgFIZV9Y0
現場にもいろいろあるんやで
失敗を積み重ねて人は成長するんやで
2019/11/26(火) 09:44:25.60ID:i6eVGflj0
画面部品を一つ一つ異なるクラスにする意味あるの?
インスタンスが連番なのじゃなくて?

都市伝説っぽいが、会社規則でクラスをコード+連番にしないといけないという愚痴ならどこかで読んだことがある
634デフォルトの名無しさん (ワッチョイ 7f1f-o5P1 [133.205.248.154])
垢版 |
2019/11/30(土) 17:54:07.54ID:FnAJNe620
どうも、都市伝説です

謎略称+連番はロクにまともなコードも書けない人間が略称→機能を暗記して周りにマウント取るためのテクニックとして確立されてる
2019/11/30(土) 20:05:23.43ID:18m6LbH00
まぢれすすると
page1.java page2.java........と作っていて
選択したページに移動したいだけなんすよね
ちなみに趣味れす
2019/11/30(土) 22:09:24.54ID:Zu/DOLqT0
>>635
それ同じクラスを使いまわして引数で分岐させる方がラクだよ
2019/11/30(土) 22:32:31.73ID:HT5pBiqn0
普通に名前つけさせようとすると
英語もろくすっぽできないプログラマーがわけわからん名前つけるからな!

いかなる創造的仕事もSE様のしごとだ
プログラマーは工員のごとく黙って番号を付与された部品を組み立てておればよい
638デフォルトの名無しさん (アウアウウー Sa23-8Irb [106.132.138.225])
垢版 |
2019/12/01(日) 21:35:10.17ID:54WkPiOYa
日本語でクラス名付けちゃえよ。その他変数名とかも。ソースを外国に輸出しないならそれでも良かろう。
Javaなんだし漢字が識別子に普通に使えるよ。入力の切り替えが面倒ってのはあるかも知れないが可読性は上がる。
2019/12/01(日) 21:37:17.95ID:UwCngPfbM
日本人しか触らないのに英語起票に拘る人おるよね
2019/12/01(日) 21:43:00.87ID:W3IRfpAO0
それでMacのNFDもどきでハマるんですね、分かります
641デフォルトの名無しさん (ワッチョイ 5f8f-ywWo [118.7.1.66])
垢版 |
2019/12/01(日) 22:13:32.48ID:dM3xe/zP0
ソースはアルファベット、コメントは日本語が一番見やすいが・・・。
2019/12/02(月) 00:42:17.46ID:tlpXu3t6a
間違った英語の単語を変数名に使われるのも迷惑
加減乗除余りの余りを surplus としたのがある
surplus は割り算の余りという意味ではなくて
損益の余りという意味でしか使われないのだが
643デフォルトの名無しさん (ワッチョイ 5f01-YC6P [126.159.206.200])
垢版 |
2019/12/02(月) 06:39:31.76ID:/N45p/D+0
日本語は文字コードの問題があって、コメントは英語が基本と言われていますね。
644デフォルトの名無しさん (ワッチョイ 7fad-/0K4 [27.139.77.105])
垢版 |
2019/12/02(月) 08:35:14.13ID:6Q7teWoI0
どんな問題?
2019/12/02(月) 09:36:39.22ID:CbKC46HWM
643に文字コードとは何なのかから説明しないといけない問題
646デフォルトの名無しさん (アウアウカー Sad3-yfoe [182.251.34.142])
垢版 |
2019/12/02(月) 10:19:01.96ID:4IAAki39a
>>643
素人がエンジニアを名乗るの図
どこでさ仕事したらそんな歪んだ知識になるんだ
2019/12/02(月) 15:08:59.12ID:LuC5M5C30
爺さんだろ
648デフォルトの名無しさん (アウアウウー Sa23-8Irb [106.132.123.180])
垢版 |
2019/12/02(月) 18:16:14.51ID:AXP0tN/na
正規化の問題があるといえばあるか。
見た目全く同じファイル名とかUnicodeだと作れちゃうよね。濁点とか半濁点が曲者。
その辺を考慮してくれるテキストエディターでないといつかその内ハマる。
多分WindowsとMac混在で編集するとその時は早めに来る。
2019/12/02(月) 20:11:31.18ID:kVvXK1rur
それては濁点はコーティンク規約て禁止しよう
◯と○や長音も紛らわしいから禁止た
650デフォルトの名無しさん (アウアウウー Sa23-8Irb [106.132.123.180])
垢版 |
2019/12/02(月) 20:58:00.86ID:AXP0tN/na
参考にしてください

長音記号禁止
https://egg.5ch.net/test/read.cgi/owarai/1567165871/
651デフォルトの名無しさん (ワッチョイ d501-epCg [60.145.42.28])
垢版 |
2019/12/05(木) 13:36:07.20ID:wIKti5Mb0
SpringBootの勉強中なんだけど、誰かわからないから教えてもらえませんか?
Aという名前のプロジェクトとBというプロジェクトがそれぞれ存在していて、
AのプロジェクトからBのプロジェクトのある画面を呼び出すことは可能でしょうか?
マルチプロジェクト?というので可能でしょうか?
2019/12/05(木) 14:55:38.74ID:ATWw+6fu0
ここで聞けよ

【DI】Java Spring Frameworkを語るスレ 5.0
https://mevius.5ch.net/test/read.cgi/tech/1322414231/
653デフォルトの名無しさん (ワッチョイ d161-QX1D [218.33.196.177])
垢版 |
2019/12/07(土) 11:51:34.98ID:bFOMZERE0
そもそも「画面を呼び出す」って訊き方が?
・httpとかネットワーク的な話なのか
・画面がコンポーネントになっていて、それを含むモジュールをimportして使いたいという意味なのか
どっちにとっても、Spring以前の話だな。
2019/12/07(土) 14:16:02.35ID:Idm24E4/M
@ComponentScanしてcontroller経由かViewResolverをchainする
655デフォルトの名無しさん (ワッチョイ dde6-Dd89 [14.3.11.220])
垢版 |
2019/12/07(土) 21:23:14.66ID:YAam3qww0
Queue<Integer>の合計を取る場合、拡張forを使用していますが、
stream().sum()の様な方法で求めることはできますか?
2019/12/07(土) 21:36:50.23ID:Z+T9+hbUr
q.stream().sum()でいいんじゃない?
657デフォルトの名無しさん (ワッチョイ 6301-fBuc [60.108.151.168])
垢版 |
2019/12/13(金) 02:40:57.30ID:VJl1Rt3v0
メソッドの処理時間を返すメソッドを作りたいと思ってるのですが実装方法がよく分かりません…
関数型プログラミングをつかえとネット上で書いてあったのですが中々理解出来ずにいます…

やりたいこと:
int runProcessTime(メソッド){
long start = System.currentTimeMillis();
// 引数のメソッドを実行
long end = System.currentTimeMillis();
return (int)end - start
}

どなたかこのポンコツめに実装方法を教えてください……よろしくお願いします…
2019/12/13(金) 09:55:14.47ID:ftjAwgQIM
>>657
プロファイラ使え
2019/12/13(金) 15:58:33.51ID:JQqa66DGr
試してないけどこんな感じかな

int runProcessTime(Runnable proc){
long start = System.currentTimeMillis();
proc.run();
long end = System.currentTimeMillis();
return (int)end - start
}

// 呼び出し
runProcessTime(() -> {you.doSomething();});

例外投げんなと怒られたらCallable版も用意してreturn false
Effectively finalで怒られたら引数の宣言にfinalでもつけて修正
2019/12/13(金) 16:56:03.95ID:e2UWLhpQM
ジェネリックな高階関数定義するのひたすら面倒だね。戻り値の有無や引数の数が一般化出来ないケースは実質使えない

https://paiza.io/projects/Eh3ihZ2kTIdiBv-2ItS5wg?language=java

本番環境でも使いたければAOP使ってログ出力かな
661デフォルトの名無しさん (ワッチョイ 6301-fBuc [60.108.151.168])
垢版 |
2019/12/14(土) 00:13:43.09ID:9SpegRHr0
>>658-660
ありがとうございます

参考にしてもらって調べてみましたが、プロファイラやAOPを使ったログ出力をすればたしかに解決出来そうです!

ただそろそろラムダ式とちゃんと向き合わなきゃ駄目かなと思っているので>>660のコードを参考に読み解いてこうと思います!

>>659のコードにはとりあえずrunnable実装したクラス投げてみたんですがどうも上手くいかなかったです…
これもラムダ式が理解出来てれは動作するんでしょうか…?
2019/12/14(土) 00:39:58.86ID:zsegnw83r
もしかしてdoSomethingメソッドの戻り値をRunnable型のオブジェクトにしちゃった…?
runProcessTime(() -> {System.out.println("呼ばれた");});
でいいんだよ
引数と戻り値のないラムダ式がRunnableとして型推論される
2019/12/14(土) 02:22:22.35ID:9SpegRHr0
>>662
とりあえず動作確認がしたくて試行錯誤した結果こんな感じなら通るのかなぁって思ってました
https://wandbox.org/permlink/hflsLOytE8IIIZkt

ご指摘の通りに書いてみたら上手く動作してくれました!ありがとうございます!
https://wandbox.org/permlink/jl8r7LPtWxuNBPkh
型推論…便利だけど仕様理解してないとなんか不思議な感覚ですね
664デフォルトの名無しさん (ワッチョイ 9aad-kWkR [27.139.77.105])
垢版 |
2019/12/14(土) 21:02:02.41ID:SgtXLdNQ0
Kotlin もよろしく
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況