Java入門・初心者質問スレ Part.10at TECH
Java入門・初心者質問スレ Part.10 - 暇つぶし2ch994:デフォルトの名無しさん
21/06/07 10:46:02.62 1cyU61QNM.net
>>987
Kotlinならこう書けるというソースに対してList型なのが残念という流れだからStreamと併記しているんだよ
流れや文脈が理解できないアスペ的な人かな?

995:デフォルトの名無しさん
21/06/08 09:50:05.38 CFn1v5aZa.net
>>985
遅延なのは同じでは?

996:デフォルトの名無しさん
21/06/08 10:27:33.98 ZnZwWBys0.net
>>989
遅延なのは同じだよ?(うぜえ

997:デフォルトの名無しさん
21/06/18 12:15:21.33 7QqIFMO20.net
質問です
static finalのフィールドにHashMapをセットして
getしか行わない場合は、マルチスレッドで使用しても安全ですか?
↓こういうふうに、コードはイメージです
class Test {
 private static final HashMap<String, String> map;
 
 public Test() {
  map = new HashMap<String, String>();
  map.put("a", "A");
  map.put("b", "B");
 }
 
 public String get(String key) {
  return map.get(key);
 }
}

998:デフォルトの名無しさん
21/06/18 13:16:32.86 I//zPTNq0.net
>>991
ダメです
コンストラクタではなくスタティックイニシャライザーで要素を追加してください

999:デフォルトの名無しさん
21/06/18 13:59:22.34 7QqIFMO20.net
>>992
ありがとうございます!
↓これなら良いですか? getはマルチスレッドでも安全ですか?
class Test {
 private static final HashMap<String, String> map;
 
 static {
  map = new HashMap<String, String>();
  map.put("a", "A");
  map.put("b", "B");
 }
 
 public String get(String key) {
  return map.get(key);
 }
}

1000:デフォルトの名無しさん
21/06/18 16:19:11.06 deCUai8H0.net
valueがイミュータブルかどうかは無視していいの?
keyがイミュータブルでないってのはありえないだろうけど。

1001:デフォルトの名無しさん
21/06/18 16:29:51.99 5G13yx380.net
いいだろ
これだとput公開されてないし

1002:デフォルトの名無しさん
21/06/18 20:53:55.88 I//zPTNq0.net
>>993
いいね!

1003:デフォルトの名無しさん
21/06/18 21:48:38.57 deCUai8H0.net
>>995
例の通りStringならね。
たとえば、Dateみたいなミュータブルだとどうなのって話。

1004:デフォルトの名無しさん
21/06/19 00:02:36.19 /MxA8Vde0.net
>>993
たぶん安全だと思う
finalである時点で他スレッドからの即時の可視性も担保されてるはず
まあ思考を放棄してConcurrentHashMapを使ったほうが気が楽というのはある

1005:デフォルトの名無しさん
21/06/19 00:03:44.86 /MxA8Vde0.net
>>997
もちろん書き換えれば壊れるけど、質問者のレベルを察するに知りたいことはそこじゃないと思う

1006:987
21/06/19 02:17:51.58 mDxwNGWh0.net
みなさんありがとうございます!

1007:デフォルトの名無しさん
21/06/19 14:01:39.40 4UQ3DD5B0.net
>>997
それはConcurrentHashMap使っても無理でしょ
そのようなケースでは呼び出し側が読み取りから書き換えまでの範囲を排他するしかない

1008:デフォルトの名無しさん
21/06/20 16:54:15.78 Kf2rTDe5d.net
Flow APIでPub/Sub処理作ってデバッグしてみたんだけど
eclipseもintellijも設定したブレイクポイントで止まってくれない
具体的にはSubscriberインターフェースを実装したクラスでpublishした時に呼ばれるonNextメソッドの部分
処理中にいくつかコンソール出力を仕込んであって途中までは呼び出されてるんだけどそこから先で止まってるっぽくてデバッグしたいんだけど
確認できてるコンソール出力処理より前にブレイクポイントを設定しても止まってくれない
Javaの標準クラスを経由して呼び出される独自のクラスはデバッグできないとか制約あったりするんだろうか?

1009:デフォルトの名無しさん
21/06/25 14:33:03.71 sV38Jy47a.net
gradleでビルドしてるのだけどテストを除外してビルドするかんたんな方法はないの?
「テストを実行しない」ではなくテストコードそのものを生成物(jar)に入れたくないという意味で

1010:デフォルトの名無しさん
21/06/25 21:26:23.89 fsqrLronM.net
src/test 側に置いてたらソースセットの設定が効いてjarには入らないよ
jarに入る事故が起こってるのだとしたら多分スクリプトで余計なことしてる

1011:デフォルトの名無しさん
21/06/25 23:07:44.76 sV38Jy47a.net
>>1004
なるほどもともと入らないのか
知らなかった

1012:デフォルトの名無しさん
21/06/26 14:11:00.72 RjjpcdnV0.net
100000000000000000000000000000000000000000000!

1013:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 450日 23時間 1分 46秒

1014:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch