★★Java質問・相談スレッド182★★
: デフォルトの名無しさん (アウアウウー Sa73-AAco [106.132.135.194]) [] 2018/11/19(月) 11:37:06.10:C68x9bSia プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 ttp://pc11.2ch.net/hp/ Webプログラミング ttp://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★★ ttps://mevius.5ch.net/test/read.cgi/tech/1518252580/ VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured : デフォルトの名無しさん (ワッチョイ ff87-ASYV [115.176.100.236]) [sage] 2018/11/20(火) 03:38:42.96:JZJLduoZ0 カキコ : デフォルトの名無しさん (ワッチョイ ff51-A3/R [123.1.86.88]) [] 2018/11/24(土) 10:37:52.52:6yt0KLFG0 Threadが完了しているかはどうやって調べるんですか? isInterrupted()とisAliveはあスレッド終了時falseでした。 : デフォルトの名無しさん (ワッチョイ 6f9f-zhOP [175.134.57.7]) [] 2018/11/24(土) 16:28:54.46:Q9o1GKtC0 ttp://http://pppurple.hatenablog.com/entry/2017/05/12/234030 : デフォルトの名無しさん (ワッチョイ ff51-A3/R [123.1.86.88]) [] 2018/11/24(土) 17:16:53.81:6yt0KLFG0 どうやらisAlive()はstart()前はfalse,start()後実行中はtrue,完了したらfalseのようです。 start前と完了後を区別するにはgetStateが良いようですね : デフォルトの名無しさん (ワッチョイ ff51-A3/R [123.1.86.88]) [] 2018/11/25(日) 08:53:36.37:vfhmRXQZ0 スレッド1がメンバー変数Aを更新、そのあとメンバー変数Bを更新 スレッド2から見て、Bの更新が見えるのにAが見えない、ということはありえますか? : デフォルトの名無しさん (ワッチョイ cf80-fhi1 [153.181.220.179]) [sage] 2018/11/25(日) 10:55:13.27:bdma9Nzw0 マルチスレッドは前後関係が決まらないから、確実なものはない。 待ち合わせでもしていれば、できるかも デッドロックもあるし、10年以上開発していないなら無理。 資源が共有されるから、素人がプログラミングできるはずがない! : デフォルトの名無しさん (ワッチョイ 6f8a-Kv/S [223.218.154.127]) [sage] 2018/11/25(日) 11:39:22.30:0ClRa5n60 スレッドは最初から並列、同期を考えてプログラムするだろう。初心者には無理 : デフォルトの名無しさん (ワッチョイ 6f9f-zhOP [175.134.57.7]) [sage] 2018/11/25(日) 16:50:34.64:k7/W79Is0 その変数Aが volatile でなければ読む側のスレッドで動いているコードによっては起こり得ると思う。 (もっと他順に更新順序と読む順序の問題でそうなる事もあるが)。 かといって volatile にしただけで安心してはいけない。更にロック掛けた上で読み出した方が良い。 Java なら synchronized 使うとかだな。 : デフォルトの名無しさん (アウアウカー Sa87-Iz74 [182.251.154.85]) [sage] 2018/11/26(月) 23:37:17.15:iInmVawEa volatileはそのAとBの間に制約があるなら使えないし、A、Bが自身の制約になるときもか。あと他の変数の不変条件になってるなら使えないよ。 ていうかvolatile変数の変更が外から見えないならロックいらんだろ。 : デフォルトの名無しさん (ワッチョイ 5305-XNyg [210.132.144.78]) [sage] 2018/11/27(火) 00:38:32.20:2AqLChXV0 何を言ってるのかわからん。 : デフォルトの名無しさん (ワッチョイ 6f9f-KQkZ [175.134.57.7]) [] 2018/11/27(火) 01:26:54.27:IxTjeZ9T0 制約って?具体的にどういう状態? privateにして外からgetするメソッドを呼ぶだけのいわゆるプロパティにしてしまえばマシにはなるかもな。 しかしそれだけだとA,Bを個別に読んだら一方しか更新されてない事は起こりうるのでは? 更新する側がロックせずに一つづつ更新している最中に一つづつ読んでしまえば起こりうるよね? : デフォルトの名無しさん (ワッチョイ ff51-A3/R [123.1.86.88]) [] 2018/11/27(火) 10:43:53.15:Kxtwr65F0 1スレッド書き込み、マルチスレッド読み込みの場合、 並行処理による問題が発生する可能性はありますか? 例えばHashMapにアクセスするとして。 : デフォルトの名無しさん (ワッチョイ cf80-fhi1 [153.181.220.179]) [sage] 2018/11/27(火) 10:50:21.39:DSo9/Qg/0 1. スレッドA には、Xが存在しない 2. ここで書き込みスレッドが、X を書き込むと、 3. スレッドB には、Xが存在する : デフォルトの名無しさん (アウアウウー Sa27-ml8p [106.132.137.248]) [] 2018/11/27(火) 12:39:58.02:gTSgzwA4a あります。 : デフォルトの名無しさん (ワッチョイ b3af-OcZv [122.24.68.153]) [sage] 2018/11/27(火) 15:26:01.15:r2rVvRkR0 ありまぁ〜す : デフォルトの名無しさん (ワッチョイ 6f9f-zhOP [175.134.57.7]) [] 2018/11/28(水) 01:33:35.79:BkKDQWNJ0 HashMap のドキュメントに Collections.synchronizedMap() を使う方法が書いてある。 それ使った方が自分でゴチャゴチャ考えるより楽だ。 : デフォルトの名無しさん (アウアウカー Sacf-ILaU [182.251.220.71]) [sage] 2018/11/29(木) 21:49:08.42:wn8bMma4a 排他ロックが無駄だからいちいち同期するなよ。 concurrent collectionつかえ。その用途ならConcurrentHashMapがあるだろ。 : デフォルトの名無しさん (ワッチョイ 22a6-3M3s [123.48.217.134]) [] 2018/12/06(木) 14:31:29.56:ncTdmVKO0 ラムダの中でローカル変数のオブジェクトを参照している場合、 そのメソッドを抜けた後そのローカル変数を参照する事は安全ですか? //in some method Obj local = new Obj(); GuiPart gui = new GuiPart((event)->local.method(event)); return;//この後ラムダがイベント処理で呼ばれた場合、localは参照可能か? : デフォルトの名無しさん (ブーイモ MMb3-IAAP [210.138.208.29]) [age] 2018/12/06(木) 14:37:21.87:U/FtrhZGM 安全に参照可能だよ 自動生成されたクラスのインスタンスフィールドに保持される : デフォルトの名無しさん (ワッチョイ 3be3-OBpN [218.33.217.200]) [] 2018/12/06(木) 15:00:26.25:fFxLBqGn0 逆に気を付けなければならないのは、 非同期処理などで、外側のオブジェクト(エンクロージングインスタンス)がいつまでも破棄されなくなる可能性があること。 : デフォルトの名無しさん (ワッチョイ 8fb9-aoeu [180.178.88.6]) [sage] 2018/12/07(金) 02:12:41.95:5Mie+W080 匿名クラス(無名クラス)の型について質問です。 ArrayListに格納した後、get()で取り出して使いたいのですが 型名が分からずキャストできません。 どなたか回答をお願いします。 : デフォルトの名無しさん (ワッチョイ 4e9f-n9Ol [175.134.57.7]) [] 2018/12/07(金) 02:50:49.80:4kVuFzeP0 List にキャストすればいいのでは? : デフォルトの名無しさん (ワッチョイ 17b6-IAAP [220.208.88.114]) [age] 2018/12/07(金) 04:50:43.67:NzONXxAO0 クラスを定義するときに継承してるはずなので instanceofで継承元の型かチェックして 型のクラスにキャストすればいいのじゃないかな 継承先のクラスへのキャストはわからん : 22 (ワッチョイ 8fb9-aoeu [180.178.88.6]) [sage] 2018/12/07(金) 17:13:48.47:5Mie+W080 ありがとうございました。 ちょっと俺の説明も分かりにくかったと思いますので、 コードを下に書きますね。 List<Object> al = new ArrayList<>(); al.add(new Object { __int anonymousField = 5; __void anonymousMethod() { ____System.out.println(anonymousField); __} }); al.get(0).anonymousMethod(); こう書くと、匿名クラスはObject型にキャストされているので、 anonymousMethod()を呼べずコンパイルエラーになります。 そこで最終行でキャスト演算子を使おうと思ったのですが、 匿名クラスの型が分からずキャスト出来なかったんです…。 : デフォルトの名無しさん (アウアウクー MM3f-+0bq [36.11.225.61]) [sage] 2018/12/07(金) 17:27:22.40:bk7fHByDM 言語の限界に挑む系のチャレンジかなんかしてるのかそれ。 : デフォルトの名無しさん (ワッチョイ 227c-OBpN [123.230.34.235]) [] 2018/12/07(金) 18:02:53.57:L+lXnzjp0 interface Hoge { __void anonymousMethod(); } ... List<Object> al = new ArrayList<>(); al.add(new Hoge { __int anonymousField = 5; __void anonymousMethod() { ____System.out.println(anonymousField); __} }); ((Hoge) al.get(0)).anonymousMethod(); 普通はList<Hoge>として、下のキャストを要らないようにする分けだが。 : デフォルトの名無しさん (スプッッ Sde2-nFRM [1.75.246.154]) [sage] 2018/12/07(金) 18:14:33.74:8/WIy6eid 他で呼ぶことを目的とするなら匿名クラスにしてはだめでは? : 22 (ワッチョイ 8fb9-aoeu [180.178.88.6]) [sage] 2018/12/07(金) 18:24:24.58:5Mie+W080 そんな大層なことではありませんが…。 ありがとうございました。 では匿名クラス内のメンバ(特にメソッド)の存在意義って何なのでしょうか? : デフォルトの名無しさん (アウアウウー Sadb-MnXc [106.132.136.161]) [] 2018/12/07(金) 18:39:34.95:qRyaIDL9a そのクラス内で処理を分けて起きたい時に作る。 呼び出されるメソッド一つに全て書くとわかりづらくなる時とかね。 : デフォルトの名無しさん (スプッッ Sde2-nFRM [1.75.246.154]) [sage] 2018/12/07(金) 18:44:34.94:8/WIy6eid 渡した先で処理させるのにitemを厳密にしなくてすむ の例で言うなら自分で作ったcollectionクラスにanonymousMethodをなんか処理する機能をつけてやれば 渡すitemはanonymousMethodを持ってれば匿名でも実体があっても良くなる : 22 (ワッチョイ 8fb9-aoeu [180.178.88.6]) [sage] 2018/12/07(金) 23:44:22.73:5Mie+W080 ありがとうございました。 : デフォルトの名無しさん (ワッチョイ 12a6-3Pua [123.48.217.134]) [] 2018/12/13(木) 23:17:41.00:kncoc2aJ0 総称型の派生的な定義を一元化したいです。 class ClassA<T1>{} とあるとき、T2 extends T1とか、T3 extends ClassB<T1>とかを定義したい。 しかしT1の横に並べるとClassAの子クラスにおいて指定する必要が生じます。 ClassA<T1, T2 extends T1> こうしたくない。 ClassAChild extends ClassA<T1Concrete, T2Concrete>みたいにT2Concreteの指定が生じるから。 しかしクラスに定義しないとメソッド毎に総称型の定義が必要になります。 T1だけを指定するという状況を保ったまま、T1に依存した他の派生的な総称型をクラス内で定義したい。 これは可能ですか? : デフォルトの名無しさん (ワッチョイ 36b6-DQC4 [111.90.6.3]) [] 2018/12/13(木) 23:40:07.10:Dzj4x6Rs0 こういうこと? class A<T> { class B<U extends T> { } } : デフォルトの名無しさん (ワッチョイ 12a6-3Pua [123.48.217.134]) [] 2018/12/13(木) 23:44:58.06:kncoc2aJ0 class ClassA<T1>{ public <T2 extends T1> T2 method1(); public <T2 extends T1> T2 method2(); public <T2 extends T1> T2 method3(); } このようにメソッド毎に総称型を定義するのが嫌なので、クラスのところで指定したいのですが、 そうすると子クラスでT1から自動的に決定するものをわざわざ指定しないといけません。 class ClassA<T1, T2 extends T1>{//子クラスでT2を指定する必要が発生 public T2 method1(); public T2 method2(); public T2 method3(); } : デフォルトの名無しさん (ワッチョイ 12a6-3Pua [123.48.217.134]) [] 2018/12/13(木) 23:51:34.03:kncoc2aJ0 別の方法で解決できそうです。ありがとうございました : デフォルトの名無しさん (ワッチョイ 369f-UKyl [175.134.57.7]) [sage] 2018/12/14(金) 03:07:35.09:068kLwWW0 どんな方法ですか? : デフォルトの名無しさん (ワッチョイ a68a-mHCk [121.114.127.30]) [sage] 2019/01/05(土) 19:38:28.30:oWM93k/k0 以下のコードでifの中が実行されない理由がわかりません 条件がtrueなので実行されると思うのですがなんででしょうか class Sample{ static double total; int a = 2, b= 3; public static void main (String[] args){ double x, a, b; if (total == 0){ a = 3; b = 4; x = 0.5; } total = x * a * b; System.out.println(total); } } : デフォルトの名無しさん (アウアウエー Sa5a-ahzL [111.239.160.142]) [sage] 2019/01/05(土) 19:55:28.65:tCoREms1a なぜtrueだと思うのか説明しなさい : デフォルトの名無しさん (ワッチョイ a68a-mHCk [121.114.127.30]) [sage] 2019/01/05(土) 20:09:53.68:oWM93k/k0 System.out.print(total == 0)がtrueだったからです : デフォルトの名無しさん (ワッチョイ 3395-6la0 [210.132.144.78]) [sage] 2019/01/05(土) 23:15:07.20:Mw4M2zcY0 新たにビルドしなおしたものを実行していたつもりがエラーになってて古いやつをずっと実行し続けてた的なやつだな。 とりあえずこれ10回詠唱しとけ 「コンパイラの出力は御経じゃない」 : デフォルトの名無しさん (ワッチョイ a68a-mHCk [121.114.127.30]) [sage] 2019/01/06(日) 00:29:12.69:+dMvWsVO0 内容はJavaSE8Silverの問題集に出ていたものです 解説ではif文の中身が実行されないので初期化によるエラーが出るって書いてあり、 そのことは実際にideoneとかで実行し理解してるのですが なぜtrueにならないのかがわからないということです : デフォルトの名無しさん (ワッチョイ 6e01-Dc9L [111.90.9.229]) [] 2019/01/06(日) 00:41:35.13:zpMal+Wd0 えっと、実行時には条件はtrueになるよ コンパイル時にはtrueになることがわからんので コンパイラが初期化されないかもってエラー投げるだけっすよ : デフォルトの名無しさん (ワッチョイ 6e01-Dc9L [111.90.9.229]) [] 2019/01/06(日) 00:49:02.45:zpMal+Wd0 ↓これでもエラーになるんで変数が条件式にあるとダメみたいね、リテラルならおk public static void main(String[] args) { boolean a = true; int b; if (a) { b = 2; } System.out.println(b); } : デフォルトの名無しさん (ワッチョイ 82d8-tNgF [61.215.127.65]) [sage] 2019/01/06(日) 00:59:14.50:a7U3YVJ70 そもそもコンパイル通らなくね? 条件が true になるかどうか以前の問題 >解説ではif文の中身が実行されないので初期化によるエラーが出るって書いてあり これが本当なら説明がおかしいな if文云々というより単に宣言された x, a, b が初期化されてないからコンパイルエラーになる if文の中身がtrueになって{}の中が実行されて値が初期化されるかどうかは保証されない : デフォルトの名無しさん (ワッチョイ 97b3-nLVr [118.5.12.246]) [] 2019/01/06(日) 01:10:49.61:T+vTBvBg0 JavaSilverはコンパイル通らないコードについても出題されるからね 初期化によるエラー云々はコンパイラーが吐くエラーメッセージの事を指していると思われ : デフォルトの名無しさん (ワッチョイ a68a-mHCk [121.114.127.30]) [sage] 2019/01/06(日) 01:11:57.31:+dMvWsVO0 ありがとうございます!助かりました 本ではif文の条件に合致せず初期化せずにtotal=x*a*bを計算するのでエラーになる って書いてたのですが…解説がおかしいかどうかはjava初心者なのでよくわかりません : デフォルトの名無しさん (ワッチョイ 6e02-xhm2 [175.134.57.7]) [sage] 2019/01/06(日) 01:55:23.01:dAFYlv7A0 コンパイラとしては実行されるまで if の条件が成立するかどうかわからないため、成立する場合と成立しない場合の両方を考慮しているだけではないかな? で、今回のプログラムの場合は条件が成立しないと初期化されない変数が出てくるためコンパイルエラーになる。 : デフォルトの名無しさん (ワッチョイ 02b9-ikDe [123.48.137.100]) [] 2019/01/09(水) 16:45:54.79:aoiPLBBd0 HDDバースト事件知ってますか? ttp://https://wikiwiki.jp/vipdepso2/09.04%E8%BF%BD%E6%86%B6%E3%81%AEHDD%E3%83%90%E3%83%BC%E3%82%B9%E3%83%88%E4%BA%8B%E4%BB%B6 この手の、ファイル削除系の処理で一歩間違えれば大惨事、というのを防ぐ良い方法はありますか? : デフォルトの名無しさん (アウアウウー Saeb-KJeM [106.132.132.107]) [] 2019/01/09(水) 21:22:34.95:xuLfg6C4a なんだ物理的にバーストした話じゃないのか : デフォルトの名無しさん (スップ Sd7f-yTxx [1.66.97.200]) [sage] 2019/01/10(木) 01:03:37.33:V4IVFX9Qd 健常者に開発させる : デフォルトの名無しさん (アウアウエー Sa9f-7Mna [111.239.166.242]) [sage] 2019/01/10(木) 13:56:48.41:6faDHrU6a 質問です 柴田望洋Javaアルゴリズム本の演習の模範解答に ( (n+1) * (n/2) + (n%2 == 1 ? (n+1)/2 : 0) ) というコードがありました。これを数学っぽく自分が翻訳すると (1)n/2の余りが1のとき (n+1)*(n/2) + (n+1)/2 (2)n/2の余りが1でないとき (n+1)*(n/2) + 0 だと思ったのですが、実際にn=3やn=7を代入して実行してみると(1)と同じ答えになりません。 1からnまでの公差1の等差数列の和ということで手作業で計算してみても実際に(1)はどこかおかしいみたいです。 どなたか(1)の何が変なのか教えてください。 : デフォルトの名無しさん (オッペケ Srdb-D+Sj [126.34.1.14]) [sage] 2019/01/10(木) 15:03:26.18:4z6CKeNUr int型だと例えばn=7のときにn/2は3になるってだけでは そのせいで手計算とズレるんでしょ : デフォルトの名無しさん (ブーイモ MM4b-peLi [210.149.251.160]) [sage] 2019/01/10(木) 20:26:17.36:UUY7OixDM 整数同士の割り算は切り捨て : デフォルトの名無しさん (アウアウエー Sa9f-7Mna [111.239.166.242]) [sage] 2019/01/11(金) 09:08:48.15:e5yPN/cUa ありがとうございます。それで解答だと場合分けしてたんですね 場合分けしたくない場合はdoubleで計算して小数点以下が邪魔に感じられたら計算終えてからintにキャストすればいいんでしょうか。遅くなるのかな : デフォルトの名無しさん (ブーイモ MM4b-peLi [210.149.251.94]) [sage] 2019/01/11(金) 10:10:51.79:se94ZxIpM doubleからintにキャストするときも0.9999は0に切り捨てられてしまうから、Math.roundを使ったほうがいいよ。 計算途中で絶対に小数にならない保証があるなら、おそらく52bitまでならそのままdoubleを整数にキャストできるけども : デフォルトの名無しさん (アウアウエー Sa9f-7Mna [111.239.166.210]) [sage] 2019/01/13(日) 01:54:50.84:Byt7I9dTa なるほどなるほど。ありがとうございます。 : デフォルトの名無しさん (ワッチョイ a3a3-A3MQ [115.176.105.72]) [sage] 2019/02/12(火) 23:11:33.01:VqanzRzk0 syncronizedMapとConcurrentHashMapってConcurrentHashMapの方がいいのかな : デフォルトの名無しさん (ワッチョイ 3db3-tGKk [118.5.12.246]) [] 2019/02/12(火) 23:46:42.62:eVAdyGJj0 せやな : デフォルトの名無しさん (アウアウウー Sa29-EZDe [106.181.159.54]) [age] 2019/02/14(木) 21:29:20.64:0iIJdx51a マルチプラットフォームなデスクトップアプリを作るのにJavaを愛用していましたがJavaFXはオプションになるしそもそもJDK/JREもいつまで使えるかわからないので乗換先の言語を探しています。 - GUIアプリを標準で作れる - マルチプラットフォーム - できればコンパイラ言語 - 学習コストが低い でおすすめは何でしょうか? ご教示方よろしくお願いいたします。 : デフォルトの名無しさん (ワッチョイ 23ad-kWus [27.139.3.34]) [] 2019/02/15(金) 04:13:32.67:aMcTHSTs0 JavaからならC#だけど どこまでやるかだな Macを入れるか入れないかとか 何系作ってるの? : デフォルトの名無しさん (ワッチョイ 6d5f-UXAq [106.72.167.0]) [sage] 2019/02/15(金) 06:17:17.01:yAjWMCK+0 c#だとGUIのコード共通化厳しいのでは。 Win+Macなら今さらだけどAdobeAirとか。証券会社のアプリとかで生き残っている。 LinuxもGUI共通化必要なら、現実的なのはjavaくらいしか知らない。 : デフォルトの名無しさん (アウアウクー MMc1-oGo3 [36.11.224.96]) [sage] 2019/02/15(金) 21:23:54.83:FjaN5554M 条件がGUI共通化だけならElectronとかWeb系かな PWAはどうなってるか知らんけどその内流行るんだろう : デフォルトの名無しさん (ワッチョイ 13b9-2CcH [123.48.137.100]) [] 2019/02/21(木) 12:06:27.49:LculVqLN0 これがb=aのとこでコンパイルエラーになる理由は何ですか? AはTestIを継承したもの、TestClassはTestIを実装している。 総称型の限定において継承と実装は区別されてるんですか? public static interface TestI {} public static class TestClass implements TestI {} private <A extends TestI> void f(TestClass a) { A b = a; } : デフォルトの名無しさん (ワッチョイ fb01-YmSR [111.90.27.175]) [] 2019/02/21(木) 19:48:36.10:fprmeCB00 TestI <- A TestI <- TestClass でTestClassをAに変換できないって出てるんでしょ AはTestIを実装する任意のクラスだから TestClassから変換できないのは当然のような : デフォルトの名無しさん (ワッチョイ 13b9-2CcH [123.48.137.100]) [] 2019/02/21(木) 20:51:00.87:LculVqLN0 あーそうか わかりました。ありがとう : デフォルトの名無しさん (ワッチョイ 13b9-2CcH [123.48.137.100]) [] 2019/02/27(水) 04:09:48.78:ZxiXIgw80 interfaceでthisの型をメソッドの引数に使う方法はありますか?総称型を使わずに これができないとequals的な自クラスの他オブジェクトを受け取るタイプのインターフェースのために 総称型を指定しなきゃいけないので面倒です public interface TestI{ void method(ThisClass o); } : デフォルトの名無しさん (ワッチョイ 53ec-kAzg [115.176.136.8]) [sage] 2019/02/27(水) 07:02:08.01:R7mDgiP40 面倒も何もそれが総称型の意義です 要はComparableみたいなもんでしょ : デフォルトの名無しさん (ワッチョイ 5161-cnIv [218.231.167.235]) [] 2019/02/27(水) 08:45:57.23:Gr4hh2OI0 public interface TestI<T extends ThisClass >{ void method(T o); } : デフォルトの名無しさん (ワッチョイ 5161-cnIv [218.231.167.235]) [] 2019/02/27(水) 08:51:23.70:Gr4hh2OI0 別に面倒でも何でもないよ。 methodの引数でThisClassの子クラスを受け取ったとしても、 intanceofとかする必要は全くない。 : デフォルトの名無しさん (ブーイモ MM8d-vZil [210.149.251.14]) [sage] 2019/02/27(水) 12:39:12.56:0d3JNljSM void method(Testl t)じゃあかんの? : デフォルトの名無しさん (アウアウカー Sa55-kAzg [182.251.192.96]) [sage] 2019/02/27(水) 12:57:07.94:avwBchUKa それ毎回キャストが要るやん : デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100]) [] 2019/02/27(水) 14:30:01.32:ZxiXIgw80 でも"thisの型"をデフォルトで使えても良いと思いませんか? オブジェクトが使用される時常に明らかになっているはずです。 つまり記述を省略できても良い : デフォルトの名無しさん (ワッチョイ 5161-cnIv [218.231.167.235]) [] 2019/02/27(水) 15:19:00.05:Gr4hh2OI0 equals()については、互換性維持。 できないものはできない。 自分で定義するものについては、ジェネリクス使えばよい。 : デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100]) [] 2019/02/27(水) 16:09:27.46:ZxiXIgw80 public interface TestI<T extends TestI>{ void method(T o); } こう書くと警告でます。extends TestIのところで TestI<?>と書くんですか? : デフォルトの名無しさん (アウアウカー Sa55-kAzg [182.251.192.96]) [sage] 2019/02/27(水) 17:50:52.58:avwBchUKa 待って、それを知らずに面倒とか言ってたの Testl<T>でいいんだよ…… : デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100]) [] 2019/02/27(水) 18:38:23.32:ZxiXIgw80 それでも出来るのは最初から分かってるんですが、 意味的にTestIを実装したものしかそこに書かないでしょう? だからその前提を記述しておきたいという話です。 : デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100]) [] 2019/02/27(水) 18:40:40.28:ZxiXIgw80 あと面倒と言ってるのはそのインターフェースを実装しているクラス、 さらにそのクラスを継承したクラス、さらにそれを継承したクラスと 記述箇所が一斉に増えるからです。 抽象クラスが実装しているインターフェースにこういう要件が発生すると実際かなり面倒であることは想像できるはずです。 : デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100]) [] 2019/02/27(水) 18:43:33.03:ZxiXIgw80 public abstract class AbClass<T extends AbClass> implements TestI<T>{ } public abstract class AbClass2<T extends AbClass2> extends AbClass<T>{} このように次々と続いていくことになります。 そしてこれらすべてで警告が出ます。 : デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100]) [] 2019/02/27(水) 18:51:04.99:ZxiXIgw80 上にもありましたがComparable的なインターフェースという事になりますが このようなインターフェースを継承ツリーの上の方で実装すると問題になります。 通常のインターフェースや、通常の総称型インターフェースでは問題無いんですが、 このようなインターフェースはたびたび継承ツリーの各クラスでそのクラスについての実装を記述する事になります。 だから、thisの型が予約語として扱えると非常に便利だろうと。 : デフォルトの名無しさん (ワッチョイ d9d2-4qoz [220.111.235.184]) [sage] 2019/02/27(水) 19:46:32.65:K3ri/4ZM0 再帰ジェネリクスの話ししてる? 違ったらごめん interface TestI<T extends TestI<T>>{ T method(T o); } abstract class AbClass<T extends AbClass<T>> implements TestI<T>{ } abstract class AbClass2<T extends AbClass2<T>> extends AbClass<T>{} abstract class AbClass3<T extends AbClass3<T>> extends AbClass2<T>{} : 75 (ワッチョイ 13b9-4qoz [123.48.137.100]) [] 2019/02/27(水) 21:45:06.35:ZxiXIgw80 できました。 : デフォルトの名無しさん (ワッチョイ d9d2-kAzg [220.111.235.184]) [sage] 2019/02/27(水) 23:40:06.72:K3ri/4ZM0 良かったです : デフォルトの名無しさん (ワッチョイ 2361-CeLW [61.245.58.39]) [] 2019/02/28(木) 08:07:59.94:RsBX7ota0 AbClass<T extends AbClass<T>> こういうのってどういうのを想定してるの? シングルトンではないenumみたいなもの? : デフォルトの名無しさん (ワッチョイ 23b9-SKB1 [123.48.137.100]) [] 2019/02/28(木) 17:19:13.77:X2FmV3yG0 継承ツリーの各クラスでTが連鎖的に定義されるような状況があるとき extends AbClass1<T>の意味は、末端の具象クラスで総称型に指定されたTが 一番上の抽象クラスまで連鎖的に指定されている事を要求しているような意味がある。 : デフォルトの名無しさん (ワッチョイ 23b9-SKB1 [123.48.137.100]) [] 2019/02/28(木) 17:23:29.93:X2FmV3yG0 AbClass<T extends AbClass<T>>これの extends AbClass<T>この部分の意味は、って話 : デフォルトの名無しさん (アウアウカー Sa91-6Vjj [182.251.141.226]) [sage] 2019/03/01(金) 23:04:20.59:KZb5YrRoa 抽象クラスで定義したメソッドで自分の未知のサブクラス返すときとか : デフォルトの名無しさん (ワッチョイ aded-Hr0W [122.135.18.167]) [] 2019/03/04(月) 16:25:49.04:v/u/gYja0 ttp://https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11204388166?fr=ios_other Javaプログラム(MIDI)TransmitterとReceiverと標準Synthesizer 下記のプログラムで音がなります Sequencer sequencer = MidiSystem.getSequencer(); File myMidiFile = new File("d:/tw008.m id"); Sequence mySeq = MidiSystem.getSequence(myMidiFile); sequencer.setSequence(mySeq); sequencer.open(); System.out.println("start"); sequencer.start(); Thread.sleep(60000); ところが、SynthesizerをCloseしても、Receiverを指定しても、 標準のMIDI音源がなりつづけています。この音をけして、 自作アプリのルーチンだけにMIDIを流す手法をご存知の方いらっしゃいますか? Windows10+JDK1.8を使用しています。 : デフォルトの名無しさん (ワッチョイ aded-Hr0W [122.135.18.167]) [] 2019/03/04(月) 19:33:49.60:v/u/gYja0 解決しました : デフォルトの名無しさん (ワッチョイ e3a3-+f+8 [115.176.105.72]) [sage] 2019/03/04(月) 21:04:50.65:/O719wMt0 解決した方法ぐらい書けよクソが : デフォルトの名無しさん (ワッチョイ aded-Hr0W [122.135.18.167]) [] 2019/03/04(月) 21:09:40.54:v/u/gYja0 getSequencer(true) または getSequencer(false) で オブジェクト思考じゃないシンセサイザーが くっつくかどうか決まる ttp://https://osdn.net/projects/midicrossport/howto/usage の ttp://https://osdn.net/projects/midicrossport/scm/svn/blobs/head/V-0.2%20AddPlayer/src/net/sourceforge/midicrossport/swing/MXPortMIDIPlayer.java で早速使いました : デフォルトの名無しさん (ワッチョイ aded-Hr0W [122.135.18.167]) [] 2019/03/04(月) 22:05:35.70:v/u/gYja0 javaは隠してるメソッド多いよね 今回のは過去のソースの動作などの 整合性のためだと思うけどさ 肝に銘じて作りこんでいきます 4時間悩んでjavadocみたら5秒で解決したわ : デフォルトの名無しさん (アウアウクー MM21-tQZn [36.11.225.62 [上級国民]]) [] 2019/03/05(火) 20:19:30.79:EdVc4MwEM そういうのは非推奨になってないか? : fusianasan (ワッチョイ e3a3-+f+8 [115.176.105.72]) [sage] 2019/03/06(水) 02:05:18.33:n2VNtnMC0 交差型キャストの使い道、ある? : デフォルトの名無しさん (ワッチョイ e3a3-+f+8 [115.176.105.72]) [sage] 2019/03/06(水) 02:12:58.66:n2VNtnMC0 ついでにListの要素をEnumしか取れなくしたEnumListみたいなのある?(ググり済み) : デフォルトの名無しさん (ブーイモ MM43-VPTz [49.239.68.122]) [age] 2019/03/06(水) 12:33:32.69:twdiy1n8M List<Enum>じゃあかんのか? : デフォルトの名無しさん (ワッチョイ e3a3-+f+8 [115.176.105.72]) [sage] 2019/03/06(水) 14:46:27.86:n2VNtnMC0 EnumSetとかEnumMapみたいな省メモリな実装があったらいいなーと思って : デフォルトの名無しさん (ブーイモ MM43-VPTz [49.239.68.122]) [age] 2019/03/06(水) 18:26:17.49:twdiy1n8M ないよ♪ : デフォルトの名無しさん (アウアウカー Sa91-cbQp [182.251.184.155]) [sage] 2019/03/06(水) 18:31:31.19:izEJjivba 重複がないからこそ連番の配列として扱えてるのに、重複が許されるリストじゃやりようがない : デフォルトの名無しさん (ワッチョイ ab5f-BAw6 [106.72.150.32]) [sage] 2019/03/07(木) 12:03:41.01:gGJGAOob0 べき乗の計算式を作りたいのですがうまくいきません (例) a=5; a=a^2; 上記の例のようにしても、結果が25になりません Javaではべき乗計算はサポートしていないのでしょうか? : デフォルトの名無しさん (ワッチョイ 8790-0yyx [182.21.48.176]) [sage] 2019/03/07(木) 12:36:39.64:p9KSjCQy0 ワロタ。演算子じゃなくてそういうメソッドがあるはず。Mathクラスのメソッド調べてみん : デフォルトの名無しさん (アウアウウー Sa1b-hLQV [106.132.137.60]) [] 2019/03/07(木) 12:47:48.74:NXRNz+RGa ない。Math.pow()使う。 ttp://https://www.javadrive.jp/start/math/index4.html : デフォルトの名無しさん (ワッチョイ ab5f-LDqw [106.72.163.96 [上級国民]]) [] 2019/03/07(木) 12:56:15.23:fEnrnvq10 VB系?なんで他の言語と同じだと思うのか? : デフォルトの名無しさん (ワッチョイ dfe9-/kwh [222.15.235.177]) [sage] 2019/03/07(木) 17:27:05.50:GsPaI+yW0 XORは大昔自前のカーソルを作った時に使った記憶がある。 覚えている限りその後1度も使ってない。 : デフォルトの名無しさん (ブーイモ MMfe-fVIY [163.49.205.152]) [age] 2019/03/07(木) 17:42:58.27:5OHvHrCkM 演算子ってだいたいどれも同じでしょ Javaが変態じゃなければ : デフォルトの名無しさん (ワッチョイ 4eda-ouaW [223.218.132.71]) [sage] 2019/03/07(木) 20:29:39.29:wbxrkc+00 VBは変態 : デフォルトの名無しさん (アウアウウー Sa1b-hLQV [106.132.137.60]) [] 2019/03/07(木) 20:37:45.84:NXRNz+RGa よくぞ私が変態であることを見破った。 君も仲間にしてあげよう。 : デフォルトの名無しさん (ワッチョイ 4eda-ouaW [223.218.132.71]) [sage] 2019/03/07(木) 20:58:32.73:wbxrkc+00 俺は満月の夜に変態する : デフォルトの名無しさん (ワッチョイ ab5f-LDqw [106.72.163.96 [上級国民]]) [] 2019/03/07(木) 23:01:15.30:fEnrnvq10 同じじゃないよ。 : デフォルトの名無しさん (アウアウカー Sa27-F7Qp [182.251.183.244]) [sage] 2019/03/07(木) 23:02:42.20:oTfLqBj1a Scala「演算子ってなんだっけ」 : デフォルトの名無しさん (ワッチョイ ce01-WpCY [111.90.4.72]) [] 2019/03/08(金) 06:06:53.29:hih03Kc60 同じだとは言ってない : デフォルトの名無しさん (アウアウカー Sa27-C/vZ [182.251.233.135]) [sage] 2019/03/09(土) 17:58:45.34:IPK2i5wVa 二項^は言語によって意味が違う筆頭だから。 交差型へのキャストそのものが目的でないならラムダ式をSerializableやCloneableにするためかな。 (Lambda & Serializable)や(Lambda & Cloneable)でキャストするとコンパイラがSerializableやCloneableを導出する。 : デフォルトの名無しさん (ワッチョイ 82a3-QfcG [115.176.105.72]) [sage] 2019/03/11(月) 23:15:46.61:+cXkYAGY0 ラムダをシリアライズとかきもいし、cloneできるようにするっていうのもキモいな…なんでだろう それはともかく解説ありがとう : デフォルトの名無しさん (スップ Sd5f-nIdv [49.97.105.39]) [sage] 2019/03/15(金) 10:24:40.99:Ok3y758Id servletの質問です httpServletを継承したクラスで、web.xmlに記載されたコンテキストの初期化パラメータにアクセスしたいとき、まずServletContextオブジェクトを取得すると思います。 this.getServletContext() と getServletConfig().getServletContext() その方法として上記2つがあるようですが、 ServletConfigオブジェクトを経由するかしないかの違いだけで、 どちらでも同じオブジェクトを得られると考えて大丈夫でしょうか? また、どちらの方法が推奨される、または一般的などありますか? : デフォルトの名無しさん (ワッチョイ 2361-YxN5 [218.231.194.55]) [] 2019/03/15(金) 15:28:02.60:oN7LPR9/0 上は下のショートカット。 のはずなんだけど、どの実装だったか忘れた(tomcatかjetty)けど、上だとnullを返すものがあったりする。 : デフォルトの名無しさん (ワッチョイ efda-h1+v [223.218.107.217]) [sage] 2019/03/15(金) 16:26:03.07:qau92T4C0 作ったプログラムがきちんと動作しそうもない初心者の匂い : デフォルトの名無しさん (ワッチョイ 3fb9-geq4 [123.48.137.100]) [] 2019/03/17(日) 20:07:31.39:WG0MhxwJ0 順序を保証しないコンテナ系オブジェクトは同じ順番で同じ値を入力したとして シリアライズした時のバイナリの一致を保証しますか? @Test public void serializeTest() { Map<Integer, byte[]> m1 = new HashMap<>(); Map<Integer, byte[]> m2 = new HashMap<>(); Random rnd = new Random(); try { for (int j = 0; j < 1000; j++) { m1.clear(); m2.clear(); for (int i = 0; i < 1000; i++) { byte[] v = new byte[32]; rnd.nextBytes(v); m1.put(i, v); m2.put(i, v); } byte[] b1 = serialize(m1); byte[] b2 = serialize(m2); if (!Arrays.equals(b1, b2)) {//b1,b2の同値性が保証されるか? System.out.println("false"); } } } catch (Exception e) { } } : デフォルトの名無しさん (ワッチョイ 3fb9-geq4 [123.48.137.100]) [] 2019/03/17(日) 20:09:43.63:WG0MhxwJ0 private byte[] serialize(Object o) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutput out = null; try { out = new ObjectOutputStream(bos); out.writeObject(o); out.flush(); return bos.toByteArray(); } catch (Exception e) { return null; } finally { try { bos.close(); } catch (IOException ex) { } } } : デフォルトの名無しさん (ワッチョイ 3fb9-geq4 [123.48.137.100]) [] 2019/03/17(日) 20:11:36.70:WG0MhxwJ0 実行時のメモリ状況とかなんかそういうものに依存して変わってしまうのかどうか。 HashMapでなくConcurrentHashMapはどうか、HashSetはどうかとか、知りたいです。 : デフォルトの名無しさん (ワッチョイ bfa3-vdqk [115.176.105.72]) [sage] 2019/03/18(月) 18:40:58.81:dcUw/hqV0 自分で確かめてみればいいのに(΄◉◞౪◟◉`) 予想としてはちゃんと復元できると思うけど : デフォルトの名無しさん (ブーイモ MM5f-7Wyv [49.239.66.129]) [age] 2019/03/18(月) 18:46:45.54:YtFzpwnZM たまたま同じになるのか 必ずそうなるのか確証が欲しいのでござろうよ : デフォルトの名無しさん (ワッチョイ 3fb9-geq4 [123.48.137.100]) [] 2019/03/18(月) 18:50:01.07:cWWfW/xk0 復元できるか、じゃなくて どんな実行時状態でシリアライズしてもバイナリレベルで同値になるか、が知りたい : デフォルトの名無しさん (ワッチョイ bfa3-vdqk [115.176.44.125]) [sage] 2019/03/18(月) 22:49:36.52:XEyYngRi0 ま、おそらく同一でしょう。 ttp://https://ideone.com/bnSo8d : デフォルトの名無しさん (ワッチョイ 5390-TzFu [182.20.42.120]) [sage] 2019/03/18(月) 23:48:32.22:Hb2NJ3+s0 保証とかいってるから、そんな何々だろうレベルの言質じゃなくて仕様書レベルを求めてるんじゃねぇかな : デフォルトの名無しさん (ワッチョイ b3da-gh5u [222.150.118.7]) [] 2019/03/18(月) 23:55:46.27:5wxGaqei0 オラクルは儲かってるのかな? : デフォルトの名無しさん (ワッチョイ 53da-h1+v [118.19.13.75]) [sage] 2019/03/19(火) 09:51:49.84:9FtXmaQk0 おそらく計算機のど素人と推察される : デフォルトの名無しさん (ワッチョイ cf7b-h1+v [153.198.51.41]) [sage] 2019/03/20(水) 04:13:13.63:P9Hv23UK0 Java SE 12 ttp://www.oracle.com/technetwork/java/javase/downloads/ : デフォルトの名無しさん (ワッチョイ 1aa3-pM/3 [115.176.44.125]) [sage] 2019/03/21(木) 01:07:42.56:KPwU/5400 業務で全部テストをパスしても100%瑕疵がないことを保証できないのと同じ そんなに確実にしたいんだったらJavaの言語規格とjava.util.HashMapのソースでも嫁 : デフォルトの名無しさん (アウアウカー Sa73-9FTr [182.251.224.132]) [sage] 2019/03/27(水) 22:59:38.84:o4Iu/UDza なんで順序持たないコレクションの順序が常に一致すると思うの? >順序を保証しないコンテナ系オブジェクトは同じ順番で同じ値を入力したとして 最初の8文字で答え出てるし、 >どんな実行時状態でシリアライズしてもバイナリレベルで同値になるか これに至ってはそんな事ある訳ないじゃん。 > This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time. 仕様に書いてある。 の言う通りだろう。 : デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151]) [age] 2019/03/27(水) 23:36:48.05:BBWM5zqe0 goのように意図的にランダムにしない限り 一致すると思うけどね実装が変わるわけじゃないし 状態も同じになるっしょ : デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151]) [age] 2019/03/27(水) 23:39:11.95:BBWM5zqe0 ハッシュテーブルがリサイズされるから保証されないだけなんじゃないかな、普通に考えてインスタンス生成して同じ数の同じデータ打ち込んだら同じ並びになると思うけど : デフォルトの名無しさん (ワッチョイ bada-DTGA [125.203.169.233]) [sage] 2019/03/27(水) 23:43:26.75:i+BOT5k20 素人が素人のフォローw >どんな実行時状態でシリアライズして >普通 : デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151]) [age] 2019/03/27(水) 23:47:11.56:BBWM5zqe0 シリアライズされる状態は一つじゃん デシリアライズのたびに状態が変わるとは思えないなあ : デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151]) [age] 2019/03/27(水) 23:48:33.66:BBWM5zqe0 チミたち考えが浅いよ薄っぺらい : デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151]) [age] 2019/03/27(水) 23:52:10.28:BBWM5zqe0 質問者は鋭いよ それに気づく僕も賢い 回答者は残念 : デフォルトの名無しさん (ワッチョイ 9fda-ZTi4 [125.203.169.101]) [sage] 2019/03/28(木) 02:21:03.21:fobYAqGk0 素人さんこんばんは : デフォルトの名無しさん (ワッチョイ b701-ep2I [202.72.70.151]) [age] 2019/03/28(木) 06:06:45.69:m1sw7rzN0 お前が素人 : デフォルトの名無しさん (ドコグロ MMdf-1rTY [119.241.244.226]) [sage] 2019/03/28(木) 07:12:09.21:HZOnw3MEM 質問者は「保証しますか?」って聞いてるのにID:BBWM5zqe0は「思えないなあ」とかw グダグダ言う前にもう少し落ち着いて質問読み返せよ : デフォルトの名無しさん (ワッチョイ b701-ep2I [202.72.70.151]) [age] 2019/03/28(木) 07:40:15.21:m1sw7rzN0 保証されるかはわからないが僕の結論 は質問の本質を理解してなかったようだから それはおかしいよって : デフォルトの名無しさん (ワッチョイ b701-ep2I [202.72.70.151]) [age] 2019/03/28(木) 07:43:49.09:m1sw7rzN0 質問読み直したけど129はアホ : デフォルトの名無しさん (ドコグロ MMdf-1rTY [119.241.244.226]) [sage] 2019/03/28(木) 08:13:59.98:HZOnw3MEM どうみてもお前の方がアホとしか見えないけど… : デフォルトの名無しさん (ブーイモ MM3b-ep2I [210.149.254.246]) [age] 2019/03/28(木) 08:27:35.24:td1zwKnnM 順番が保証されないコレクションの説明は シリアライズでバイナリが一致することは保証されない ことを意味するものではない ニンジンが赤いからブタさんはピンク色なんだと言ってるようなもの : デフォルトの名無しさん (ブーイモ MMbf-ep2I [49.239.68.160]) [age] 2019/03/28(木) 08:46:48.07:8uqRVz3RM 関連がありそうなものをあげてるだけで論理も何もない 雰囲気でJavaをやってるのかと 葉加瀬太郎をググったらパパイヤ鈴木が 表示されたから二人はプリキュアと言ってるようなものでしょうが! ちなみに僕はJavaに魂と全財産を捧げる覚悟です : デフォルトの名無しさん (ブーイモ MMbf-ep2I [49.239.68.160]) [age] 2019/03/28(木) 08:48:02.48:8uqRVz3RM 僕今汽車に乗ってるからip変わるよ 文体でわかるでしょ : デフォルトの名無しさん (ブーイモ MMbf-ep2I [49.239.68.160]) [age] 2019/03/28(木) 08:57:19.80:8uqRVz3RM 素人呼ばわりしたことを僕に謝って欲しい 僕はJavaに残りの人生すべてかけてる 子供も恋人も友達も作らなかった 僕は30億のデバイスで動くJavaと共に生きるんだ : デフォルトの名無しさん (アメ MM3b-Dmdl [210.142.96.138]) [] 2019/03/28(木) 09:08:31.13:cT63rms5M スゲェたとえw : デフォルトの名無しさん (ドコグロ MM6b-1rTY [118.109.188.141]) [sage] 2019/03/28(木) 12:30:23.43:yd30y0n6M > シリアライズでバイナリが一致することは保証されない > ことを意味するものではない 内部の順序は違うけどシリアライズする時には常に同じ順序でシリアライズするとか普通はやらないからやると言うならその根拠出してくれ : デフォルトの名無しさん (ブーイモ MMbf-ep2I [49.239.68.160]) [age] 2019/03/28(木) 18:55:29.38:8uqRVz3RM 僕そんなこと言ってないから その根拠出さない : デフォルトの名無しさん [sage] 2019/03/28(木) 20:13:48.28 Java歴2年ぐらいです Javaで独自のファイルリネームソフト作りたいんだけど、今の時代のJavaでのGUIに丁度いいフレームワークやライブラリって何がある? 5年ぐらい前にちょっとSwingに触れたんだけど、他にもあるみたいで、どう違うのかが分からない それぞれの違いも強みも分からないんだが、何かアドバイスある? : デフォルトの名無しさん (アウアウウー Sa9b-dxKi [106.132.131.237]) [] 2019/03/28(木) 21:05:44.98:KhTRBxbZa シーン : デフォルトの名無しさん [sage] 2019/03/28(木) 21:09:30.98 Javaの入門書やJavaでのWeb関連の入門書については本は沢山出てるのに GUIとなると全然本が無い 俺はJavaしか知らないからJavaだけでGUIやりたいのに : デフォルトの名無しさん (アウアウウー Sa9b-dxKi [106.132.131.237]) [] 2019/03/28(木) 21:10:36.27:KhTRBxbZa AWTでも使っとけ : デフォルトの名無しさん (ワッチョイ 9fda-ZTi4 [125.203.169.35]) [sage] 2019/03/28(木) 21:26:32.87:DnYr279r0 FXが新しいけど : デフォルトの名無しさん (ラクッペ MMcb-6d7l [110.165.218.188]) [sage] 2019/03/28(木) 21:27:09.63:ccwG1GmHM あれ消えたんじゃなかったっけ? : デフォルトの名無しさん (ワッチョイ 9fda-ZTi4 [125.203.169.35]) [sage] 2019/03/28(木) 21:44:55.82:DnYr279r0 Java SE 11で止めたみたいね : デフォルトの名無しさん [sage] 2019/03/28(木) 21:59:24.58 じゃあJavaでGUIってどうなんの? そもそも想定されてないの? : デフォルトの名無しさん (アウアウエー Sadf-9gjM [111.239.67.116]) [sage] 2019/03/28(木) 22:40:07.29:eBl2daiha ググれば山のように出てくるのに何で聞くの? : デフォルトの名無しさん (ラクペッ MMab-SZwg [134.180.1.223]) [] 2019/03/28(木) 22:54:34.01:K2f2dATQM ID消してる奴とか相手にするなよ : デフォルトの名無しさん [sage] 2019/03/29(金) 00:02:31.06 とっかかりの所だけ教えて欲しい アマゾンで書籍を検索してもSwingだのJavaFXだのヒットしても出版年がどれも4,5年以上前のモノばっかり 俺は新しい技術で学習したいのに、仮にSwingで学んだとしても世間で役に立たなくなってしまうようなのはさすがにいや : デフォルトの名無しさん (ワッチョイ bf02-PjTv [175.134.57.7]) [] 2019/03/29(金) 03:35:37.24:SC13fhfQ0 JDKに含めて配布するのを止めただけでは?あのライブラリそのものはフリーで生き続けてると思うが。 : デフォルトの名無しさん (ワッチョイ bf02-PjTv [175.134.57.7]) [] 2019/03/29(金) 03:37:10.81:SC13fhfQ0 君が新しいの作って世界中に広めれば良い。 : デフォルトの名無しさん (ワッチョイ 9f01-1rTY [219.204.123.70]) [sage] 2019/03/29(金) 06:19:17.41:K/KVc7630 Java自体の先行きが怪しいのに… : デフォルトの名無しさん (アウアウエー Sadf-9gjM [111.239.60.188]) [sage] 2019/03/29(金) 12:23:07.42:6mM1A6nEa まあでも4,5年は生き残っている技術ではあるわけで 最新の技術は明日消えてもおかしくない swing, spring, javafx あたりでいいんじゃないの 個人的には java そのものを進めないけどな : デフォルトの名無しさん (アウアウウー Sa9b-dxKi [106.132.132.117]) [] 2019/03/29(金) 13:43:50.35:yvHYr2oUa Kotlinもよろしく : デフォルトの名無しさん (ワッチョイ 3761-Syny [218.231.90.57]) [sage] 2019/03/29(金) 14:20:06.19:sD1xGsa70 Swingが一番いい。昔から安定してるし、使いやすいし、 分かり易く、美しく、プログラマからはコントロールしやすい。 恐らく現存する ToolKit の中でも最も美しい設計だと思われる。 : デフォルトの名無しさん (ワッチョイ 3761-ycr5 [218.231.141.137]) [] 2019/03/29(金) 17:55:11.26:ueEql8o20 Kotlinだと探せば、Swingを美しくラップしてくれるライブラリとかありそうだけどな。 DSLで宣言的に書けるような。 : デフォルトの名無しさん (ワッチョイ 9f80-TeGn [211.11.15.158]) [sage] 2019/03/29(金) 18:49:42.37:Zeo6kkdW0 Java FXは死亡したのでSwingを使うことになるが Swingは全然新しくなってないので古い資料で十分 新しくなる見込みもない 「JavaGUIプログラミング JavaSE6対応」のVol.1とVol.2買っとけ : デフォルトの名無しさん (オッペケ Sr0b-zF5j [126.211.116.13]) [sage] 2019/03/29(金) 20:21:36.86:llWWvfq2r swingがいいと思う。 pure java で使いやすい。 : デフォルトの名無しさん (アウアウウー Sa9b-dxKi [106.132.132.117]) [] 2019/03/29(金) 20:54:44.53:yvHYr2oUa え?Swing はベースが awt だから pure java ではないよな? : デフォルトの名無しさん (ワッチョイ bfda-ZTi4 [223.218.130.253]) [sage] 2019/03/29(金) 21:02:05.08:FFMJozVB0 私の小鳥は何処? : デフォルトの名無しさん (ブーイモ MM3b-ep2I [210.149.250.22]) [age] 2019/03/29(金) 22:41:41.56:jCJGGG5lM ん? : デフォルトの名無しさん (オッペケ Sr0b-zF5j [126.211.116.13]) [sage] 2019/03/29(金) 22:59:32.50:llWWvfq2r ちょっと何言ってんのか分かんないっす。 : デフォルトの名無しさん (ワッチョイ bfda-ZTi4 [223.218.130.253]) [sage] 2019/03/29(金) 23:02:34.96:FFMJozVB0 馬鹿乙 : デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.134.139]) [] 2019/03/30(土) 17:29:34.66:2+xyc9oI0 初心者なんですがクラスでインポートしたクラスインスタンスを作った後にそのインスタンスをメインメソッドで呼び出すって事は出来ないんですか? : デフォルトの名無しさん (ワッチョイ bf01-Gaau [111.90.7.238]) [] 2019/03/30(土) 19:26:42.86:M3wvGATb0 ちゃんと説明して! : デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.171.50]) [] 2019/03/30(土) 20:43:48.96:ngbl3dxd0 ちゃんとエスパーしてください : デフォルトの名無しさん (ワッチョイ 97e9-r4m/ [222.15.235.177]) [sage] 2019/03/30(土) 20:54:22.07:XWeRwMKO0 こんな感じか public class Test{ static String s = new String("a"); public static void main(String[] args){ System.out.println (s) ; } } : デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.166.59]) [] 2019/03/31(日) 02:11:44.91:9aPRYZvk0 えーとですね例えばリストクラスとかをあるクラスにインポートしてインスタンス化した後そのインスタンスをメインメソッドのあるクラスで呼んで使う場合どうすればいいのかと考えたんです。 今のところメインメソッドのあるクラスでしかインポートした事ないので他のクラスでリストなどの配列処理をさせてその処理の結果をメインメソッドで出力したいのです。 : デフォルトの名無しさん (ワッチョイ bf02-9gjM [175.134.57.7]) [] 2019/03/31(日) 06:06:39.63:x4Dlbn8C0 そのクラスのメソッドから List のインスタンス返せば良いだけでは? 何に悩んでるかよくわからない。 : デフォルトの名無しさん (ワッチョイ 3761-ycr5 [218.231.194.81]) [] 2019/03/31(日) 09:18:12.51:RM3UTWN00 staticメソッドとインスタンスメソッドの区別がついてないだけだろ。 : デフォルトの名無しさん (ワッチョイ 3701-m1Ef [122.24.34.20]) [sage] 2019/03/31(日) 10:00:29.29:bS6sgKsX0 staticでない変数をstaticコンテキストから参照することはできません : デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.184.247]) [] 2019/03/31(日) 10:11:45.90:CwgH065r0 返信ありがとうございます そのやり方をコードで見せてもらえませんか? : デフォルトの名無しさん (ワッチョイ 97e9-r4m/ [222.15.235.177]) [sage] 2019/03/31(日) 10:14:59.85:5L0dnt340 これでいいんじゃね?何も難しいことない。 *** TestMain.java *** package testPackage; import java.util.List; public class TestMain { public static void main(String[] args) { TestSub testSub = new TestSub(); List<String> myList = testSub.getList(); System.out.println(myList); } } *** TestSub.java *** package testPackage; import java.util.ArrayList; import java.util.List; public class TestSub { public List<String> getList() { List<String> strList = new ArrayList<>(); strList.add("a"); strList.add("b"); return strList; } } : デフォルトの名無しさん (ワッチョイ 57da-ZTi4 [118.19.12.91]) [sage] 2019/03/31(日) 10:21:19.41:dQUnpGay0 初心者スレでやれよ : デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.184.247]) [] 2019/03/31(日) 10:32:54.83:CwgH065r0 ありがとうございます!!メソッドの中でインスタンスを生成するのとそのインスタンスメソッドをメインメソッドで代入する時の型はどうすればいいのかが分かんなかったんです。 ただ自分のコードで書いたらメインJavaの操作は安全ではありませんと出てコンパイルエラーになる(´・ω・`) : デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.184.247]) [] 2019/03/31(日) 10:43:23.73:CwgH065r0 調べたらエラーじゃなくて警告なんですね実行できました!!初心者スレでするべきでしたね答えてくれた方々ありがとうございました^_^ : デフォルトの名無しさん (ワッチョイ 37a3-exnd [218.226.212.158]) [sage] 2019/04/01(月) 01:52:33.40://wZRuJn0 こら!StringのコンストラクタにString渡すんじゃない! : デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92]) [] 2019/04/06(土) 13:59:48.50:2ennWA4x0 メインアプリのプロジェクトA そのアップデータのプロジェクトB があります。メインアプリもアップデータも自己完結型パッケージにして 1個のzipかインストーラでインストールする予定です。 あとBからAのクラスを参照したい。 それで今こう考えてるんですが妥当なのかどうか。 ・プロジェクト参照でBの開発中にAのクラスやライブラリを参照することができる ・自己完結型パッケージにするときAとBでclassファイルやjarを共通化できる? ・実行可能ファイルが複数あっても自己完結型パッケージにできる? : デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92]) [] 2019/04/06(土) 14:08:17.53:2ennWA4x0 疑問を追加します ・自己完結型パッケージにおいて、アップデータを実行しているJREをアップデータが更新できるのか? : デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92]) [] 2019/04/06(土) 14:34:50.23:2ennWA4x0 加えます。 ・Java8よりJava9以降のJigsaw対応バージョンの方が自己完結型パッケージのサイズは小さくなる? ・ライセンスを確認したところ独自のソフトウェアと同梱する場合JDKを再配布しても良いようだった。 ttp://https://www.oracle.com/technetwork/jp/articles/java/ja-topics/jdk-release-model-4487660-ja.html >「ユーザーが開発したソフトウェアとともに配布すること」という制限事項があります ・アップデータでインストールされた自己完結型パッケージのJRE部分を丸ごと削除して新しいものに置き換える動作はライセンスの範囲内のように読める。 つまりデスクトップアプリでメインアプリ+アップデータという構成でどうやればいいのかなと。 自己完結型パッケージ+Java8とか考えてるんですが、 OpenJDKなのかOracle JDKなのかとか選択肢が多くてちょっと混乱してます。 : デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92]) [] 2019/04/06(土) 14:45:29.44:2ennWA4x0 ・AdoptOpenJDKというのがあり、OracleJDKやOpenJDKなどと異なる”ビルド”であると 説明されますが、ソースコードが同じなのにビルドでどれだけ変わるんですか? これまでOracleJDKで開発してきたソースコードはAdoptOpenJDKに移行すると問題が生じますか? : デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92]) [] 2019/04/06(土) 15:18:21.79:2ennWA4x0 Javaのビルドについて考えてるとブラウザのタブがどんどん増えていく・・・ Correttoが良さそうですね。 HotSpotの代用としてGraalVMが作られているようで、じきにこれがHotSpotを性能で上回るでしょう。 しかも少なくとも商業的にはOracleが独占的ライセンスを維持する可能性が高く、 Oracle以外のJREでは利用できないでしょう。 つまりOpenJDKビルドが乱立している状況はHotSpotが自由なライセンスで公開されている事に依存していて、 OracleがGraalを始動させたら終わってしまうかもしれないということです。 現時点でGraalはHotSpotの性能を上回っていません。 : デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92]) [] 2019/04/07(日) 10:19:05.70:cWSWTJIR0 何で自己完結型はJREを含めるのにexeを作るんだ? 同梱されたJREで ./path/to/jre/bin/java app.jar でいいだろ : デフォルトの名無しさん (ワッチョイ 25da-BZhk [114.180.157.239]) [sage] 2019/04/07(日) 11:27:31.20:PGBDtD6t0 それでいくら払えるの? : デフォルトの名無しさん (ササクッテロ Sp49-CDF1 [126.33.102.109]) [] 2019/04/08(月) 18:05:51.31:wSfHRAdHp ポリモーフィズムって過程はともかく同じメソッドの呼び方で様々な結果が出れば良いって考えなんだけど違う? : デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92]) [] 2019/04/08(月) 18:13:17.86:4OqfLsPj0 クラス、抽象クラス、interfaceと多数の型を備えている事では? : デフォルトの名無しさん (ワッチョイ abda-6m8T [121.115.237.243]) [] 2019/04/08(月) 21:56:49.44:+97MZh9m0 異なる具象クラスのインスタンスを まとめてメソッドに渡せる仕組みだと勝手に思ってる 象クラス、麒麟クラス、うさぎクラス まとめて受け取る動物メソッドみたいなもん : デフォルトの名無しさん (アメ MMe1-3NqX [210.142.96.72]) [] 2019/04/09(火) 01:24:14.25:03qzHG/tM バナナゴリラジャングル問題 : デフォルトの名無しさん (アウアウウー Sa91-T5wd [106.132.124.226]) [] 2019/04/09(火) 13:15:30.33:xq+Mg1lAa レールの幅が同じなら違う車両も乗せて走らせられるみたいな : デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92]) [] 2019/04/09(火) 22:43:07.81:3cQd1WBf0 ”様々な結果が出れば良い” これだと引数が違えば違う結果が出るから妥当じゃない 逆に異なる型の異なるメソッドを呼び出したとしても同じ出力になるかもしれない 1種類の型に対して定義されたメソッドが複数の型に対して機能する、ってことだ : デフォルトの名無しさん (ワッチョイ 23a3-4FRu [218.226.211.189]) [sage] 2019/04/11(木) 23:44:09.20:jdRk1pWI0 Function<A, B>とFunction<B, R>を合成してFunction<A, R>にしたい そしてふたつのConsumer<T>を合成してConsumer<T>にしたい 教えてクレメンス : デフォルトの名無しさん (ワッチョイ 1e01-AWLV [111.90.21.145]) [] 2019/04/12(金) 00:40:24.29:lCQDwLY00 andThenメソッドでどう? : デフォルトの名無しさん (ワッチョイ d302-eS/W [106.158.104.38]) [] 2019/04/12(金) 01:37:06.31:kPkxqpeR0 歴史的な経緯もある。 オーバーロード・オーバー・ライドの多態性が先で、テンプレート(ジェネリクス)が後だから、時代によって勧める多態性が違う。 : デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131]) [] 2019/04/12(金) 15:11:37.91:f02m+jwt0 EclipseでコンパイルレベルJDK11までしか選べないんだけど まだJDTが12まで対応してないとか? : デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131]) [] 2019/04/12(金) 15:23:21.41:f02m+jwt0 自己解決。ベータ版のプラグインを入れる必要があったようで : デフォルトの名無しさん (ドコグロ MMaa-x1Th [119.243.54.194]) [sage] 2019/04/12(金) 16:44:45.43:LhXUTlO1M eclipseはJDK8と心中だろう そんな最新のJDK使える開発で未だにeclipseに拘る意味がわからない いい加減IntelliJに乗り換えろよ : デフォルトの名無しさん (ワッチョイ 6bda-yqpC [114.190.255.223]) [sage] 2019/04/12(金) 16:47:18.07:ob9MV6nx0 有料じゃないと使えないとか : デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131]) [] 2019/04/12(金) 22:41:55.90:f02m+jwt0 IntelliJは使ったこと無いな NetBeansよりオススメ? : デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131]) [] 2019/04/13(土) 00:02:18.39:UkAWtOas0 試しにNetBeans, IntelliJ両方入れてみたけど重くてもEclipseのUIが一番でしょ : デフォルトの名無しさん (ワッチョイ 67e9-clLQ [222.15.235.177]) [sage] 2019/04/13(土) 09:14:21.94:zAmtHmMK0 Eclipseって立ち上げが異様に遅くない?うちだと2分くらいかかるよ。Windowsのアップデートが来るとうんざりする。 : デフォルトの名無しさん (ワッチョイ 2387-IujH [218.41.189.138]) [sage] 2019/04/13(土) 19:18:26.87:a4r2Gpw40 IBMは何でEclipseで無駄な開発をしたのかね。無償提供して何か報われたのかな。 : デフォルトの名無しさん (ワッチョイ d201-EjgJ [219.204.123.70]) [sage] 2019/04/13(土) 19:27:05.58:vzJQEXVg0 当時はeclipseに代わるもの無かったし : デフォルトの名無しさん (ワッチョイ 0f2e-AWLV [118.86.132.191]) [] 2019/04/13(土) 20:14:34.32:osnUgzxu0 それを言うなら日本はなんでアメリカと戦争したのかね 核を落とされただけじゃないか : デフォルトの名無しさん (ワッチョイ 6bda-yqpC [114.185.4.211]) [sage] 2019/04/13(土) 20:57:38.93:Puj10Jqk0 爺さんのプライドのためだよ : デフォルトの名無しさん (ワッチョイ 23a3-4FRu [218.226.211.189]) [sage] 2019/04/14(日) 01:30:00.79:zEHeHyPc0 さんくす ちゃんと合成できたわ : デフォルトの名無しさん (ワッチョイ 23a3-4FRu [218.226.211.189]) [sage] 2019/04/14(日) 01:33:26.33:zEHeHyPc0 オヌヌメ UIが好き勝手にできる (そりゃ当たり前か?)しかっこの前にスペースを入れる入れないとか細かい次元で設定もできる、おまけにリファクタリングが充実してる 欠点としてはズームで拡大縮小ができないことぐらいかな CommunityエディションでもすごいけどUltimateエディションだともっとすごい OSSとか開発してるならただで手に入るから試してみ : デフォルトの名無しさん (ワッチョイ 1e02-yKKz [175.134.57.7]) [] 2019/04/14(日) 11:06:33.13:JuY/4ckm0 Kotlinもよろしく : デフォルトの名無しさん (ワッチョイ 5294-U5P5 [123.48.66.92]) [] 2019/04/14(日) 22:01:17.23:W2teM0KI0 jvmのgcは実際どれくらいのラグを引き起こすものなの? 例えばメモリ1GBくらい使ってるアプリで : デフォルトの名無しさん (ワッチョイ 5294-U5P5 [123.48.66.92]) [] 2019/04/14(日) 22:02:44.54:W2teM0KI0 java8のGCで。デフォだとパラレルGCだな。 コンカレントGCだとどれくらいなんだろう。 : デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131]) [sage] 2019/04/14(日) 22:39:42.36:JOroMq8K0 そんな機能いらんだろ・・・ : デフォルトの名無しさん (ワッチョイ 5294-U5P5 [123.48.66.92]) [] 2019/04/15(月) 02:16:43.52:cuQSJXma0 JVMからデバイスドライバの機能を呼び出す事ってできます? Javaで特殊デバイスと連携するプログラムは開発できるのかなとおもって : デフォルトの名無しさん (ワッチョイ 1e02-yKKz [175.134.57.7]) [] 2019/04/15(月) 10:56:39.66:JaYwanV70 普通はJNIで橋渡しする部分を作る必要があると思う。 しかしLinuxみたいに特殊なファイルに読み書きするだけである程度の操作ができるようなOS及びデバイスドライバならばファイルの読み書きだけでなんとかなってしまうかも知れない。 rootユーザーにならないと駄目かも知れないけど。 : デフォルトの名無しさん (ワッチョイ 1e02-XGqV [175.134.57.7]) [] 2019/04/15(月) 11:14:12.89:JaYwanV70 しかし例え Linux だったとしてもなるべく /dev や /sys 以下の特殊ファイルを直接読むように作るんじゃなくて読み書き用のコマンド実行するように作った方が良いかも。 というのは kernel のアーキテクチャやバージョンによって同じファイルが違ったりなかったりするかも知れないから。 例えばLinuxでCPUの温度を取得する方法が書いてあるページが以下にあるが、 /sys/devices/platform/coretemp.0/temp[0-9]_input または /sys/class/thermal/thermal_zone0/temp を読めばいいことになっている。 ttp://https://qiita.com/koara-local/items/1fac13704123717f5cc8 しかし lm_sensors をインストールして sensors コマンドで読むようにした方が良い。 その方が違いがあってもそこで吸収してくれる可能性があるし、Windows 等の他の OS だったとしても同じ形式で出力をするコマンドがあれば(またはなければ自作すれば) Java の方のプログラムを変えなくて済むからだ。 : デフォルトの名無しさん (ワッチョイ 5294-U5P5 [123.48.66.92]) [] 2019/04/15(月) 13:57:59.38:cuQSJXma0 OSGiの説明読んでたら実行時に依存ライブラリを置き換えれるみたいに書いてあったんだけど 危なくない? : デフォルトの名無しさん (ワッチョイ 2361-La48 [218.231.194.129]) [] 2019/04/15(月) 16:31:32.77:qwL+GUlh0 クソ古い機種でなければ、SELinuxが邪魔するはずだ。 : デフォルトの名無しさん (ワッチョイ 2361-La48 [218.231.194.129]) [] 2019/04/15(月) 16:33:08.61:qwL+GUlh0 ごめん。Androidスレと勘違いした。 : デフォルトの名無しさん (ワッチョイ d26a-rI6A [61.120.247.131]) [sage] 2019/04/17(水) 09:29:11.77:u6KluhBw0 新しいswitch構文いいね Java13でも何か増えてほしい : デフォルトの名無しさん (アウアウウー Sae3-UFLJ [106.132.123.80]) [] 2019/04/17(水) 16:59:30.42:ZvmEwgGQa まるで Kotlin のような switch だなあれ。 こうやって徐々に拡張してって気づいたら Kotlin そっくりになってたりしてなw : デフォルトの名無しさん (ワッチョイ 7f94-61/s [123.48.66.92]) [] 2019/04/18(木) 18:04:38.09:wChKEQpu0 JavaFX11をJava8で動かす事はできる? 例えばCorretto8とかで : デフォルトの名無しさん (ドコグロ MM7f-4dYu [119.243.53.203]) [sage] 2019/04/18(木) 20:11:19.95:Hosp3yF6M JavaFXはもうJavaファミリーじゃなくて単なる野良ライブラリの一つだから他所で聞いて : デフォルトの名無しさん (ワッチョイ 7f6a-61/s [61.120.247.131]) [sage] 2019/04/19(金) 00:53:02.95:PyPy8gHp0 substance.jarとかlookandfeelのライブラリもみんな死んだよなあ : デフォルトの名無しさん (オッペケ Sr33-EG0x [126.208.177.191]) [] 2019/04/19(金) 20:15:42.29:9+uD8sSlr arrayListのaddメソッドについて質問です。 中身のないリストに、インデックス無しのaddメソッドで中身を追加していくと 0.1.2.3〜順番に自動でインデックスを付けてくれました。 この挙動は信頼して良いでしょうか? それとも引数無しでaddしていくと、稀にインデックスがおかしくなったりしますか? : デフォルトの名無しさん (ワッチョイ 5f1d-s4yl [180.178.88.6]) [sage] 2019/04/19(金) 20:33:56.27:8v3VlEds0 char型配列についてお聞きしたいことがあります。例えば char[] array = {'J','a','v','a'}; とした時、array[4]が「何もない(空である)」ことはどうコードで検出すればよいのでしょうか? if文などで、4要素目が「空である」ことを検出するコードを書きたいのですが…。 : デフォルトの名無しさん (ワッチョイ 5fe9-JNgg [222.15.235.177]) [sage] 2019/04/19(金) 23:18:37.51:Bzn5o3i30 配列の長さを調べる。 : デフォルトの名無しさん (ワッチョイ 5f2e-R4YC [118.86.92.221]) [] 2019/04/20(土) 00:35:16.58:CMR5Akfm0 ArrayListのaddはリストの最後に値を追加するから 値を追加した順番にインデックスがつけられることは保証されるよ : デフォルトの名無しさん (ワッチョイ ffda-EG0x [223.218.244.7]) [] 2019/04/20(土) 06:05:00.74:FdhFaaGT0 ありがとうございます。 : デフォルトの名無しさん (ワッチョイ 7f94-61/s [123.48.66.92]) [] 2019/04/20(土) 20:06:24.28:JruJqlnL0 1 jar実行時のカレントディレクトリが環境によってまちまちだって聞いたんだけど本当? 2 コマンドラインでディレクトリAに居ながらjavaコマンドでディレクトリBのjarを起動したら そのjarの中でカレントディレクトリはAとBどちらになる? : デフォルトの名無しさん (ワッチョイ 7f94-61/s [123.48.66.92]) [] 2019/04/20(土) 20:36:06.72:JruJqlnL0 2を自分で実験してみたんですが コマンドラインのカレントディレクトリがjar内部でもカレントディレクトリですね。 つまり./folderを作成したら、コマンドラインの位置に出現する。 : デフォルトの名無しさん (ワッチョイ dfa3-imD6 [218.226.211.189]) [sage] 2019/04/20(土) 22:30:51.50:ZG2GZstI0 new File(".").getCanonivalPath() あってるかどうかは知らん : 233 (ワッチョイ 5f1d-s4yl [180.178.88.6]) [sage] 2019/04/20(土) 22:53:08.89:8ST0JapT0 返信が遅くなりすいません。 ありがとうございました。 : デフォルトの名無しさん (ワッチョイ ff02-YIQo [175.134.57.7]) [] 2019/04/21(日) 15:13:37.03:oGsU9OH20 シンボリックリンクを手繰っても良い場合はそれでも良くて、ダメな場合は Paths.get(relativePath).toRealPath(LinkOption.NOFOLLOW_LINKS) のようだ。 ttp://https://qiita.com/nwtgck/items/5dd7a3008a5a31bf964e : 238 (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/25(木) 08:51:23.69:ximnnd2X0 これやばくないですか? プロジェクトのトップからの相対パスで色々なファイルを指定する事は珍しくないはずです。 そうして作られたjarをコマンドライン等から呼び出すとき カレントディレクトリが狂わないように調整する必要がある。 相対パスのFileオブジェクトの参照先はカレントディレクトリ依存ですよね? しかもカレントディレクトリがどうなるかは環境依存ですよね? と思ったらjavaコマンドの引数で-Duser.dirを指定すればいいようです。 でも、デスクトップアプリだと、環境別に起動スクリプト書かなきゃまずいですね。 エンドユーザーは-Duserr.dirを指定しません。 どこから呼び出しても良いようにしたい、エンドユーザーの利便性のためなのに、 起動スクリプトを使うのは本末転倒な気がします。 と言ってもコマンドラインから呼び出す場合しか実際問題にならないだろうけど。 ttp://https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4045688 user.dirは起動後だと修正不可能。 : デフォルトの名無しさん (ブーイモ MMfa-AiIk [49.239.65.125]) [age] 2019/04/25(木) 09:45:05.55:sal5bxLGM カレントディレクトリに依存しないように プログラム組めばよいし カレントディレクトリに依存するなら シェルスクリプトやバッチファイルで カレントディレクトリを指定するのがセロリーですよ : デフォルトの名無しさん (ブーイモ MMfa-AiIk [49.239.65.125]) [age] 2019/04/25(木) 09:46:41.65:sal5bxLGM プロジェクトのトップからの相対パスになるんだなんて 思い込みがなければ問題ナッシング : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/25(木) 09:57:47.94:ximnnd2X0 カレントディレクトリに依存してはいけないというなら、 相対パスを使えないという事になるのでは? しかし絶対パスはたびたびOSのユーザー名など個人情報が入ります。 できれば扱いたくない。 : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/25(木) 10:11:29.05:ximnnd2X0 ttp://http://d.hatena.ne.jp/yomama/touch/20080718/1216394398 やはりいい方法が無いと。 それどころか、リソースファイルを取得する時URLクラスで相対パスを使うのが ベストプラクティスとして紹介されている事がある。 それはカレントディレクトリに依存するのか?クラスパス依存だから問題ない? そもそも、クラスパスが相対パスだったらカレントディレクトリ依存で解決されるだろう。 どうやって相対パスを使わずに組むんだ? : デフォルトの名無しさん (ワッチョイ 6de9-MRXB [222.15.235.177]) [sage] 2019/04/25(木) 10:44:52.10:w8/bGs7/0 エクスプローラーから直接実行ファイルをダブルクリックしたら、そこがカレントディレクトリじゃないの? ショートカットを作成して、それをデスクトップとか他のフォルダに置いた場合、 そのショートカットのプロパティをみると、「作業フォルダー」ってのがあって、それがカレントディレクトリではないかと。 : デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.212.69]) [sage] 2019/04/25(木) 11:24:18.30:DeQsB6RVM どんな実行方法でもjarがある場所をベースにしたいってことならjarファイルのパスを取得してそこから相対パスで扱えばよいよ : デフォルトの名無しさん (ワッチョイ da2c-vaK/ [219.162.237.2]) [sage] 2019/04/25(木) 13:37:42.97:wpotMNKo0 各種リソースは、プロジェクトフォルダからの相対パスだろ PROJECT_PATH などの定数・変数を作って、そこからの相対パスを定義すればよい : デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190]) [age] 2019/04/25(木) 17:48:56.39:PdDg4Yo8M パスを引数で渡したり カレントディレクトリに依存するなら起動するときに 指定するのがセロリーだよ : デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190]) [age] 2019/04/25(木) 17:53:11.84:PdDg4Yo8M リソースファイルは普通クラスパスから読み込むよ シェルスクリプトやバッチファイルで 起動時にリソースを配置したディレクトリを クラスパスに指定するのがセロリーですよ : デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190]) [age] 2019/04/25(木) 17:58:48.54:PdDg4Yo8M 例えば実行時にworkフォルダに相対パスでファイルを吐き出したいときは シェルスクリプトで cd work のコマンドを実行してから javaを実行するよ : デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190]) [age] 2019/04/25(木) 18:14:02.08:PdDg4Yo8M スクリプトからjarを実行すれば プロキシを指定したり使用メモリの上限を指定したり ログの出力を変えたりできるよ エンドユーザーの利便性を考えるなら起動スクリプトを 作るべきだと思うよ jarは直接実行するものじゃない : デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190]) [age] 2019/04/25(木) 18:22:50.99:PdDg4Yo8M プロジェクトフォルダってソースコードを管理する ものだから実行時にその存在を前提にするのは設計としておかしいと思う 開発環境からしか実行しないなら問題ないけど 今回のようにjarを配布して実行してもらうならマズいですよ : デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190]) [age] 2019/04/25(木) 18:57:50.14:PdDg4Yo8M の質問はよくわかる、なぜなら俺もむかしそう思ってたから 実行時にはjarの内部にいるんだと思いがちだけど jarにはクラスファイルが入ってて それを外から実行してるだけなんよ : デフォルトの名無しさん (ワッチョイ 9161-KI0z [218.33.254.176]) [] 2019/04/25(木) 22:38:36.18:O+x6W6lz0 すげぇな、お前。 : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/25(木) 23:09:48.66:ximnnd2X0 ttp://http://aarkiton.blogspot.com/2011/09/getresourceasstream.html >実行時にクラスがjarファイルなどに格納されている場合、実行環境によりなぜかgetResourceAsStream()でリソースが読み込めない場合があるようだ。 こういう記事があるから、リソースの読み込みをクロスプラットフォームにするには、 URLでアクセスするのが良いとされている。 ところがURLアクセスの方法は相対パスを使用している。 クロスプラットフォームかつどのフォルダからも実行できるようにする方法はない。 あるとすれば、環境別に起動スクリプトを書く場合だけ。 起動引数無しで起動されたら即終了するようにして、 必ずスクリプトから起動させるしかない。 でも、それって、JVMが動いてても起動スクリプトが無いと動かないから、 マイナー環境向けにスクリプト書かれないだろうから、 クロスプラットフォーム感激減だ : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/25(木) 23:11:54.85:ximnnd2X0 なんていうか、プログラムってしんどいね 環境ごとの無意味な違い(ファイルパスの区切り文字とか)で振り回されるし : デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.130.229]) [sage] 2019/04/25(木) 23:35:13.14:7lYh8BWfM つーかその張ってるリンク先で言ってる話はまた別の話だと思う 読み込むpropertiesファイルもまとめてjarにいれた場合に読めないって話でしょ 結局やりたいことの為に何が必要なのか考えてみた方がよいと思う : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/26(金) 00:23:14.47:Q79mrf5i0 プログラム上の問題というより環境的な問題だから 自分じゃどうしようもない これはプログラムが悪いんじゃなく、ソフトウェアエコシステムの問題だ すんなりとクロスプラットフォームになって カレントディレクトリとか余計な問題に悩まなくていい開発方法があればいいのに : デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.130.229]) [sage] 2019/04/26(金) 01:15:44.98:if9lRvGxM カレントディレクトリを前提にパスを扱うからいけないだけ jarファイルの場所を起点として相対パスを使えばいいだけだよ : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/26(金) 02:14:57.44:Q79mrf5i0 それは絶対パスを使う事になるから、できれば避けたい でもそれしかないかもしれない : デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151]) [age] 2019/04/26(金) 04:22:09.54:51IpWYw80 スクリプト書けばいいのに シェルスクリプトならPOSIXに対応した環境で使えるし WindowsならPowerShellとかBATファイルとかあるじゃん スクリプトじゃなくてプログラムでも良いけど それができない環境はないよ JavaのクロスプラットフォームはJVMが環境の差異を吸収するからソースコードコンパイルし直さなくて平気だよってものなのでカレントディレクトリが実行環境によって変わりますっていうのは別の事柄だよ Java製のV2CやEclipse、NetBeansといったソフトウェアもjarを直接起動することないよ、起動用のプログラムは別で用意されてて一緒に配布されてる カレントディレクトリの概念は便利なものだよ : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/26(金) 04:28:32.96:Q79mrf5i0 便利なのはわかるんだ 例えばmkdirだって、どこかに置かれたプログラムで、カレントディレクトリにおいて作用するわけで。 関数的なプログラムはそれでいい。 でも状態を持つプログラムにおいてそのプログラムが置かれたフォルダに状態を作るというのも便利なものだ。 これはOOP的。 エンドユーザーからすれば、良く分からんところに状態を作られるのは嫌。 : デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151]) [age] 2019/04/26(金) 04:34:30.93:51IpWYw80 じゃあユーザーにはスクリプトを配布してそれを実行してもらうようにすればいいよ : デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151]) [age] 2019/04/26(金) 04:50:17.67:51IpWYw80 カレントディレクトリ無視してjarのディレクトリで動作しますというのがユーザーにとって迷惑なこともあるわけでユーザーがコントロールできるのが望ましいのじゃないかな OOPや関数型プログラミングは今回の件と関係があるとは思えない : デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151]) [age] 2019/04/26(金) 05:21:05.77:51IpWYw80 ・プログラムの動作上必要なファイルをjarと同じ場所に配置する ・プログラムではそのファイルに相対パスでアクセスする という要件でしょ : デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151]) [age] 2019/04/26(金) 05:55:44.11:51IpWYw80 相対パスはカレントディレクトリからのパスなので カレントディレクトリを変えるしかなく スクリプトでカレントディレクトリを変える jarのパスを引数で渡すなり実行時に取得するなりして Path.resolveメソッドで相対パスを解決する : デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151]) [age] 2019/04/26(金) 06:01:41.80:51IpWYw80 他にあるかなー : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/26(金) 06:30:18.37:Q79mrf5i0 ・個人情報が含まれることがあるから絶対パスを使いたくない。 : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/26(金) 07:10:21.98:pn/dKCHp0 その理由がよくわからない パスはプログラム内部で使用するだけじゃないの? パスを公開するん? : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/26(金) 07:39:19.02:pn/dKCHp0 カレントディレクトリからの相対パスを使用したとしても Path.of(".").toAbsolutePath() としたらプログラムでは見れるので プログラムに対して絶対パスを隠す意味はないですよね 絶対パスを指定するとしたら実行時にスクリプトで絶対パスを取得して javaに渡すなり、javaから取得するなりすると思うんですよ Path resourcePath = ...; Path text = resourcePath.resolve("text.txt"); こんな感じで ログに出力したくないというのであればtext.getFileName()をログに出力するようにすればよいかと 絶対パスを使いたくない意味がよくわからない : デフォルトの名無しさん (ワッチョイ 9161-KI0z [218.231.167.11]) [] 2019/04/26(金) 08:25:41.39:QL2+v1a40 >プログラムの動作上必要なファイルをjarと同じ場所に配置する この要件が意味不明過ぎる。 初めからプログラムが知っているべきものなら、CLASSPATHから辿れるResourceでいいし、 外部から与えられるファイル(設定ファイルとかデータファイルとか)なら、 ユーザが「知っている」はずだから、それに従うだけ。 : デフォルトの名無しさん (ワッチョイ 6de9-MRXB [222.15.235.177]) [sage] 2019/04/26(金) 09:02:13.01:yevOEnv90 自分ならjarのあるディレクトリに移動してプログラムを起動するバッチファイルを使うわ。 プログラムではカレントディレクトリにあるはずのファイルが無かったらエラーを吐いて止まる。 : デフォルトの名無しさん (アメ MMa1-GtBW [210.142.92.14]) [] 2019/04/26(金) 09:21:40.52:v0BTRdTiM それosごとに書くの? write everywherewww : デフォルトの名無しさん (アウアウウー Sa39-tnqD [106.132.130.249]) [] 2019/04/26(金) 09:35:16.97:YRtkzMZRa Write once Bug anywhere : デフォルトの名無しさん (ブーイモ MM99-AiIk [202.214.125.189]) [age] 2019/04/26(金) 09:44:37.15:pkS4CFHAM シェルスクリプトならUnix系のOSで使える WindowsならPowerShellでいんじゃないかな 実質2つだけかと : デフォルトの名無しさん (ワッチョイ 9161-KI0z [218.231.167.11]) [] 2019/04/26(金) 10:00:15.39:QL2+v1a40 頭悪すぎ。 権限とかセキュリティを考慮すれば、ワーキングディレクトリもユーザ側に委ねるべきもの。 : デフォルトの名無しさん (ワッチョイ da2c-vaK/ [219.162.237.2]) [sage] 2019/04/26(金) 13:39:16.32:A/WNBxWE0 Ruby では、Windows のパス区切りも、/ で統一されている。 Dir.glob( 'C:/Users/Owner/Pictures/*' ) Rails では「設定より規約」というポリシーだから、何も設定しない場合には、 プロジェクトフォルダ内でのリソースの置き場や、 それらのdeploy 後の置き場や、アクセス方法も決まっている このように、フレームワークを使うと、その規則に従うから、何も考えなくてよい! : デフォルトの名無しさん (アウアウウー Sa39-tnqD [106.132.130.249]) [] 2019/04/26(金) 14:10:43.88:YRtkzMZRa え?Windowsって昔からプログラムでファイルオープンする時は / 使えなかったっけ? 昔々 Delphi とかで使えた記憶があるんだけど。言語の問題じゃなくて Windows API が / も受け付けてるって事ね。 コマンドラインから受け付けないようになってる理由は昔から / をスイッチとして使ってるからだと思う。 : 279 (ワッチョイ da2c-vaK/ [219.162.237.2]) [sage] 2019/04/26(金) 14:36:03.51:A/WNBxWE0 C:\Users\Owner\Pictures\ Python では、\ をエスケープするために、\\ を2つ使った、表記をよく見る。 C:\\Users\\Owner\\Pictures\\ 一方、Ruby では、 C:/Users/Owner/Pictures/ : デフォルトの名無しさん (アウアウウー Sa39-tnqD [106.132.130.249]) [] 2019/04/26(金) 14:41:28.21:YRtkzMZRa わからんけど試しにWindowsのPythonで / でやってみな。多分できる。 Perl もできた。 てか、言語関係ない筈。 : デフォルトの名無しさん (ワッチョイ 89da-HJzg [114.185.1.67]) [sage] 2019/04/26(金) 15:17:33.53:YKU/5GWf0 スレチ : デフォルトの名無しさん (ワッチョイ 9161-KI0z [218.231.141.120]) [] 2019/04/26(金) 21:05:21.66:sJC66QNU0 Rubyキチは黙ってスルー。 : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 00:27:38.86:0PNVGbCs0 カレントディレクトリをユーザ側に委ねると 前回のセーブデータを必要とするとき、GUIとかでユーザーに設定してもらう必要がある。 アプリフォルダに入ってれば自動的に見つけれる。 俺はカレントディレクトリをユーザ側に委ねる使用法を否定していない。 ちゃんと読んでくれ。誰もそんな事は言ってない。 ただアプリによってアプリフォルダに状態を持つ方法が必要になると言ってる。 しかもそれを相対パスとして実現できる必要がある。 この話は、Oracleも必要性を認めていて、しかし問題があり却下していたはず : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 00:35:07.92:0PNVGbCs0 ttp://https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4045688 >A chdir that has inheritable thread local semantics is much safer and clearly useful, but it is quite an implementation challenge. : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 00:38:18.41:0PNVGbCs0 カレントディレクトリを大部分のアプリにおいてユーザ側が制御できる事と 一部アプリにおいてアプリ側が制御できる事は両立する。 誰もカレントディレクトリをユーザ側で制御する事を否定してないのに、なんでそんな話が出てくる? : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 00:45:30.79:0PNVGbCs0 > It's really too bad that there is no system interface that allows a > program to save and restore the current working directory reliably Ruby is another application platform that embraces threading and has a process-wide chdir. In the latest ruby release, a warning is issued if chdir is used in a program with more than one active thread. ルビーではプログラム側でchdir出来ると書いてある。 そういう需要があるという事だろう。 しかしプロセス単位で設定するのは危険で、 スレッド別に設定できるべきだという意見が2つ出ている。 例えば1プロセスでマルチユーザーを達成するプログラムがあった場合、 アクセスしたユーザーに応じてchdirできる。 APIの用途なんかいくらでも出てくる。 Javaが実行時chdirを持たない事は欠陥だ。 アプリコードで実行されたクラスのパスを取得してそれをプリフィクスにすればいいと 上で意見が出ているが、それではライブラリの動作が透過的に変更されない。 : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 00:53:45.71:0PNVGbCs0 俺の説明が正しいかは分からない。 俺は細かいところを間違えたかもしれない。 でも、javaが実行時chdirを持たない事が欠陥なのは間違いない。 : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 01:06:06.63:0PNVGbCs0 カレントディレクトリをユーザーが指定しつつ 同時にプログラム側でchdirすべき場合があるじゃないか。 1プロセスでマルチユーザーからのアクセスを受け付けるプログラムで、 ユーザーがカレントディレクトリを指定して、 プログラム側でスレッド別にユーザーが指定したカレントディレクトリにchdirする場合。 : デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.179.32]) [sage] 2019/04/27(土) 01:11:53.55:Je+FHpVzM だからその用途の場合は実行時にjarの場所を取得して、そこからの相対パスで扱うべきって話をしてるわけだが 相対パス=カレントディレクトリを基準に使わなければいけない、みたいな謎ルールがあるのか? : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 01:17:58.25:0PNVGbCs0 これ2006年ごろ会社でBtoBtoCのシステム作っててやったの思い出した クライアント別にchdir ApacheとLinuxの仕組みを活用して達成できたけど、 クロスプラットフォームなやり方は無いと思う。 : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 01:18:26.51:0PNVGbCs0 >それではライブラリの動作が透過的に変更されない。 : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 01:19:54.56:0PNVGbCs0 ととあたり読んでね 読まずに返信したらダメだよ 理解してから書いて この話題はが完ぺきな説得力を持って俺の中では終わってる : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 01:21:56.36:0PNVGbCs0 そのオラクルのサイトでもこう書かれてる。 >This needs co-operation from the runtime (if we chdir() the VM, then the IO libariries would get transparently updated). chdirはライブラリの動作を透過的に変更できる。 お前らが言ってるクラスファイルのパスを取得して接頭辞にしろというアイデアは、 ライブラリの動作で問題が生じる。 : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/27(土) 10:12:27.47:Msh+cD000 自己完結 : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/27(土) 10:12:49.27:Msh+cD000 自己完結しましたってことね : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/27(土) 10:13:08.94:Msh+cD000 ここは質問スレッドなので質問ありますか? : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/27(土) 10:28:47.67:Msh+cD000 カレントディレクトリのファイルを読み書きするライブラリなんてあるのかね ファイルを読み書きするならFileなりPathなりInputStreamなりOutputStreamなり を引数として取るように作るんじゃないかな もともとはカレントディレクトリがプロジェクトのディレクトリになるという 勘違いから起こった話題だけど何を解決しようとしてるのかよくわかんない : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 11:40:58.78:0PNVGbCs0 もともとは「カレントディレクトリが何になるか環境依存で決まる」という話。 ライブラリでカレントディレクトリに依存しているものはたくさんある。 : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/27(土) 12:51:28.78:Msh+cD000 具体的になんてライブラリなの? たくさんあるうちから比較的有名なものを教えていただけると : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 15:14:58.99:0PNVGbCs0 具体例をあげさせようというのは、 「そんなライブラリ存在しない」と本気で思えるからなのか? 言語仕様的にカレントディレクトリへの依存なんてFileを相対パスで使ったら生じるもので それが一般に無いなんて前提は持ちようがない。 お前は単に俺に無駄な手間をかけさせようとしているだけとしか思えないんだが? お前の本心は何だ?”本気でその質問がここに居る人たちをより優れた認識に導くと思っているのか?” あるいはただのクズか? : デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.176.48]) [sage] 2019/04/27(土) 15:17:25.68:0mLMZlTmM まあ解決したみたいだしもういいでしょ : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 15:35:16.29:0PNVGbCs0 Javaを使う全ケースで共通のカレントディレクトリ依存のファイル作成処理。 ttp://https://docs.oracle.com/javase/jp/8/docs/technotes/guides/troubleshoot/felog001.html このファイルが作成される事はプログラム側の問題だから プログラム側のフォルダに作成されるのは基本的に正しい。 多重起動防止テクニック ttp://http://d.hatena.ne.jp/knowledgefort/20090902/1251885412 1フォルダにつき1つしかプログラムを起動させたくないなら、 プログラム側のフォルダにロックファイルを作るのが正しい。 HTTPサーバつきのDBはプログラム側のフォルダにDBを作る事が多いだろう。 他にも全利用のログや統計が必要な場合。 結局一人で調べて一人で解決したほうがいいんだなと思った。 正しい着眼点と方向性で進めててもアホ呼ばわりされる。 こいつら極限まで分かり易く示さない限りアホ呼ばわりしてきそうだ : デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92]) [] 2019/04/27(土) 15:41:51.22:0PNVGbCs0 ああ・・・エラー処理はカレント側に作成されてるな ただ、これもそうだが、分かり易い事例を示すのが難しいだけで俺の意見が正しい。 現実のプログラムであればそういうシステムを多々見てきたし、 プログラム側のフォルダに状態を作るべき場合は存在する。 たとえ事例が無くてもそれが存在するのが分かる。 オラクルのエンジニアだってそういうメリットがあるから スレッド別の継承型chdirが望ましいと書いてたろ? 「自分でわかる」「著名人もそう言ってる」 この段階からさらにお前らが分かるような事例を持ってこいってのはさらに難しい : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/27(土) 16:11:19.17:Msh+cD000 俺はカレントディレクトリのファイルを読み書きするライブラリを知らない 君はそれをたくさん知ってるということだったので 教えてもらいたかっただけだよ ttp://https://docs.oracle.com/javase/jp/8/docs/technotes/guides/troubleshoot/felog001.html これはファイルパスを指定できるようになってて デフォルトではカレントディレクトリだよってことですね ライブラリではなくてjavaの仮想マシンがそういう動作をするってことですよね ttp://http://d.hatena.ne.jp/knowledgefort/20090902/1251885412 これはカレントディレクトリを使ってはいけないんだってことを 君は言いたいのかな、よくわかんなかったけど : デフォルトの名無しさん (アメ MMa1-GtBW [210.142.92.39]) [] 2019/04/27(土) 16:12:22.32:nhVWQaIpM 例の一つもしめせない正しさなんかいらない。 連休明けにお前の席、ねーからー!w : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/27(土) 16:38:17.73:Msh+cD000 君が見てきたいろんなシステムはjarを直接起動するシステムばかりだったの? 特殊な環境にいたのかなと プログラム側のフォルダに状態を作るべき場合が存在するのは否定しないよ そういうこともある、その場合はjavaを実行する前に指定しましょうというのが 一般的なやり方だよ 前にも挙げたけどEclipseとかV2CとかNetBeansとか Java製のソフトウェアは起動用のプログラムとjarが別れてるよ アプリケーションサーバのTomcatなんかもそうだよ 起動用のスクリプトの中でパラメータを指定したり環境変数を定義したり して実行環境を整えてjavaを実行してるよ : デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221]) [] 2019/04/27(土) 16:55:22.93:Msh+cD000 ↓ここみるかぎりworking directoryをJavaで変えるのはできそう ttp://https://stackoverflow.com/questions/840190/changing-the-current-working-directory-in-java : デフォルトの名無しさん (アウアウカー Sa4d-4vDe [182.251.141.244]) [sage] 2019/04/30(火) 23:09:51.16:ase7yW+4a お前ら6ヶ月超えたLTSはどうしてる? ぶっちゃけAdapt OpenJDKとOpen J9しか無かった頃はOpen J9は影響力無いだろうからAdapt OpenJDKがupstreamに変更内容pushしてくれれば済んだじゃん。 ディストロ乱立した今Azulみたいに大してupstreamに貢献してない所あるからディストロ毎の変更の差が広がるけど。 : デフォルトの名無しさん (ワントンキン MM8a-ahOC [153.237.89.209]) [sage] 2019/05/03(金) 17:48:48.96:iE5UbyHCM JAVAも人気が無くなっちゃったね 勉強しようかと思ってたけど今は何がおすすめ? C++あたりかな? : デフォルトの名無しさん (アウアウウー Sa47-H3I8 [106.133.160.237]) [] 2019/05/04(土) 00:54:34.37:wCMSKwhZa Kotlin もよろしく : デフォルトの名無しさん (ラクッペ MM67-jbV9 [202.176.21.141]) [sage] 2019/05/06(月) 13:16:22.90:ial3K7dNM 天の邪鬼なんで今からjava勉強しようと思います もとの専門が強電と計装なんですけどつながる所ありますか? : デフォルトの名無しさん (ドコグロ MMcb-jhVB [110.233.245.115]) [sage] 2019/05/06(月) 13:40:45.97:9LoLzBoXM 理系脳があれば文系Javaマの大多数よりは上 現場のレベルの低さは想像を絶する : デフォルトの名無しさん (ワッチョイ e3da-R0y6 [60.41.119.133]) [sage] 2019/05/06(月) 13:44:38.65:iQFGW4dP0 プログラムの才能は理系・文系とは別 : デフォルトの名無しさん (アウアウウー Sa47-vI8p [106.132.125.254]) [] 2019/05/06(月) 20:21:56.86:NYoOX9LAa なんだろうね。数学的能力はあった方が良いがそれだけではないし。 手順を言葉で表現する能力もある必要があるがそれだけでもないし。 : デフォルトの名無しさん (ラクッペ MM67-jbV9 [202.176.22.176]) [sage] 2019/05/06(月) 23:47:19.20:HTogq+szM よくわからんまとめサイトにjavaって読書好きな人向けみたいに書いてあったんだけど本当? 何時間も細かい文章読んでても気にならないタイプなんだけど ただイメージわかない物は苦手ですが(英語とか辞書とか) : デフォルトの名無しさん (ドコグロ MMba-jhVB [49.129.186.151]) [sage] 2019/05/07(火) 00:32:26.40:nFO0GtdSM 長くて複雑な資料を読んで理解できる能力は言語関係なくITエンジニアにとって極めて重要 応用情報の午後の過去問なんかをダウンロードして見てみたらイメージ掴みやすいと思う あれはよく読めば大して知識なくても解けるもので、そういう人は向いてる : デフォルトの名無しさん (ラクペッ MMf3-jbV9 [134.180.6.121]) [sage] 2019/05/07(火) 06:49:28.50:VFlw4N8yM ありがとうございます 読んでみます : デフォルトの名無しさん (ワッチョイ 9a6a-ef0B [61.120.247.131]) [sage] 2019/05/08(水) 00:47:24.78:S67A12g30 Kotlinはjsにコンパイルする環境がすでに整ってるけど Javaはgwtがコケて完全に死んだよね : デフォルトの名無しさん (ワッチョイ f6da-R0y6 [223.218.111.99]) [sage] 2019/05/08(水) 09:32:17.94:86ZxxcQ40 KGBに監視されている : デフォルトの名無しさん (ラクッペ MM7d-giyY [110.165.132.199]) [sage] 2019/05/09(木) 21:35:28.39:qPClD7aOM 某組み込み系の比率が高い県の未経験者です 組み込み系(C言語)とWeb系(PHP)両方の経験を積みたいんですが最初にjavaをがっつりやるのはありですか? javaがっつりやって流れでC言語もPHPも出来るようになる作戦なんですが虫が良すぎでしょうか それとももっと良い言語がある? : デフォルトの名無しさん (ワッチョイ b12e-rDrf [118.86.92.221]) [] 2019/05/09(木) 21:52:11.67:pU2pcSqk0 JavaがわかればPHPは余裕 C言語はクラスがなかったりポインタとかメモリ管理とかJavaの常識が通用しない ループとか条件分岐とか関数はほとんど同じだけど やってみたらいいじゃない1週間あればいけるっしょ : デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.184.205]) [sage] 2019/05/09(木) 23:28:52.95:vGDrZ5vaa なるほど、古いほど難しい感じ?なんですかね? とりあえず今やってるjavascript終わったらしばらくjava一本に絞ってみます : デフォルトの名無しさん (アメ MM05-XE84 [210.142.92.67]) [] 2019/05/10(金) 13:49:52.47:sZdncDhCM brainfuckはcより新しいぞ : デフォルトの名無しさん (アウアウウー Sad5-L9AJ [106.180.6.159]) [] 2019/05/10(金) 20:42:23.89:eVjZi54sa ttps://sbfl.net/blog/2016/05/20/javascript-danmaku-stg-3/ にある回転弾幕を参考に同じように回転弾幕を作成しているのですが、回転しません。 radianの計算が違うのでしょうか? ttps://pastebin.com/wFCdcf0A : デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.185.51]) [sage] 2019/05/13(月) 15:18:49.84:LmLPA4i2a すいません、今からならjava8やるべきですかそれとも11ですか まあ11は探しても本無いんで何すべきかわかんないですが : デフォルトの名無しさん (アウアウクー MM5d-/JuY [36.11.224.36]) [sage] 2019/05/13(月) 16:07:46.34:fPgpveE6M 11でコード書いたら下方互換がないのってLambdaのvarくらいか。 非互換さえ理解しておけば、11から始めてもいいんじゃないか。 どうせそんなこと聞いているくらいだから、Tiger時代くらいのAPIしか 使わんのだろうし。 : デフォルトの名無しさん (アウアウウー Sad5-wdoq [106.132.131.39]) [] 2019/05/13(月) 17:30:27.34:rnX6vlMta Kotlinもよろしく : デフォルトの名無しさん (アウアウカー Sa2d-NQ/5 [182.251.157.124]) [sage] 2019/05/13(月) 22:00:41.33:Il2FdqNea 今からやるならモジュールから入ったほうが良いから11かな。 下位互換のためだけにあるunnamed moduleとautomatic moduleの ルールが複雑だから9以降初学者は最初に普通のモジュール使ったほうが覚えるの簡単だと思う。 あとはの言う通り8以降でapiかなり変わってるからapi覚え直したほうが良い。 : デフォルトの名無しさん (アウアウエー Sa23-y0Vo [111.239.57.90]) [sage] 2019/05/13(月) 22:16:51.52:9QsNbP8la 今からやるんだったら まず Java をやらない方がいい としか言いようがないな : デフォルトの名無しさん (ワッチョイ d102-wTlH [124.211.214.20]) [sage] 2019/05/13(月) 22:23:05.62:nkZ+yA1j0 Javaのめんどくさいところを知っておくとよい : デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.185.196]) [sage] 2019/05/14(火) 08:21:57.15:YPQOCYqpa ありがとうございますm(_ _)m : デフォルトの名無しさん (ワッチョイ 93ad-f7zA [203.165.185.130]) [sage] 2019/05/14(火) 22:58:57.58:/fg2d0W/0 関数型インターフェースを使いたいときって自分で作ったほうがいい感じ? 実行するときに.accept()とか書いてあっても何するのかわかりずらかったりするかなーって思った : デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.184.246]) [sage] 2019/05/15(水) 02:24:44.79:heW47YQ/a 未経験者です すっきりわかるjava入門上下2冊とeffective java第3版どちらにするか迷うんですがeffective javaシリーズは初心者が触っても大丈夫なものですか? : デフォルトの名無しさん (アウアウエー Sa23-nP+x [111.239.171.52]) [sage] 2019/05/15(水) 07:56:51.46:IyGA5vUia effective javaは将棋に例えるなら定跡集 駒の動かし方は書いていないから初学者には一ミリも理解できない : デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.184.142]) [sage] 2019/05/15(水) 09:09:39.48:QPuK5v7oa ありがとうございますm(_ _)m : デフォルトの名無しさん (ワッチョイ 138f-a7XR [123.216.11.41]) [sage] 2019/05/15(水) 14:54:29.15:B4kpdfPw0 出たなwスッキリ厨w : デフォルトの名無しさん (アウアウウー Sad5-wdoq [106.132.134.99]) [] 2019/05/15(水) 16:09:43.87:k0yjAgrYa 俺は物事がわかってスッキリしたという感覚がわからない。わかるかどうかとスッキリするかどうかは無関係ではないか? : デフォルトの名無しさん (ワッチョイ e93d-MbjZ [218.229.147.47]) [] 2019/05/15(水) 17:15:57.03:jEyRSl6N0 悩んでいる時間に依存するのでは : デフォルトの名無しさん (オッペケ Srdd-f7zA [126.211.116.164]) [sage] 2019/05/15(水) 18:35:02.55:3H13F0iFr スッキリてどゆこと? 保守するときにメソッド名が関係なかったら理解するのに時間かかるじゃん : デフォルトの名無しさん (ワッチョイ cfda-G5S0 [121.113.186.83]) [] 2019/05/16(木) 01:58:48.56:bT0soUog0 質問、Javaでint型変数だけを宣言すると初期値は何も入らないんですか? Cの場合はint型変数を宣言した時点で変数に初期値を入れない場合、乱数が格納されると記憶に残ってるんですけども : デフォルトの名無しさん (ワッチョイ af02-XAPB [175.134.57.7]) [] 2019/05/16(木) 02:52:56.95:VmtTFfWG0 ttp://https://qiita.com/java-beginner/items/9fc60e3754445a57266e : デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202]) [] 2019/05/16(木) 02:57:46.45:/8K02Lja0 jniでネイティブコードを呼び出した場合、 オーバーヘッドじゃなくて実行中の性能に差は出るんだろうか? : デフォルトの名無しさん (アウアウウー Sa57-RNyv [106.132.125.81]) [] 2019/05/16(木) 09:17:37.19:m1+/MMjMa それはそのnativeなコードがどう作られているかによるのでは? : デフォルトの名無しさん (ワッチョイ 4fe3-/Pzg [218.231.123.4]) [sage] 2019/05/16(木) 11:31:30.57:FdIcaypr0 結構、出るはず。 特に、C/C++ は GC が無いので、体感速度に影響が出るくらい速く動く場合 も少なくないはず。実際、現実にC#とC++でもかなりの速度差があるのは、GCの せいだと考えられるし。 : デフォルトの名無しさん (ワッチョイ 4f61-/Pzg [218.231.123.4]) [sage] 2019/05/16(木) 13:56:57.10:jfYFXUay0 native バイナリで動く言語は、システムへの保護がCPUレベルの #GPE などで コスト0で行えるのに対し、VMで動く言語は通常、VMシステムへのデータ保護 がソフトウェアレベルで行われていることが多く、JITコンパイラでバイナリ コードに変換されても、その部分による速度差が埋まらない。 だから、アプリ自身のコードは、nativeバイナリに比べて3〜5倍程度の 遅さで動いていることが多い。 : デフォルトの名無しさん (ラクペッ MMb7-wc1K [134.180.0.133]) [sage] 2019/05/16(木) 14:43:58.42:EcUEf5OyM が聞きたいのはそういうことじゃないと思うよ : 344 (ワッチョイ 1fb9-Q2B8 [123.1.16.202]) [] 2019/05/16(木) 16:45:48.62:/8K02Lja0 JNIから呼び出されたネイティブコードvs純粋なネイティブコード の話。 オーバーヘッドがあるのは分かるけど、 それ以外の実行中の性能にも差があるのか? : デフォルトの名無しさん (ワッチョイ bfda-8NB0 [223.217.43.217]) [sage] 2019/05/16(木) 17:03:52.02:NDYfZfUA0 後出し乙 : デフォルトの名無しさん (ワッチョイ 4fe3-/Pzg [218.231.123.4]) [sage] 2019/05/16(木) 17:08:54.38:FdIcaypr0 ああ、そういうことなら、原則的に「無い」ハズ。 本当に CPU が Linux の普通のbinaryのコマンドと同じように 実行してるだけだから。実際、JNI のC/C++部分のコードは、 shared library の libxxxx.so になっていて、Activity の クラスの初期化時にプロセスの中に動的にロードされて使われている。 この so ファイルは、linux の elf 形式の arm バイナリ・コード になっていて、Androidではない、UbuntuなどのLinuxの普通の 共有ライブラリと全く同じように実行されている。 : デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202]) [] 2019/05/16(木) 17:32:47.73:/8K02Lja0 むしろをほかにどんな意味に受け取るのか教えて欲しい : デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202]) [] 2019/05/16(木) 17:35:08.03:/8K02Lja0 GraalVMだとネイティブコードでも配列の境界チェックとかをしてるとかで ちょっと遅いらしいんだけど JVMだとそれは無いのか : デフォルトの名無しさん (ワッチョイ d3a3-MhG5 [218.226.211.189]) [sage] 2019/05/16(木) 17:44:56.12:716ODGdI0 1. 3つ以上の引数を受け取りたい時はそうしなきゃいけないし、Byte、Float、Short、Booleanのボクシングのコストを許容しない場合もそうしなきゃいけない。 2. FuctionalInterfaceは主にラムダ式用だから明示的にacceptはよびださないとおもう。 : デフォルトの名無しさん (ワッチョイ d3a3-MhG5 [218.226.211.189]) [sage] 2019/05/16(木) 17:46:32.67:716ODGdI0 Java言語規格で境界チェックは必須になってたような?でもJITで境界チェックが(明示的に安全なfor-eachとかで)取り除かれるとかはあるかも? : デフォルトの名無しさん (ブーイモ MMbf-12ew [163.49.206.55]) [age] 2019/05/16(木) 17:47:35.25:HsyFIqWHM 早漏ハゲ : デフォルトの名無しさん (ワッチョイ 4f61-/Pzg [218.231.123.4]) [sage] 2019/05/16(木) 18:35:49.90:jfYFXUay0 JNI の native コードは、単純にCPUが NO CHECK で実行するだけなので、 JVMもろとも壊そうと思えば壊せるはず。 逆に言えばなんでも出来て、推定だけど、Linuxのシステムコールは基本的に 自由に呼べると思う。ただし、su, sudo コマンドみたいなものまで 作れるかどうかは良く知らない。 : デフォルトの名無しさん (ワッチョイ 4f61-/Pzg [218.231.123.4]) [sage] 2019/05/16(木) 18:40:34.35:jfYFXUay0 コマンドの permission に 「setuid bit」が立ってないと sudo のような コマンドは作れないらしいね・・・。s : デフォルトの名無しさん (アウアウカー Sa5f-ctyG [182.251.146.133]) [sage] 2019/05/17(金) 23:18:07.90:B7prjqK/a たぶんID:/8K02Lja0はgraalのどこかを勘違いしてるんだと思う。 graalはまず、javaでjitコンパイラ書くapiが新しく作られて、それを利用したjitを持つランタイムでjavaとは全く別の製品だからjavaの仕様は無関係。 ネイティブコード吐くときに境界チェックするとかはこのコンパイラ挙動で、それを実装するのがjitコンパイラ書くapiのユーザーの仕事なんだよ。 : デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202]) [] 2019/05/19(日) 22:14:02.97:0ps74q4q0 jarに同梱されてるクラスと クラスパスに与えられたjarのクラスで パッケージ名やクラス名が重複していたら どっちが優先して使われる? : デフォルトの名無しさん (ドコグロ MMc7-9mjA [122.130.225.248]) [sage] 2019/05/19(日) 22:20:29.30:3AX6EsSbM 未定義 Javaでは同一の修飾名をもつクラスは絶対に存在してはいけない : デフォルトの名無しさん (ワッチョイ 432e-IJ5s [118.86.140.191]) [] 2019/05/19(日) 22:21:58.50:iZGlVtrY0 クラスパスに指定されてる順に優先されるよ -cp A.jar:B.jar だったらA.jarが優先される : デフォルトの名無しさん (ワッチョイ 432e-IJ5s [118.86.140.191]) [] 2019/05/19(日) 22:23:56.93:iZGlVtrY0 んなこたーない(タモさん パッケージプロテクテッドのメソッドをオーバーライドするときに 同じパッケージにクラス作ることあるよ : デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202]) [] 2019/05/19(日) 22:32:27.85:0ps74q4q0 でも-jar xxx.jarみたいな場合、-cpじゃないんですが : デフォルトの名無しさん (ワッチョイ 37da-8NB0 [114.185.1.124]) [sage] 2019/05/19(日) 22:34:16.82:wxi6QMEK0 さすが国際派弁護士 : デフォルトの名無しさん (ワッチョイ 37da-8NB0 [114.185.1.124]) [sage] 2019/05/19(日) 22:34:55.56:wxi6QMEK0 86才か、十分だろ : デフォルトの名無しさん (ワッチョイ 37da-8NB0 [114.185.1.124]) [sage] 2019/05/19(日) 22:35:22.57:wxi6QMEK0 誤爆、すまそ : デフォルトの名無しさん (ワッチョイ 432e-IJ5s [118.86.140.191]) [] 2019/05/19(日) 23:01:48.29:iZGlVtrY0 -jarが優先されるよ -jarと-cpは併用できない : デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202]) [] 2019/05/20(月) 00:00:36.14:ljCiVFHi0 ttp://https://stackoverflow.com/questions/18413014/run-a-jar-file-from-the-command-line-and-specify-classpath ここによると-cpの時Mainメソッドを含むクラスを指定しなきゃいけないみたいだけど 発見されるマニフェストファイルが1つだったらそれを頼りにMainメソッドを特定できそうだけど いちいち指定するしかないの? : デフォルトの名無しさん (ワッチョイ 432e-IJ5s [118.86.140.191]) [] 2019/05/20(月) 00:11:29.34:9bk38djr0 指定するしかないよ マニフェストファイルのMain-Classは実行可能Jarで使用されるものだから それが使われるのは-jarを使ったときのみ : デフォルトの名無しさん (ワッチョイ bfda-8NB0 [223.217.45.89]) [sage] 2019/05/20(月) 22:21:09.99:gJcgFuWQ0 Javaは有償ではないそうだ ttp://https://www.itmedia.co.jp/news/articles/1905/20/news123.html : デフォルトの名無しさん (アウアウカー Sa5f-ctyG [182.251.148.68]) [sage] 2019/05/20(月) 22:54:45.29:KADFzuXRa JVMS§5.3.4.かな。 : ◆QZaw55cn4c (ワッチョイ 5f47-8NB0 [131.129.117.60]) [sage] 2019/05/21(火) 08:06:04.69:CTqbZzlK0 詭弁ですね… @OpenJDK は新しいバージョンが出るとサポートが打ち切られる A8年間のサポートが保障される LTS は有償 ど う 考 え て も J a v a は 有 償 : デフォルトの名無しさん (ブーイモ MM6f-12ew [210.149.251.213]) [age] 2019/05/21(火) 08:28:08.82:+KjL9pSSM 新しいバージョンがサポートされるよ : デフォルトの名無しさん (ブーイモ MM6f-12ew [210.149.251.213]) [age] 2019/05/21(火) 08:32:04.98:+KjL9pSSM アダプトとかアマゾンとかが数年単位のサポートは提供するよ : デフォルトの名無しさん (ワッチョイ 4fda-53Kk [211.16.249.52]) [] 2019/05/21(火) 09:10:10.78:QjYRL2JZ0 古いバージョンそのまま使い続けたらどうなるん? 何か困るんかね : デフォルトの名無しさん (ブーイモ MMdf-BTmB [49.239.64.235]) [sage] 2019/05/21(火) 11:19:38.99:EK+TFNQDM アプリの実装に問題がなくても、 Javaの脆弱性を突かれて問題が発生したりして、 偉い人に怒られる。 : デフォルトの名無しさん (ブーイモ MM6f-yzpl [210.149.254.87]) [] 2019/05/21(火) 13:27:05.00:qWv1RF+mM インターフェースやジェネリクスの勉強がてらqueueの実装をしてみたいのですが、 何かお手本になるOSSやクラスありましたら教えて下さい。 : デフォルトの名無しさん (ブーイモ MM6f-12ew [210.149.251.213]) [age] 2019/05/21(火) 14:29:45.10:+KjL9pSSM JavaのArrayDequeとか : デフォルトの名無しさん (ドコグロ MM9f-A+mh [49.129.186.34]) [sage] 2019/05/21(火) 20:16:18.82:kdkwqODuM queue java 実装 とかでググれば色々出てくるだろ ttp://https://www.atmarkit.co.jp/ait/spv/1010/14/news127.html : デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202]) [] 2019/05/24(金) 10:11:59.56:h3dkW7YJ0 javaの各バージョンの利用者割合の最新情報ある? : デフォルトの名無しさん (ドコグロ MM33-BVry [49.129.184.178]) [sage] 2019/05/24(金) 13:54:03.96:MvD1XNgcM それを知ってどうするの? SIなら要件上許される範囲で最も新しいLTSを選べばよい。 自社(or個人)サービスなら非LTSの最新を選べばよい。 まさかとは思うがデスクトップアプリの話してるのだとしたら、スタンドアロンJREは廃止されたから、クライアントに元々インストールされているJavaに依存することはできない。 好きなバージョンをアプリに同梱して配布することになる。 いずれにしてもJavaのバージョンは開発者がコントロールするものであり、シェアを気にする意味はない。 : デフォルトの名無しさん (アウアウエー Sae3-PvHu [111.239.185.39]) [sage] 2019/05/24(金) 16:01:25.52:UCsdq/wma wordpressとかいうのをいじるのつまらなくなったからスッキリわかるjavaかったがやっぱり勉強ってこういう分厚い参考書でやるのが楽しいんだよな! という事でweb系からjavaの勉強に切り替えます! 俺だけ? : デフォルトの名無しさん (ワッチョイ 79da-Fpyl [220.220.34.58]) [sage] 2019/05/24(金) 16:14:23.31:Wq593JaR0 アホ、これでいいか : ◆QZaw55cn4c (ワッチョイ d347-SwLn [131.129.114.156 [上級国民]]) [sage] 2019/05/24(金) 20:48:44.65:0N6+tWvP0 永劫 Java8 で固定される(LTSも延長される)未来が見えます… : ◆QZaw55cn4c (ワッチョイ d347-SwLn [131.129.114.156 [上級国民]]) [sage] 2019/05/24(金) 20:49:26.05:0N6+tWvP0 奇遇ですね、私は Java8 から web 系(rails)に乗り換える予定なのです : デフォルトの名無しさん (ワッチョイ 7bda-Fpyl [223.217.147.110]) [sage] 2019/05/24(金) 21:47:32.07:olKCCVcV0 日本国籍持ってるの? : ◆QZaw55cn4c (ワッチョイ d347-SwLn [131.129.114.156 [上級国民]]) [sage] 2019/05/24(金) 21:50:52.46:0N6+tWvP0 個人番号通知票は持っています : デフォルトの名無しさん (ワッチョイ 7bda-Fpyl [223.217.147.110]) [sage] 2019/05/24(金) 21:58:56.05:olKCCVcV0 帰化したのか : 381 (ワッチョイ 13b9-9b2Z [123.1.16.202]) [] 2019/05/24(金) 22:28:19.75:h3dkW7YJ0 私はJavaエコシステムがJava8に留まってJava9+を無視するのではないかと思っています。 私自身はそうします。 Jigsawや自己完結型というアイデアを拒否します。 それで、世界の動向がどうなのか知りたかった。 : デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202]) [] 2019/05/24(金) 22:29:20.10:h3dkW7YJ0 言語仕様が無駄に複雑化していく事も嫌です。 : デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202]) [] 2019/05/25(土) 05:46:59.17:7Hh+Cor80 Javaについて調べていると「Javaはサンドボックスを持つ」みたいな記述が出てくるんですが それはアプレットの事で現在のJavaにはありませんよね? : デフォルトの名無しさん (ワッチョイ 0b63-rgvw [153.229.160.113]) [] 2019/05/25(土) 09:59:05.83:GthOBKy30 ある : デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202]) [] 2019/05/25(土) 11:08:34.34:7Hh+Cor80 何で検索したら出てきますか? : デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202]) [] 2019/05/25(土) 16:15:01.18:7Hh+Cor80 executable jar fileはどの環境でもダブルクリックで起動できますか? : デフォルトの名無しさん (ワッチョイ 992e-dNxZ [118.86.132.227]) [] 2019/05/25(土) 16:17:42.52:BD9fwrcm0 ・javaがインストールされてる ・拡張子.jarがjavaに設定されている の条件が必要かと : デフォルトの名無しさん (ワッチョイ 0b63-rgvw [153.229.178.3]) [sage] 2019/05/25(土) 17:40:31.80:gn+NIEQb0 一番堅いのはJVMの仕様書を読むこと 昔も今もJVM上で動くプログラムはすべてSandboxで実行される その外に出ようとする動作はSecurityManagerが許可不許可を判断して、ダメなら例外を投げて落ちる仕組み ただし、ローカルで実行されるアプリはデフォルトがすべて許可なので例外が起きることはない : デフォルトの名無しさん (ラクペッ MMd5-PvHu [134.180.3.217]) [sage] 2019/05/25(土) 23:22:06.84:R40PP6XIM 未経験の他業種工業系アヘアヘ資格マンなんだがオラクル資格は制作物作った後にそのレベル相応の色の奴を取った方がよいの? それともアヘ顔でgoldの参考書から先に手をつけても良いの : デフォルトの名無しさん (ワッチョイ e169-NteT [114.169.11.246]) [sage] 2019/05/26(日) 03:25:14.35:mqz5L0en0 goldでも実務経験ないと「で?」って対応されるで : デフォルトの名無しさん (アウアウエー Sae3-PvHu [111.239.185.146]) [sage] 2019/05/26(日) 08:07:49.28:+MRcn5Kya やっぱりな 電験3種と同じか : デフォルトの名無しさん (ワッチョイ 115f-k3B8 [106.72.163.96 [上級国民]]) [] 2019/05/26(日) 12:05:01.48:heQPrNEA0 そもそも電気主任技術者は実務が簡単で、さらに試験が実務とかけ離れていて、とにかく謎資格だから比較対象として挙げるべきではない。 : デフォルトの名無しさん (ワッチョイ 2198-SwLn [184.75.214.131 [上級国民]]) [sage] 2019/05/26(日) 15:39:35.06:CpBTYp0n0 あれは地頭をみるための篩なんですよ、持ってればエントリーできる、持ってなければ門前払い、ってやつです 証書番号で試験組か認定組かを判別できるようにしてあるのも、そういう理由によるものです : デフォルトの名無しさん (アウアウカー Sa75-u6yZ [182.251.149.67]) [sage] 2019/05/27(月) 00:08:07.02:+OdnEgpaa sandboxなんてとっくの昔にない。大昔からパーミッションと特権で動いてる。 AccessControllerのjavadoc読め。いつまでsandboxとか言ってんだ。 : デフォルトの名無しさん (ワッチョイ 0b63-rgvw [153.229.178.3]) [sage] 2019/05/27(月) 07:04:51.95:Pjuubp9p0 その機構をオラクルがsandboxって呼んでるじゃん : デフォルトの名無しさん (ワッチョイ 0b14-Fn1g [153.190.205.213]) [sage] 2019/05/28(火) 01:15:52.38:fEVmQ8I80 eclipseのクラス図自動生成ができない ドラッグ&ドロップしてもプログラムのタブが開くだけ : デフォルトの名無しさん (アウアウカー Sa75-u6yZ [182.251.147.74]) [sage] 2019/05/28(火) 22:43:22.31:irfCDf6Aa 呼んでないからSecurity関連の文書読め。 : デフォルトの名無しさん (ワッチョイ 992e-7KW8 [118.86.129.230]) [age] 2019/05/28(火) 23:31:39.52:/Hk6Z6hT0 宇宙刑事ジャバン : デフォルトの名無しさん (ワッチョイ b901-5PYY [126.27.70.174]) [sage] 2019/05/31(金) 01:42:20.40:DmEc6oV20 ttp://https://qiita.com/rubytomato@github/items/e4fda26faddbcfd84d16 この記事のHello Worldを表示させるところが分かりません。何故そう表示されるのでしょうか?因みにそのところまで書いてmvn compileやmvn packageは成功してます : デフォルトの名無しさん (ワッチョイ b901-5PYY [126.27.70.174]) [sage] 2019/05/31(金) 01:43:15.06:DmEc6oV20 補足: hello worldとどこにも書いてないのにそのように出力されるらしい理由を知りたいです 因みに私の環境ではhelloworldと出てません : デフォルトの名無しさん (ワッチョイ b901-bUoT [126.27.70.174]) [] 2019/05/31(金) 03:32:40.79:DmEc6oV20 springでentityクラスの最後にこのようなメソッドがありました。 どういう意味ですか? @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE); : デフォルトの名無しさん (スッップ Sda2-8eb3 [49.98.153.100]) [sage] 2019/05/31(金) 08:24:32.49:3KxflSzbd 多分著者の勘違い ただSpring Bootで特にView作らずに動かしてブラウザで見に行ったら画面上には出てこなかったっけ? toStringがわからんというならjava.lang.Objectのjavadoc読め 中に書いてることがわからんというならimport文に書いてる通りcommons-langのメソッドだからそっちのjavadoc読め : デフォルトの名無しさん (スッップ Sda2-8eb3 [49.98.153.100]) [sage] 2019/05/31(金) 09:11:45.92:3KxflSzbd 直接Java言語ではないんだけど自分も質問 最終的な配布形態がライブラリ(jarでメインメソッドを持たない、組み込まれること前提)のとき、 ログの実装ってどうするのがベターなのでしょうか 今はHikariCPのプロジェクトを参考にしてこんな感じにしていますが、正しいのかわからない - build.gradle上はテストの時だけlog実装やブリッジを依存関係に入れる implementation( slf4j-api ) testImplementation( logback ) testImplementation(jul-to-slf4jなどのブリッジ ) - log設定はtest-resourceにのみ入れる src/test/resources/logback.xml - コーディングはいつもどおりだけど、組み込まれた側に出力されないように、原則debugで出す : デフォルトの名無しさん (ワッチョイ ee14-Vgpo [153.190.205.213]) [sage] 2019/06/02(日) 04:21:29.06:jVO0SlD80 エクリプスでクラス図自動生成できる人いたらバージョンいくつか教えて : デフォルトの名無しさん (ワッチョイ 0294-LWbF [123.48.112.52]) [] 2019/06/13(木) 22:16:22.39:t9tRfwUY0 抽象クラスに設定したアノテーションは子クラスでも有効ですか? つまりアノテーションは継承されますか? : デフォルトの名無しさん (ワッチョイ 0294-LWbF [123.48.112.52]) [] 2019/06/13(木) 22:18:45.84:t9tRfwUY0 @SomeAnnotation public abstract class Base{} public class Child extends Base{} このときChildはSomeAnnotationを持っていますか? : デフォルトの名無しさん (ワッチョイ 822c-oZrO [219.162.237.2]) [sage] 2019/06/13(木) 23:50:57.53:NulSwGzN0 「java annotation 継承」で検索! 通常、Java ではアノテーションを継承したり合成したりできませんが、 Spring のアノテーションはできます : デフォルトの名無しさん (ワッチョイ 822c-oZrO [219.162.237.2]) [sage] 2019/06/14(金) 02:33:03.12:gXbRy3uY0 Ruby で説明すると、"〜" 内で、#{ a } のように、オブジェクトを入れると、 そのオブジェクトを文字列化しようとして、Object.to_s が呼ばれる その際、自分で作ったカスタムクラスでは、デフォルトでは、 <A:0x0000000002bf5c78> のように、訳の分からない文字列が表示されるので、 自クラスで、Object.to_s を上書きして、好きな文字列に変える事ができる class A end a = A.new puts "#{ a }" #=> <A:0x0000000002bf5c78> class A def to_s "インスタンスです!" # 上書きする end end b = A.new puts "#{ b }" #=> インスタンスです! : デフォルトの名無しさん (ワッチョイ b34e-ulgk [210.138.216.243]) [] 2019/06/14(金) 02:47:10.99:apjsiMiU0 rubyはマイナー糞言語なので説明には適さない。 未知の物事を基地の物事で言い換えるのが説明。 rubyなんて誰も知らないので説明には適さない。 : デフォルトの名無しさん (ワッチョイ 87da-vI2o [60.35.97.61]) [sage] 2019/06/14(金) 08:14:55.87:4YvVrWmf0 JavaスレでRubyで解説するタコ : デフォルトの名無しさん (ワッチョイ 0294-LWbF [123.48.112.52]) [] 2019/06/15(土) 05:11:52.42:6gRe3JZA0 java雑談スレってないの? : デフォルトの名無しさん (ワッチョイ 8b3d-zOIz [218.229.147.47]) [] 2019/06/15(土) 09:53:31.26:jGa3QHvM0 ttps://matsuri.5ch.net/test/read.cgi/oversea/1553515361/ : デフォルトの名無しさん (ワッチョイ 1701-tPtk [118.1.232.48]) [sage] 2019/06/15(土) 16:38:39.22:N0yWBKZL0 overseaってw : デフォルトの名無しさん (ワッチョイ 0f01-ITJd [126.27.70.174]) [sage] 2019/06/16(日) 20:10:04.64:sKatPFbV0 SpringのModelAndViewってhtmlのフォームから送られてきた値が同じメソッドの引数に書かれたxxxFormクラスやxxxBeanクラスのインスタンスに勝手にバインドされないの? されるようにするにはどうすればいいの? ttp://https://qiita.com/yakumo3390/items/4d4214fc4ded78f40517 : デフォルトの名無しさん (ワッチョイ 02b0-bbbA [123.224.100.119]) [] 2019/06/18(火) 06:23:13.55:3nOE2mBA0 プログラム板にキチガイ降臨中!botに一晩も反応する異常さ 一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。 ttps://mevius.5ch.net/test/read.cgi/tech/1559872586/ "> ttps://mevius.5ch.net/test/read.cgi/tech/1559872586/ 142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO : デフォルトの名無しさん (ワッチョイ 0f01-ITJd [126.27.70.174]) [sage] 2019/06/18(火) 19:31:12.22:BOIyU+dK0 thymeleafのth:attrってどう使うの?タグがリプレイスされるのは分かるけど条件指定とかは?多言語のメカニズムはどうなってる? : デフォルトの名無しさん (アウアウウー Sa6b-7DQ/ [106.132.132.141]) [] 2019/06/19(水) 09:54:49.03:WYELJAwQa 何の話? : デフォルトの名無しさん (ワッチョイ 8b3d-zOIz [218.229.147.47]) [] 2019/06/19(水) 20:48:44.66:96uVR6tp0 Springちゃうの? : デフォルトの名無しさん (ワッチョイ 87da-vI2o [60.34.155.119]) [sage] 2019/06/19(水) 20:51:20.38:U/2T24gw0 Spring has come : デフォルトの名無しさん (ワッチョイ 0301-/t5l [126.27.70.174]) [sage] 2019/06/20(木) 21:08:39.15:BroFGJyi0 Mavenがオワコンな理由が分からん 確かにXMLはダルいけどMavenに関してはmvn repositoryでググって切った張ったするだけじゃん GradleやBezelとやらが必要な理由は? : デフォルトの名無しさん (ワッチョイ 7e46-RkCp [153.166.249.38 [上級国民]]) [sage] 2019/06/22(土) 16:15:50.52:USNyaIVz0 Mainクラス{ main{ try{ Clac()を呼ぶ System.exit(0) }キャッチException ){ 例外が発生したらSystem.exit(1) } } private内部メソッドCalc{ 別クラスRead()を呼んで文字列を受け取る if(文字列.equals("バカ")){ System.exit(異常) } return 文字列 } } ---------------------------------------------- Readクラス{ public ReadTxt{ try{ A.propertiesの一部内容("お前は"項目)を読む 項目の中身"天才"を取得 return "お前は"項目の文字列(="天才") }キャッチ(FileNotFoundException ){ 読めなかったらSystem.exit(異常) } } } : デフォルトの名無しさん (ワッチョイ 7e46-RkCp [153.166.249.38 [上級国民]]) [sage] 2019/06/22(土) 16:21:51.00:USNyaIVz0 続き ---------------------------------------------------- A.properties中身 〜 お前は 天才 〜 ---------------------------------------------------- 正常テスト @Test test00{ main() } mainで例外発生テスト @Test test01{ mainで即例外を発生させる処理 ←わからん } A.propertiesの中身が"アホ"だったテスト @Test test02{ Main.Calc()の"天才"を格納した変数を書き換える処理? ←わからん } : デフォルトの名無しさん (ワッチョイ 7e46-RkCp [153.166.249.38 [上級国民]]) [sage] 2019/06/22(土) 16:28:41.86:USNyaIVz0 >>431続き A.propertiesが読めなかったテスト @Test test03{ Read.ReadTxt()の読み込みパスを一時的に書き換える処理? ←わからん } ・一回一連のテスト流してバレッジ100%にしたい ・main側で即例外がでる処理が分かりません。 ・Test01でA.txtを読んだ値を格納した変数を”天才”"→アホ"へ変更する処理が分かりません。 ・・Test03で読み込み先を一時的に変更する処理が分かりません。 : デフォルトの名無しさん (ワッチョイ ff5f-JPFb [106.72.163.96 [上級国民]]) [] 2019/06/23(日) 02:34:01.51:14HOOLCC0 テストのやり方を知らない者同士でテストをやっているのかね? : デフォルトの名無しさん (ワッチョイ ff5f-JPFb [106.72.163.96 [上級国民]]) [] 2019/06/23(日) 02:36:31.66:14HOOLCC0 テストだと思ってないということか? : デフォルトの名無しさん (ラクペッ MM0b-wH6t [134.180.5.17]) [sage] 2019/06/23(日) 03:58:19.27:Qs981YkgM 二次元配列をsortするのってどうやればいいの? : デフォルトの名無しさん (ワッチョイ e602-Im5L [175.134.57.7]) [] 2019/06/23(日) 04:20:32.18:tw+Py36V0 java.util.Arrays.sort(T[] a, Comparator<? super T> c) 使えば良いのでは? Comparator 自分で書く事になるから1次元だろうが2次元だろが何次元だろうがソートできる。 : デフォルトの名無しさん (ラクッペ MMa3-wH6t [110.165.195.98]) [sage] 2019/06/24(月) 08:10:50.49:+C8ZS5/NM springとかの依存性の注入ごわからないんだけど コーディングしている時にコンパイルエラーが出ない以上の意味があるの? : デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50]) [] 2019/06/24(月) 20:09:20.96:218UFAwP0 継承より委譲と言われるけど、逆に継承のメリットってなんですか? : デフォルトの名無しさん (ワッチョイ 3eda-mDEe [121.118.76.205]) [sage] 2019/06/24(月) 20:14:26.19:vFVmaW5L0 spring has com : デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50]) [] 2019/06/24(月) 21:02:09.88:218UFAwP0 合成使えっていうけど、合成用にセットしたオブジェクトが複数あったとして、それらの間に依存関係を 作りたい場合、実はそれって多重継承みたいなものじゃないですか? : デフォルトの名無しさん (ラクペッ MM0b-Ozek [134.180.0.94]) [sage] 2019/06/24(月) 21:10:43.67:S4tOibHdM 継承は多様性のために使え 機能の流用のために(それだけを目当てに)使うなってことかと : デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50]) [] 2019/06/24(月) 21:44:19.82:218UFAwP0 多様性っていうけど、そりゃ継承って何らかの仮想メソッドがあったり、 子クラスでメソッドとか状態を追加したりするんだから、 ほとんどの場合多様性じゃないの? 継承の場合 abstract class Animal{ private int age; } class Dog extends Animal{} class Cat extends Animal{} 委譲の場合 class AgeHolder implements AgeHolderI{ private int age; public int getAge(){return age;} } class Dog implements AgeHolderI{} class Cat implements AgeHolderI{} こんな感じにしていけるから、ほとんど常に継承は委譲に置き換えれるのでは? : デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50]) [] 2019/06/24(月) 21:52:32.50:218UFAwP0 Animalに対してDog,Catが定義されるのは多様化だと思うけど この場合に継承を使う事は妥当なんだろうか? この調子で多くの動物を扱っていくとして。 検索してみるとそのような事すら否定されてる気がする : デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50]) [] 2019/06/24(月) 22:07:32.22:218UFAwP0 ttp://https://qiita.com/tutinoco/items/6952b01e5fc38914ec4e >コンポジションの使い方は、下記のコードを見ただけですぐ理解できるでしょう。 車によって自動ブレーキシステムを搭載しているかが違うが、 Carクラスは自動ブレーキシステムのフィールドを一応持っておいて 自動ブレーキシステムを持たない車種ではnullにしておくんですか? そうすると車のあらゆる概念を扱っていった時、nullだらけになりませんか? 50年前の車が持っていた概念、非常にマイナーな車が持っていた概念とかどう扱う? 継承なら共通概念を括りだせる()からマイナーな車は単に抽象Carクラスを継承して 自分が持つマイナーなフィールドを追加するだけです。 : デフォルトの名無しさん (ワッチョイ aa2c-udt/ [219.162.237.2]) [sage] 2019/06/25(火) 05:40:48.77:/8kFlQVi0 継承は例えば、Ruby on Rails みたいな、フレームワークを使う場合だろ ttp://localhost:3000/friends/new ここで、自分で定義した(カスタム)コントローラーは、friends で、アクションは、new とする。 カスタムコントローラーは、フレームワークのコントローラーの、ApplicationController から継承して作られる。 その中には、アクションのメソッドを定義する class FriendsController < ApplicationController def new end end ファイル名は、friends_controller.rb, application_controller.rb このように、継承は作り方がきっちり決まっている、フレームワークの主要クラスで使われる。 お作法! : デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50]) [] 2019/06/25(火) 06:04:13.20:Cc6pu6kp0 そういうのは分かる。明らかに継承が便利。 でもアプリ独自のモデルクラスで継承を使うのはどうなのかと思って。 : デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50]) [] 2019/06/25(火) 06:36:55.33:Cc6pu6kp0 継承を合成に書き換えるとしたら、 継承における上下の依存関係、つまり親クラスのprotectedな要素へのアクセスや 仮想メソッドを通じた子クラスによる振る舞いの変更は、合成でどう書くのか? つまり委譲先オブジェクトが多数ありそれらが相互に依存しているような場合。 AllDependencyHolderみたいなインターフェースをホストオブジェクトに実装して 各種委譲先オブジェクトのゲッターを宣言して 委譲先オブジェクトのメソッドにいちいちthisを渡すような実装しかない気がするんだけど合ってる? : デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50]) [] 2019/06/25(火) 18:10:32.10:Cc6pu6kp0 継承使ってく事にした 自分的にそれで納得できた : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/06/28(金) 22:42:05.64:k4pW0x/X0 Project Loomのfiberと呼ばれている技術で100万スレッドできるらしいですが ExecutionServiceに100万タスクを登録するのと何が違いますか? 定期実行のもあるわけですが : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/06/28(金) 22:47:02.46:k4pW0x/X0 通常のスレッドよりスイッチングが高速、とあるな。 ExecutionServiceは内部でThread使ってるからタスクの切り替えコストが違うのか : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/06/30(日) 16:43:29.01:y+UHg1Q80 Process#getOutputStream これでパスワードを送信するのは安全?つまり他プロセスに傍受される心配はある? localhost内で、送信元と送信先は自分のアプリのプロセスで。 : ◆QZaw55cn4c (ワッチョイ ff47-QJ8z [131.129.114.156 [上級国民]]) [sage] 2019/06/30(日) 16:48:10.42:4WWIfODW0 インテル脆弱性の前には何をやっても無駄なのでは? : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/07/01(月) 19:10:48.80:PRpBlBSs0 Javaの日時系クラスってバカが作ってるのかな? : デフォルトの名無しさん (アメ MM07-rSnO [210.142.96.198]) [] 2019/07/01(月) 19:20:18.37:MoEwNeEzM それを丸パクリしたJavaScriptでも大変不評です : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/07/02(火) 12:07:42.78:I3kswGZV0 Javaのモジュールという構想は本当に必要なの? : デフォルトの名無しさん (アウアウウー Sa47-jhwL [106.132.127.162]) [] 2019/07/02(火) 13:11:09.01:duTOXDdLa 知らない。俺はまだ扱い方がよくわかってない。 : デフォルトの名無しさん (ラクッペ MM67-eD7e [110.165.128.15]) [sage] 2019/07/02(火) 13:32:42.49:LfC41+BGM まあ必須では無いと思う : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/07/02(火) 13:40:47.49:I3kswGZV0 Mavenと比較すると一部のクラスを完全に非公開にできるというだけでしょ。 でもその程度では結局後方互換性の問題の完全解決ではないから 強制導入させて何がやりたいのか : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/07/03(水) 03:08:24.72:C46248vl0 Javaの高速リリースとかいって無駄に複雑化させまくってる面がかなりある : デフォルトの名無しさん (ラクッペ MM47-eD7e [202.176.18.142]) [sage] 2019/07/03(水) 07:05:27.23:YhvjepvzM Javaの良いところ殺してるからな 言語仕様ころころ変えられて迷惑でしかない : デフォルトの名無しさん (ワッチョイ 5361-Ij2G [112.136.82.127]) [] 2019/07/03(水) 07:12:38.31:DRDew2U40 8と11で3年以上空いてるだろ。次のLTSも2年以上先だ。 : デフォルトの名無しさん (アウアウウー Sa47-jK3L [106.180.2.16]) [sage] 2019/07/03(水) 07:39:05.54:ZPqKMvhJa Javaの良いところは安い人員をバルクで調達できるところだからねえ 言語仕様の拡張は人員のクオリティにムラが出る原因になる : デフォルトの名無しさん (アウアウウー Sa47-jhwL [106.132.127.48]) [] 2019/07/03(水) 12:47:59.60:0rGzsSa9a Kotlinもよろしく : デフォルトの名無しさん (ワッチョイ 6f90-uAY+ [119.83.220.183]) [sage] 2019/07/03(水) 14:44:39.62:IwG6dpwN0 しばらく高速リリースでいいよ。今までがチンタラしすぎて、言語機能やらライブラリかなり他と比べて見劣りしてた。どんどん新機能追加がんばれ : デフォルトの名無しさん (ドコグロ MM9f-jK3L [49.129.185.136]) [sage] 2019/07/03(水) 15:11:11.12:hoHjSSrxM Enterprise Java とか称してjavacのソースバージョンを6に指定するのが流行りそう : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/07/03(水) 17:26:52.20:C46248vl0 ttp://https://docs.oracle.com/javase/jp/8/javafx/layout-tutorial/size_align.htm >border.setPadding(new Insets(20, 0, 20, 20)); >vbButtons.setSpacing(10); こういう大きさとか座標系の数値はピクセル? 調べても単位が不明なんだが。 : デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50]) [] 2019/07/03(水) 17:28:29.94:C46248vl0 ttp://https://stackoverflow.com/questions/41241885/setheight-in-jfx-set-height-in-which-unit pixelみたいだな うーん : デフォルトの名無しさん (ワッチョイ ffb9-T0Pq [123.48.158.50]) [] 2019/07/04(木) 14:57:00.44:1bFHm9QF0 module-info.javaのrequiresはバージョンを指定しないから 依存性解決として不十分だと思うんだけど もし実行時環境にバージョンが異なる複数のモジュールがあったらどうするの? しかもいずれも必要で他のモジュールから参照されていたら。 pom.xmlを標準で採用してjarに含めるようにしたほうがよかったんじゃないの? : ◆9GoCDasLbI (ワッチョイ ffb9-T0Pq [123.48.158.50]) [] 2019/07/04(木) 16:48:48.61:1bFHm9QF0 トリップつける : デフォルトの名無しさん (ワッチョイ 6f01-VtwU [111.90.18.234]) [] 2019/07/07(日) 01:06:12.15:HGCAr90Y0 あるディレクトリの1階層に下にあるファイルとディレクトリを取得したいのですが 簡単な方法ありますか? あるディレクトリはPath型で指定して 取得するファイルやディレクトリはPath型のListに格納したいです : デフォルトの名無しさん (ワッチョイ 6f01-VtwU [111.90.18.234]) [] 2019/07/07(日) 01:37:07.01:HGCAr90Y0 自己解決しました : デフォルトの名無しさん (ワッチョイ ff2c-NenP [219.162.237.2]) [sage] 2019/07/07(日) 12:04:32.79:Ts5uCd7M0 Ruby では、glob で、/*/* を使うと、1階層下のみ。 /**/* なら、その下を再帰的にすべてたどる dirs = [ ]; files = [ ] Dir.glob( 'C:/Users/Owner/Documents/Ruby/selenium/*/*' ) do |path| if File.directory? path # directory dirs.push path else files.push path end end p dirs, files : デフォルトの名無しさん (ドコグロ MMc7-c4tc [118.109.189.52]) [sage] 2019/07/07(日) 12:36:49.37:CK++WJ+eM グロ : デフォルトの名無しさん (ワッチョイ 0346-VkkL [180.0.70.244 [上級国民]]) [sage] 2019/07/09(火) 23:54:05.37:iNtZPA5w0 public class Employee{ private final string HIRA = "111" private final string PRESIDENT = "555" private interface length { //文字長 int HIRA = 3; int PRESIDENT = 3; } private interface japanese { //日本語 string HIRA = "平社員" string PRESIDENT = "社長" } //以下main処理 } こんなプログラムを改修していたのですが,「private interface 」とは何なのでしょうか? インターフェースは別クラスに作り,それをmainクラスなりでimplementするものだと思ってました。 確かにこれなら同じ名前を用いることができて便利だなあと関心し,他に意味があるのかと調べたんですが, 「private interface」というものは出てきませんでした。 : デフォルトの名無しさん (ワッチョイ 6f01-3xYg [111.90.12.92]) [age] 2019/07/10(水) 00:18:52.26:9g1OJL4d0 他に意味はありません : デフォルトの名無しさん (ワッチョイ 6f01-3xYg [111.90.12.92]) [age] 2019/07/10(水) 00:20:58.93:9g1OJL4d0 定数をまとめてるだけ privateはそのクラス内でしか参照しないってこと : デフォルトの名無しさん (ワッチョイ 6f01-3xYg [111.90.12.92]) [age] 2019/07/10(水) 00:21:49.62:9g1OJL4d0 大したことやってない調子に乗るなとコメントに書いといたが良い : デフォルトの名無しさん (ワッチョイ 2301-rgZK [60.126.40.87]) [sage] 2019/07/10(水) 02:33:49.57:1RE3v5Jp0 テストコード書いたことなくて勉強してるんだけど どんな粒度で書けばいいのか分からない どこかいいソースとかサイト誰か教えて JavaのArrayListとかってテストコードあるの? : デフォルトの名無しさん (スプッッ Sd92-uYoH [1.75.233.111]) [sage] 2019/07/13(土) 22:05:57.64:cGtMHMBed streamに対する操作として、max(Comparator::natualOrder)みたいにメソッド参照で操作できますか。どの参考書にもComparator.natualOrder()を使ってるのですが : デフォルトの名無しさん (ワッチョイ 9e02-24gz [175.134.57.7]) [] 2019/07/13(土) 22:46:57.40:8ITWxw560 だから? : デフォルトの名無しさん (ワッチョイ 9e01-R2Rk [111.90.18.234]) [] 2019/07/13(土) 22:53:55.53:ceXHLd/u0 やってみればわかるけどmax(Comparator::natualOrder)はコンパイルエラーになるよ maxの引数はComparator型のオブジェクト Comparatorは任意の型の値を2つ受け取ってint型の値を返すもの Comparator::natualOrderは0個の引数を受け取ってComparatorを返すもの natualOrderが返すものがComparatorであってnatualOrder自体はComparatorじゃないからムリ : デフォルトの名無しさん (ワッチョイ 522c-i8Xk [219.162.237.2]) [sage] 2019/07/13(土) 23:05:17.14:3z2XwFOM0 RSpecで書かれたRailsチュートリアル 第6章のテストコードをレビューしてみた ttp://https://www.youtube.com/watch?v=qpiKb0mdbr0 伊藤淳一のRuby on Rails のテスト動画ならあるけど : デフォルトの名無しさん (ワッチョイ 9746-qIgc [180.0.70.244]) [sage] 2019/07/14(日) 02:22:08.36:PhrrbKHI0 固定リスト(aslist)と不変リスト(list.of)の意味の違いがわかりません。 addとか操作できないなら同じじゃないんですか? : デフォルトの名無しさん (ワッチョイ d2b9-YtL5 [123.48.158.50]) [] 2019/07/14(日) 03:04:54.15:uKA/y8Qo0 プロジェクトをjarに出力しようとしてる。 jarのmeta-infフォルダの内容をカスタマイズしたいがどうすればできるか? : デフォルトの名無しさん (ワッチョイ d2b9-YtL5 [123.48.158.50]) [] 2019/07/14(日) 04:34:56.16:uKA/y8Qo0 Javaプロジェクトで作成してソースフォルダ直下に置いたらできた でもMavenプロジェクトだとソースフォルダ直下に何かを置くという操作ができないな : デフォルトの名無しさん (ワッチョイ 9e02-24gz [175.134.57.7]) [] 2019/07/14(日) 04:53:07.55:VYOKuUQn0 ttp://https://codeday.me/jp/qa/20190310/372440.html : デフォルトの名無しさん (ワッチョイ 8701-XC/u [126.90.90.45]) [sage] 2019/07/17(水) 13:24:48.47:AbaZohHR0 Javaのアップデートに関する質問です。 環境はwindows8.1で、タスクバーにJavaのアイコンが現れて「Java Update利用可能」の状態なのですが、 アイコンをダブルクリックすると スクリプトエラー このページでスクリプトエラーが発生しました。 ライン; 1 文字 : 1 エラー: ')' がありません。 コード: 0 URL: と表示されてインストールが出来ません。 どうすればアップデートできるのでしょうか? : デフォルトの名無しさん (ワッチョイ 2bda-TPoM [114.185.9.58]) [sage] 2019/07/17(水) 13:30:46.74:fonZVrUF0 それプログラムの話か? : デフォルトの名無しさん (アウアウウー Saa3-KZVA [106.132.129.79]) [] 2019/07/17(水) 18:03:20.99:YN7zKeiTa わからない。一度アンインストールしてから新しいやつ自分でダウンロードしてインストールし直したら? : デフォルトの名無しさん (アークセー Sx27-AvHN [126.228.18.101]) [sage] 2019/07/17(水) 19:44:43.28:Dw6BLpSrx アインストールして入れ直せばできたぞ : 487 (ワッチョイ 0501-/r7K [126.90.90.45]) [sage] 2019/07/18(木) 01:34:31.80:KhUYMYet0 ,490 ありがとう、公式からインストーラーダウンロードして手動でインストールしたら出来ました。 しかしインストール後 Javaコントロールパネル を覗いてみると 「アップデート」のタブがなくなっています。 「アップデート」のタブって消えたりするものでしたっけ? : デフォルトの名無しさん (オッペケ Sr11-KwlG [126.179.118.91]) [sage] 2019/07/23(火) 12:11:44.39:J+ZHGa1Mr 初心者なんですが ホームページ作るんですけどmysql使ってデータ入力して そのデータを例えばプルダウンメニューからa-zの頭文字をクリックして引き出して表示させる、みたいな感じにしたいんですが 色々調べたらphp使った方がいいみたいな記事ばかりなんですが javaだと難しいんでしょうか? : デフォルトの名無しさん (ワッチョイ 6b02-tWJ1 [113.158.53.138]) [] 2019/07/23(火) 12:23:47.74:zKHHLY/G0 javaを使える人が試しにphp使うとphpの楽さがわかる程度に楽なはず odbcを難なく使えるならばjavaですんなり作れる腕のはず : デフォルトの名無しさん (ドコグロ MM13-fHem [119.241.244.73]) [sage] 2019/07/23(火) 12:25:49.33:pMPIgbDXM 難しいというかゴキブリを殺るのにショットガンを持ち出すようなもの : デフォルトの名無しさん (ブーイモ MM2b-lP7j [163.49.214.163]) [sage] 2019/07/23(火) 20:28:53.96:sDqE/UWhM 最近のGは殺虫剤耐性あるらしいから、確実性を狙うならあるいは… : デフォルトの名無しさん (ワッチョイ 23ad-0ngu [27.139.18.89]) [sage] 2019/07/24(水) 02:44:47.37:S0ZgllDI0 凍らすやつ使いなさい : デフォルトの名無しさん (ワッチョイ 35f0-ONaZ [58.98.134.167]) [sage] 2019/07/25(木) 23:39:46.79:uj29tKpW0 eclipseいれたんですが、重すぎて全然動かなくて困りまして‥ 軽くておすすめのIDEありますか?みなさんは何を使っているんでしょうか : デフォルトの名無しさん (ワッチョイ 1201-2tjw [123.216.109.150]) [sage] 2019/07/25(木) 23:52:41.82:uZl1AFvy0 NetBeansしか使ってないけど、ふつうに快適だお。 : デフォルトの名無しさん (アウアウウー Sa4d-LsNC [106.180.6.193]) [sage] 2019/07/25(木) 23:57:00.32:BYStTgyKa 今だとIntelliJかVSCodeだな eclipseが重いならIntelliJも辛いかも VSCodeは設定が少々面倒だが軽いしeclipseとかいうゲロ糞よりは遥かに使いやすい : デフォルトの名無しさん (ワッチョイ 9e12-xrbd [121.103.136.72]) [sage] 2019/07/26(金) 00:00:45.33:4WOlvOyb0 俺もvscodeしか使わなくなってしまったけど、eclipseのリファクタ機能は神がかってたと思う : デフォルトの名無しさん (ワッチョイ d5a3-+Thh [218.226.211.189]) [] 2019/07/26(金) 10:42:10.57:FYq97nVK0 増分コンパイルされないから : デフォルトの名無しさん (ラクッペ MMe9-3F5L [110.165.180.240]) [sage] 2019/07/26(金) 11:09:47.00:bozmWfe6M netbeans使ってるわ 動き自体は軽くて快適だよ apacheに移って将来性良くわからんけどね : デフォルトの名無しさん (ワッチョイ 92f0-wm0+ [61.193.209.32]) [sage] 2019/07/27(土) 11:44:00.92:Ly9dgVjB0 5Gの時代だとJAVAの需要って増えるんでしょうか? : デフォルトの名無しさん (ワッチョイ b6da-KIok [223.218.149.148]) [sage] 2019/07/27(土) 12:34:46.96:+u70Cj0O0 増えるよ : デフォルトの名無しさん (ワッチョイ 92f0-wm0+ [61.193.209.32]) [sage] 2019/07/27(土) 12:43:20.69:Ly9dgVjB0 オラクルすごいっすね : デフォルトの名無しさん (オイコラミネオ MM11-CDeu [150.66.67.123]) [] 2019/07/27(土) 23:34:08.27:gfq5vQssM javaってなんでjavaって名になったんですか? : デフォルトの名無しさん (ワッチョイ 3601-FpXu [111.90.8.52]) [] 2019/07/27(土) 23:44:51.88:6Xw13KxI0 「私はJavaと命名しました」と当時のOak製品マネージャーであり、現在はMarimba Inc.のCEOであるKim Polese氏は語ります「私は正確に正しい名前を付けたかった ので、Javaの命名に多くの時間と労力を費やしました。 このプログラミング言語は非常 にユニークであるため、私はオタク的な名前を避けることにしました。 私は、かっこよ く、ユニークで、そして綴りが簡単で、言えることが楽しい何かが欲しいと思いました。 「私はチームを部屋に集め、「ダイナミック」、「生きている」、「衝撃」、「衝撃的」 、「革命的」などの単語をホワイトボードに書いて、グループをブレインストーミングに 導いた」とPoleseは言った。 。 「このセッション中に[Java]という名前が登場し ました。WebRunnerLanguage用のDNA、Silk、Ruby、WRLなどの他の名前には、 yuck!」 So why did they decide to call it Java? | JavaWorld ttp://https://www.javaworld.com/article/2077265/so-why-did-they-decide-to-call-it-java-.html : デフォルトの名無しさん (ワッチョイ a5ad-f/ht [42.145.105.241]) [] 2019/07/28(日) 14:56:11.60:K7yfQMT20 通知バーのJAVAアイコンからインストールしようとするとかっこがありませんっていう構文エラーが出てきてうんともすんとも言わなくなるんだけど何なの? : デフォルトの名無しさん (ワッチョイ a5ad-f/ht [42.145.105.241]) [] 2019/07/28(日) 14:58:28.50:K7yfQMT20 よくみたらこれだわ 7でも10でも会社のPCでももれなく起きるわ 公式で何か言ってくれてたりしないのかな : デフォルトの名無しさん (ワッチョイ d561-JDM+ [218.231.141.143]) [] 2019/07/28(日) 18:28:52.54:FY1e9//S0 ライセンス変更になって、OTNに登録していないとDLできないようになったからじゃね? どのみち、Java8を最後にJRE単体配布もなくなるし。 : デフォルトの名無しさん (ワッチョイ a5ad-f/ht [42.145.105.241]) [] 2019/07/28(日) 18:35:57.14:K7yfQMT20 仮にそれだとして)がありませんエラーでタスクバーにアイコン表示させっぱなしにするという糞対応する? : デフォルトの名無しさん (ラクッペ MMe9-lxW0 [110.165.178.16]) [sage] 2019/07/28(日) 23:05:49.68:6yOnmo+3M java silverとるなら8と11どっちがいいんだろ? : デフォルトの名無しさん (ワッチョイ b6da-KIok [223.218.153.168]) [sage] 2019/07/28(日) 23:13:42.22:fQf3JBTW0 お好きなように : デフォルトの名無しさん (ドコグロ MM9a-LsNC [119.243.54.127]) [sage] 2019/07/29(月) 08:45:19.65:f73BLAzPM どっちも等しく意味はないからどっちでも : デフォルトの名無しさん (スププ Sdb2-6AdZ [49.98.65.158]) [sage] 2019/07/29(月) 21:45:18.18:CSar0obtd ttps://i.imgur.com/7ssVURS.jpg : デフォルトの名無しさん (ワッチョイ b6da-9Rzn [223.218.251.239]) [] 2019/07/29(月) 22:07:22.51:ah/mqMgZ0 グロ : デフォルトの名無しさん (ワッチョイ f6a6-CDeu [119.240.124.4]) [] 2019/07/30(火) 07:18:51.66:VrpHK0hY0 またウン○か! : デフォルトの名無しさん (ワッチョイ e3ed-J+AI [61.203.126.217]) [] 2019/08/14(水) 21:20:43.55:k4UWt8la0 mutex : デフォルトの名無しさん (アウアウクー MM4f-m73o [36.11.225.87]) [sage] 2019/08/21(水) 16:15:25.16:0yVqkKpPM public <T> T & Cloneable makeItCloneable(final T it) { return (T & Cloneable) it; } みたいなことってどうやったらできるんですか?このソースコードだとマーカーアノテーションのくせにCCEが投げられるんですけど : デフォルトの名無しさん (アウアウウー Sa2b-ZOU2 [106.132.128.168]) [] 2019/08/21(水) 20:08:48.99:8NVHTeeBa &? : デフォルトの名無しさん (ワッチョイ 87ed-MlRc [122.135.18.167]) [] 2019/08/27(火) 00:51:52.57:A4w3mNFW0 わらた : デフォルトの名無しさん (ワッチョイ 87ed-MlRc [122.135.18.167]) [] 2019/08/27(火) 00:52:40.01:A4w3mNFW0 Classってクラスにそんなメソッドあったかも、 : デフォルトの名無しさん (アウアウエー Sae3-J8OI [111.239.252.142]) [sage] 2019/10/03(木) 14:17:38.96:FzwUXprsa 図書館で2007年出版の参考書借りてきたんですがまだ使えますか? : デフォルトの名無しさん (アウアウウー Sa9d-J8OI [106.180.10.197]) [sage] 2019/10/03(木) 21:24:07.43:Y8ReZprUa 使ってみたらライブラリDLするところでリンク切れてて実行環境作れませんでした・・・出直してきます 環境変数とドキュメントの入手は成功したんですが古い参考書はダメですね : デフォルトの名無しさん (ワッチョイ 1394-o6K/ [123.48.64.125]) [] 2019/10/08(火) 00:59:42.36:pe44plco0 awtは今後もサポートされ続けるの? 打ち切りの話とか出てる? : デフォルトの名無しさん (アウアウウー Sa9d-8Spd [106.132.135.144]) [] 2019/10/08(火) 10:24:59.08:UHIrT7RMa さあ?しかし swing のベースにもなっているので無くなれば swing ごと消滅になると思うよ。 : デフォルトの名無しさん (ワッチョイ 1394-o6K/ [123.48.64.125]) [] 2019/10/08(火) 17:43:19.07:pe44plco0 Desktopクラスがawtだから javaでURLを開いてデフォルトブラウザで開こうとしたらawt必須でしょ? javafxにDesktopクラスに相当するものがないし awtはGUIフレームワークというよりもっと広い範囲の機能を持ってしまってる : デフォルトの名無しさん (アウアウウー Sa9d-8Spd [106.132.138.94]) [] 2019/10/08(火) 21:06:48.90:gO+Oxfwra ネイティブ環境との橋渡し的なものだな : デフォルトの名無しさん (ワッチョイ 2302-6CKJ [125.52.64.191]) [] 2019/10/11(金) 08:20:28.90:OWmYpcgG0 Javaの課題が大量に出たのですがメソッドがうまく理解できず全く進めません 厚かましいですが問題を解いて解説できる方がいらっしゃったらお願いします ttps://i.imgur.com/JEjERTW.jpg ttps://i.imgur.com/VPD27ce.jpg : デフォルトの名無しさん (ブーイモ MM59-pmjG [210.149.253.103]) [sage] 2019/10/11(金) 08:26:49.78:Z7kWidgaM どこまで自分でかけたのか晒してくれないと教える気にならん : デフォルトの名無しさん (ワッチョイ 2302-6CKJ [125.52.64.191]) [] 2019/10/11(金) 08:38:54.76:OWmYpcgG0 すみません、問題を間違えてました こちらの問題です かけたのはここまでです ttps://i.imgur.com/Yz3kEf9.jpg ttps://i.imgur.com/jmLjScb.jpg : デフォルトの名無しさん (オッペケ Sr61-II0b [126.34.6.182]) [sage] 2019/10/11(金) 09:29:43.97:R6n+lsqkr メソッドの書き方自体は問題無いから中身だね a % b == 0 のときaはbの倍数 これとfor文とif文を組み合わせてカウントして出力しよう : デフォルトの名無しさん (ワッチョイ 2302-6CKJ [125.52.64.191]) [] 2019/10/11(金) 09:40:24.96:OWmYpcgG0 ありがとうございます…! やってみます! : デフォルトの名無しさん (アウアウクー MMe1-mT29 [36.11.225.124]) [] 2019/10/12(土) 02:36:24.75:w1B6WBqOM とりまpc使おうず : デフォルトの名無しさん (ワッチョイ 23d2-cmrh [125.175.139.232]) [sage] 2019/10/15(火) 22:14:15.26:d4ecUmga0 DateTimeFormatterについて教えて。 日付を月と日にフォーマットしたいのですが簡単な方法はありませんか? システムの言語が日本語だったら10月15日で英語(US)だったらOctober 15などと表示したいです。 DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG).format(localDate)とすると 2019年10月15日となってしまって年が不要です。 JDK1.8でandroidアプリです。 : デフォルトの名無しさん (ブーイモ MM43-t7gx [49.239.64.101]) [sage] 2019/10/16(水) 11:46:30.44:WGPalTIjM ttp://https://developer.android.com/reference/android/text/format/DateUtils.html?#formatDateTime(android.content.Context,%20long,%20int) : デフォルトの名無しさん (ワントンキン MMd2-j/w9 [153.248.231.150]) [sage] 2019/10/17(木) 07:07:53.32:8j+Ah9oeM ありがとう 簡単にできそうです OSによって微妙に動作が違うっぽいけどいろいろ使えそう : デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125]) [] 2019/10/25(金) 14:12:30.48:RuWUXZ3V0 javaとc#で総称型の実装が違うけど javaのイレージャというのは実際どう思う? 実際書いてるとなんとかなるけど、総称型情報が実行時に取得できないというのは、 処理系の評価としてはどうなんだろうか? つまりjavaは付け焼刃の中途半端な実装をしているんだろうか? それともイレージャが理想なんだろうか? : デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125]) [] 2019/10/25(金) 15:36:15.49:RuWUXZ3V0 SecurityManagerで動的にロードされたプログラムにポリシーを適用するという方法で 「動的にロードされたプログラムはこれらのパッケージ(またはメソッド)にのみアクセスしていい」 というような制限は実現できる? : デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125]) [] 2019/10/25(金) 15:50:04.14:RuWUXZ3V0 AWTPermissionみたいないろんなパーミッションがあるけど そもそもある動作がどんなパーミッションを必要とするか?をカスタマイズできるのかどうか。 自分の独自クラスが独自パーミッションを必要とする、という事は可能なのか? : デフォルトの名無しさん (ブーイモ MM7f-0VxI [163.49.201.129]) [sage] 2019/10/25(金) 21:18:19.60:XWvZhZOSM 可能 ttp://https://wiki.sei.cmu.edu/confluence/plugins/servlet/mobile?contentId=88487519#content/view/88487519 : デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125]) [] 2019/10/26(土) 08:22:00.87:eCInqrX90 そのページにSecurityManagerに関したことは何もないと思うが? : デフォルトの名無しさん (ブーイモ MM5f-0VxI [49.239.66.178]) [sage] 2019/10/26(土) 10:07:30.29:NCT+ojVgM ハッシュの有無で表示されるページが変わる(5chはurl encode/decodeしてないからjumpページでハッシュが消費される) デスクトップ版のURL ttp://https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=88487519 : デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125]) [] 2019/10/26(土) 11:01:22.96:eCInqrX90 おお、ありがとう。できるみたいだな。 : デフォルトの名無しさん (スップ Sd5a-vNqd [49.97.108.16]) [sage] 2019/10/31(木) 11:55:26.14:uuxNXwwOd 今swingでアプリ作ってるんだけど JButtonで別クラスの処理を呼び出してその進捗をJTextAreaとかに表示させたい場合は引数としてJTextAreaの変数を持たせるのでいいのかな? : デフォルトの名無しさん (スップ Sd5a-vNqd [49.97.108.16]) [sage] 2019/10/31(木) 11:56:19.01:uuxNXwwOd すまん書き忘れた 一応動いてはいるけどこれが正しい手法なのか知りたい : デフォルトの名無しさん (ブーイモ MMef-rMnR [210.138.176.17]) [sage] 2019/10/31(木) 14:42:41.53:ovdADILrM Observerパターン使うかコールバック関数渡すかして進捗報告のタイミングでコールバックさせる : デフォルトの名無しさん (スップ Sdfa-vNqd [1.75.3.131]) [sage] 2019/11/02(土) 14:26:37.67:9S5zkDTmd なるほどありがとう あとずっと気になってたんだけど 時々コンストラクタじゃなくてそのクラスのstaticメソッド使ってインスタンスを初期化するようなクラスがあるけど アレってどんな意味があるの? : デフォルトの名無しさん (ブーイモ MMef-rMnR [210.149.255.69]) [sage] 2019/11/02(土) 22:26:37.87:UpyqzFZSM Effective JavaのItem1なので 「"static factory method" "effective java"」で検索して解説を読むといいと思う : デフォルトの名無しさん (ワッチョイ 575f-HgEL [106.72.163.96 [上級国民]]) [] 2019/11/02(土) 22:43:41.51:qsr44g5y0 必ずコンストラクタで初期化するものなら、コンストラクタそのものがいらないことに気づかないのか? : デフォルトの名無しさん (ワッチョイ 575f-HgEL [106.72.163.96 [上級国民]]) [] 2019/11/02(土) 22:51:03.49:qsr44g5y0 間違った。コンストラクタで同じ初期化をされると都合が悪い場合だった。 コンストラクタは常に同じ初期状態を作るために存在しているので、初期状態を複数パターン持ちたい場合は、コンストラクタが邪魔になる。 : デフォルトの名無しさん (ワッチョイ d642-vNqd [175.41.64.207]) [sage] 2019/11/03(日) 06:15:26.16:Z7LNI9940 ありがとう ちょっと内容紹介してるブログ読んだけどこの本わかりやすくていいな : デフォルトの名無しさん (アウアウウー Sab7-a5T4 [106.132.122.50]) [] 2019/11/03(日) 17:36:34.34:+YBSyx/ia 実装を隠したい時とかかな。 interface または abstrct クラスを公開して実装したクラスを非公開にして直接 new させない。 しかしどこかで new する必要があるので stasic メソッド作ってそこでやる。 : デフォルトの名無しさん (ワッチョイ d642-vNqd [175.41.64.207]) [sage] 2019/11/03(日) 20:17:58.07:Z7LNI9940 隠したいってのは知的財産的な意味で? 完全な趣味でやってるからその辺の事情となるとよくわかんないや : デフォルトの名無しさん (ワッチョイ 3aad-LfSi [27.139.18.89]) [] 2019/11/03(日) 21:18:47.91:ax9Okew10 例えばLocaleによって実装クラスを変えたい時とか。 : デフォルトの名無しさん (ワッチョイ 575f-HgEL [106.72.163.96 [上級国民]]) [] 2019/11/03(日) 22:13:21.53:z6AvjLYh0 コンストラクタは初期化処理部分を明示するために存在しているブロックにすぎない。 : デフォルトの名無しさん (ワッチョイ 238f-6BDJ [118.7.1.66]) [] 2019/11/06(水) 21:18:18.94:YMOIABpf0 以下の場合、オブジェクト指向で考えると、 何をクラスにし、何をメソッドにするのが良いのかを教えてください。 ・商品の状態がテキストファイルに記録されていて、それをExcelへ一覧出力します。 テキストには、商品ID、名前、製造日がスペース区切りで記録されていて、 それら情報を毎日、Excelのセルへ入力する部分をjavaで実装します。 ・本を読むと、Id、Name等を宣言して、Item.name等で名前を管理すべきかとも思います。 (以下は文法上誤りですが雰囲気として書きます) class Item{ public void Id() public void Name() public void date() } 今は商品ID、名前、製造日を2次元配列に読み込ませて処理しています。 : デフォルトの名無しさん (ワッチョイ d601-9lYZ [111.90.14.57]) [] 2019/11/06(水) 22:09:08.17:i1VxEute0 俺ならこうかな ・商品クラス ・テキストファイルから商品を読み込むクラス ・エクセルに商品を出力するクラス : デフォルトの名無しさん (ワッチョイ 238f-x9nz [118.7.1.66]) [] 2019/11/06(水) 22:19:59.95:YMOIABpf0 クラスは対象物テキストやエクセル()、 メソッドは動作(読み込みや書き出し)と言う風に作るという事ですか? : デフォルトの名無しさん (ワッチョイ 238f-x9nz [118.7.1.66]) [] 2019/11/06(水) 22:20:58.67:YMOIABpf0 書き間違えました。 ---- クラスは対象物(テキストやエクセル)、 メソッドは動作(読み込みや書き出し)と言う風に作るという事ですか? : デフォルトの名無しさん (ワッチョイ d601-9lYZ [111.90.14.57]) [] 2019/11/06(水) 22:54:04.65:i1VxEute0 読み込みと書き込みは分けた方がテストしやすいだろうなってだけ 概念的なことは何も考えてない : デフォルトの名無しさん (アウアウクー MMcb-qG8t [36.11.224.107]) [] 2019/11/07(木) 15:31:41.64:Htm+xBrDM その分け方はオブジェクト指向のクラス分けではなくモジュール分けにすぎないが否定はしない。 : デフォルトの名無しさん (アウウィフ FF5b-WuPA [106.171.65.44]) [] 2019/11/07(木) 21:00:09.74:OX40Pd+4F >557です 単に手続きを分けるだけなら考えついたのですが、 ちょっとオブジェクト指向ではないと思っています。 商品というオブジェクトをどう管理するのかが 肝だと思うんですが、言い分け方ないでしょうか。 : デフォルトの名無しさん (ブーイモ MMbf-eyeu [49.239.67.125]) [sage] 2019/11/07(木) 21:58:56.04:UdwTKafpM スペース区切りのデータをCSVにしてExcelで管理してる台帳に追記するだけだと理解したんだけど、もしそうなら商品をオブジェクトとして扱う価値はあんまりないよ それ以上の処理かあるのかな? 例えば名前、製造日についてビジネスルールに沿ったバリデーションがあったり、DBに保存や専用のUIに表示したり、そういう値の中身を意識する必要のある処理 : デフォルトの名無しさん (ワッチョイ 178f-WuPA [118.7.1.66]) [] 2019/11/07(木) 22:48:14.42:k1TXPQAL0 目的は自分がオブジェクト指向を理解する為です。 簡単な例で理解したいと思いまして。 プログラムをこれ以上修正する要件はありません。 : デフォルトの名無しさん (ワッチョイ f79f-9HXo [122.133.97.37]) [sage] 2019/11/08(金) 07:26:56.73:98dXBVGk0 なるほど勉強用ね 商品と商品たちはそれぞれクラスにする ItemクラスとItemListクラス ただし一般的な用件ならjava.util.Listで十分なので商品たちはList<Item>とすればいい JavaでOOPらしくしたいなら配列はまず使わない ほかに思考のヒントとしては ItemクラスとProductクラスを分けてhas-a関係にするとか 商品IDクラスや製造日クラスの導入を検討するなど 製造日クラスも実用上はjava.time.LocalDateあたりで十分 日付の類いをStringのまま取り回すのはやはりOOPらしくはない : デフォルトの名無しさん (ブーイモ MMbf-eyeu [49.239.67.37]) [sage] 2019/11/08(金) 12:59:41.86:DC2XQdtiM オブジェクト指向でもそうじゃなくても、モデルが適切かどうかは、解こうとしてる問題に対しての有用性で判断するもの。 データに「商品」があるからとあってそれをクラスとしてモデリングすべきかどうかは、それが解こうとしてる問題に対して有用がどうかで判断する。 今回のケースではXXXReader、XXXWriter、XXXImporter、XXXConverterみたいなクラスから考えた方が適切。 : デフォルトの名無しさん (ワッチョイ 178f-WuPA [118.7.1.66]) [] 2019/11/08(金) 16:27:50.10:yOhc3kk50 その場合、商品データはどうやって管理しますか? : デフォルトの名無しさん (ブーイモ MMbf-eyeu [49.239.71.222]) [sage] 2019/11/09(土) 10:53:42.88:3R32mnhiM テキストファイル Javaで書かなくてもをExcelのインポート機能でも似たようなこと出来るよね? Excelには商品クラス定義されてないにも関わらず。 テキストデータの各行を特定の型として捉えないと困るような処理(製造日を特定のルールで加工するとか商品マスタに登録されてないIDはエラーにするとか)がなければ、不必要に入力データの中身に依存せず、汎用的なスペース区切りのテキスト処理として考える。 各行の値に依存した処理が必要なら商品をクラスや構造体にして型として扱うがその場合でもXXXConverterのconvertメソッドのようなプログラムの大枠は変わらないからそっちから先に考えた方がいい。 : デフォルトの名無しさん (ワッチョイ 178f-WuPA [118.7.1.66]) [] 2019/11/09(土) 17:55:14.88:rZdHNCVm0 あくまでも勉強用に小さなデータでクラス概念を理解しようとしているので、 Excelのデータ区切りは考えていません。 聞きたかったのは、テキストデータを読み込むとして どのようにデータを保持するのかです。 単に配列に入れて管理ならもう作ってあります。 >566さんのやり方で1度作ってみます。 : デフォルトの名無しさん (ブーイモ MMfb-eyeu [210.149.250.76]) [sage] 2019/11/09(土) 20:58:38.34:DEKDELV2M Readerで読みつつWriterで書き出せばいいから、配列とかにデータを保持する必要ないよ 商品クラスから考えて作りたいならそれでやってみて試行錯誤から学べばいい : デフォルトの名無しさん (アウアウウー Sa5b-WuPA [106.132.131.88]) [] 2019/11/10(日) 10:36:56.34:wEe+Asgia すみません。 大事なことを言い忘れてました。 商品のデータは1列に書かれていません。 商品名は必ず先頭にあるのですが、その情報は複数行にわかれて書かれています。 例えば、 商品A 重さ 型版 商品A 注文日 など。 しかも商品によって書き方はバラバラで、 唯一の規則性は商品名から必ず始まる事とスペース区切なことです。 商品の情報が何行に記述されるか、 一行に何個情報がスペース区切りされているかは、ランダムとしか言えません。 (本当は規則があるんでしょうけど・・・) ということで、商品クラスを作って実装しました。 これは配列より暗黙的な部分が少なくていい感じです。 ありがとうございました。 非常に勉強になりました。 : デフォルトの名無しさん (ワッチョイ 9f94-E5K3 [123.48.64.125]) [] 2019/11/10(日) 21:13:49.63:guOKKfCD0 moduleでパッケージAを非公開、パッケージBを公開、 パッケージBのクラスのAPIがパッケージAのクラスを返す、 とした場合に外部のプログラムはそのAPIを利用できますか? : デフォルトの名無しさん (ワッチョイ 9f61-vPHs [61.245.59.179]) [] 2019/11/12(火) 09:32:48.20:jtOqdKRJ0 そんなことできたら、moduleの意味が全くなくなる。 典型的なWrapperパターンの出番(ProxyとかAdapterをBに用意する) : デフォルトの名無しさん (オッペケ Srcb-9HXo [126.34.21.179]) [sage] 2019/11/12(火) 10:37:47.46:QKLh6vCVr インターフェイスを公開すればいいんじゃないの : デフォルトの名無しさん (ワッチョイ 9f94-QzFo [123.48.64.125]) [] 2019/11/12(火) 21:55:14.70:JzWcTGKB0 Wrapperクラスを使えば直接対象クラスにアクセスしないからmoduleの制約に引っかからないという事? usesとかprovidesで指定されたインターフェースが非公開のクラスを返す場合、 あるいは公開されたクラスを返すとしても返値のクラスのgetterで非公開のクラスが返される場合、 アクセスできるんだろうか?できないんだろうけど。 インターフェースXが公開、実装Yが非公開の場合、YのオブジェクトをXとして使用する事はできるんだろうか? というのは、良く連鎖的にクラスの依存関係が生じていくわけで、 moduleで外部プログラムとの連携をやろうとしたらほとんどの場合 大量のパッケージを公開設定しなきゃいけないんじゃないか?と。 moduleをうまく使うテクニックみたいなのはあるんだろうか。 例えば公開用インターフェースをまとめたクラスを作ってそれだけを公開するとか? でも、そのインターフェースから非公開のクラスに辿れてしまったら機能しないんだよな。 : デフォルトの名無しさん (ワッチョイ 9702-QzFo [124.208.53.194]) [] 2019/11/13(水) 19:53:24.72:UXUUsSoF0 JAVAの求人が多いと知り、 就職の為にJAVAを学ぼうと思うんですが、 本屋さんのプログラミング書籍の棚のJAVA本が充実しすぎて困ったぁ! 僕はどれを買えばいいんですかね? : ◆QZaw55cn4c (ワッチョイ 9f47-eDwC [131.129.114.156 [上級国民]]) [sage] 2019/11/13(水) 20:06:36.56:ESFhNQze0 どれを買っても一緒だから独断と偏見で一冊買って最後まで読め コンピューターサイエンスの本に関して一般的に言えることだが一冊でオールマイティな本なんて存在しないし存在し得ない 何冊か買っては読み買っては読みしていくうちに自ずから獲得するべき知識がわかってくるものだ ひたすら精進あるのみ : デフォルトの名無しさん (ワッチョイ 9f2c-E8Ce [219.162.234.204]) [sage] 2019/11/13(水) 22:06:42.16:PTDdhEKV0 Java と言えば、オブジェクト指向を学ぶ、歴史を変えた本! スッキリわかる Java入門 第2版、2014 この本の大ヒットにより、革命が起きて、 あちこちへ、スッキリシリーズが浸透していった! たのしいRuby 第6版、2019/3/19 未だに、プログラミング・オブジェクト指向を学ぶには、この2冊がベスト! ただし、Java の就職は、建設業と同じで、5大SIer を頂点とした土方系! 1社経由するごとに、3割抜かれる! 貴族・奴隷、Waterfall 型、上流・下流の階級制度! 顧客は上流としか、契約を結ばない 一方、Ruby on Rails は、モダンな自社サービスWeb 系だから、抜かれない! : デフォルトの名無しさん (ワッチョイ ff12-SGgH [121.103.136.72]) [sage] 2019/11/13(水) 22:50:15.53:R4jPTy5Y0 ム板にいるとrubyがどんどん嫌いになる : デフォルトの名無しさん (ワッチョイ 9702-Kn9a [124.208.53.194]) [] 2019/11/13(水) 23:48:10.19:UXUUsSoF0 了解です! 今はあまり深く考えないでおきます : デフォルトの名無しさん (ワッチョイ e361-Ks/Y [123.230.68.41]) [] 2019/11/14(木) 10:57:04.52:gpjLruj80 exportされたクラスで、 public void X openMethod() {return new Y();} public void Y openMethod() {return new Y();} とした場合、 上は全くOK。 下は、client側で”import”しない限りはOK(コンパイルは通ってしまう)。 var変数への代入も可能。 けれどメンバーには一切アクセスできない(こっちはコンパイルエラー)。 export側でコンパイルエラーにならない理由はわからん。 : デフォルトの名無しさん (ワッチョイ e394-zGDE [123.48.64.125]) [] 2019/11/14(木) 11:14:29.68:axmqwQma0 レスありがとう じゃあリフレクションでYにアクセスする事はできないけどXとしてYを使用する事はできると。 JPMSはリフレクションでも非公開インターフェースにアクセスできないようにするのが売りだろうから。 リフレクションで任意のクラスにアクセスできないとなると デバッガみたいなものが作りづらくなりそうだ。 JPMSはやはり納得しづらい感じがある : デフォルトの名無しさん (ワッチョイ e394-zGDE [123.48.64.125]) [] 2019/11/14(木) 11:16:42.35:axmqwQma0 後者はコンパイル時に問題が見つかりにくくなっているという問題もあるのか。 恐らく後者のコードで実行時にYにアクセスしたら例外が出るはず。 そうじゃなきゃJPMSの意味が無い 直接非公開クラスにアクセスしたらアウト、じゃなくて 非公開クラスである事を知りつつアクセスしたらアウト、という事になるのか。 : デフォルトの名無しさん (ワッチョイ e361-Ks/Y [123.230.68.41]) [] 2019/11/14(木) 16:31:20.81:gpjLruj80 なんで? 使う側は安全(コンパイルエラー)でしょ。 公開メソッド(たとえばtoString)は普通にアクセスできる。 純粋にimport(Y)できないから、型明示の代入やCastもできない。 あと、ディープリフレクションはexportとは別設定。 : デフォルトの名無しさん (ワッチョイ 935f-o5/b [106.72.150.32]) [sage] 2019/11/21(木) 13:42:25.06:oMz9B2oV0 メゾットの連続番号を簡略化するのは無理でしょうか? aho=new baka1(); ↑ このbakaのナンバーを変更したいのです for(int i=1;i<5;i++)aho[i]=new baka+i+(); ↑ みたいにするとエラーが出ます なんかいい方法はないでしょうか? : デフォルトの名無しさん (ワッチョイ dfda-BEIG [220.144.30.46]) [sage] 2019/11/21(木) 15:21:53.56:/5GdDHEF0 「メゾット」じゃなくて「メソッド(method)」、 あと new Hoge(); はメソッドではなくコンストラクタの呼出し。 クラスを動的にインスタンス化したいならリフレクション使う。大雑把に書くと Class.forName(...) -> clazz.getConstructor(...) -> constructor.newInstance(...) する。後は自分で調べて。 : デフォルトの名無しさん (ワッチョイ dfda-BEIG [220.144.30.46]) [sage] 2019/11/21(木) 15:23:24.39:/5GdDHEF0 クラスとかメソッドに連番を振るようなのは、 それぞれのクラスがどういった機能を持つかとか覚えきれなくなるだろうし ろくな事にならないからヤメとけ、と思いますけどね。 ※感想には個人差があります。 : デフォルトの名無しさん (スップ Sd72-8uw/ [49.97.103.222 [上級国民]]) [sage] 2019/11/21(木) 15:35:48.75:/tpvzaBhd 何に使うかさっぱりわからんからエスパーだけど そういう時は baka(int i)ってコンストラクタを作ってその中で条件分岐させたほうが良い : デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.134.37]) [] 2019/11/21(木) 17:23:38.70:MbgK9qpEa ありません。 それと、ゾじゃなくてソだ。 : デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.134.37]) [] 2019/11/21(木) 17:26:18.60:MbgK9qpEa あそうか。リフレクションでできるか。 しかしうクラス名変わったらおしまいな方法なのでお勧めする気が起きないな。 : デフォルトの名無しさん (ワッチョイ 03f0-OOhs [58.98.134.167]) [sage] 2019/11/21(木) 18:33:39.54:Wapa4TJu0 Javaで、string型のデータをhtml使わずhttpconnection使ってサーバーにつないで、postで送るんですが、springbootで作られたサーバーではどう書けば受け取れますか? どうやってもうまくいかなくて…説明も下手ですみません。 @Requestparamで受け取れるかと思ったんですが、変数どうやって指定したらいいかとか解決できない状況です : デフォルトの名無しさん (ワッチョイ 522c-4eZD [219.162.234.204]) [sage] 2019/11/21(木) 18:59:03.74:t93OqxgW0 Ruby on Rails なら、ルーティングを設定する Post メソッドで、/login というパスで、Sessions コントローラーのlogin アクション。 post "login" => "sessions#login" Rails では、下のどちらの書き方でも、params[ :name ] で取り出せる ttp://〜/コントローラー/アクション/sato ttp://〜/コントローラー/アクション?name=sato 「spring boot post」で検索して! : デフォルトの名無しさん (ワッチョイ 935f-o5/b [106.72.150.32]) [sage] 2019/11/21(木) 21:23:20.19:oMz9B2oV0 コストラクトの連番の簡略化できました。ありがとうございます。 for(int i=1;i<5;i++){ Class<?> c=Class.forName("baka"+i); aho[i]=c.newInstance(); } ↑ これでできました! : デフォルトの名無しさん (ワッチョイ 522c-4eZD [219.162.234.204]) [sage] 2019/11/21(木) 22:49:32.49:t93OqxgW0 ハァ? クラス名の連番?w メタプログラミングじゃあるまいし、Ruby から、学び直せ!w Ruby にも、メタプログラミング用で、動的にメソッド名を付ける、define_method は有る。 これは、規則性のあるメソッド名を、複数つける場合に使う こういう手法は、たいてい「メタプログラミングRuby 第2版」みたいな 「メタプログラミング何々」というような本に書いてある 「メタプログラミング Java」という本は無さそうだけど、リフレクションだろ : デフォルトの名無しさん (ワッチョイ 52ad-c8oy [27.139.18.89]) [] 2019/11/22(金) 00:35:57.65:nCUGDEyM0 でもそれ出来れば設計考え直した方が良いと思うよ。自分では変更不可の領域に連番クラスがあるというのなら仕方ないけど。 : デフォルトの名無しさん (ワッチョイ cfda-BEIG [118.19.223.10]) [sage] 2019/11/22(金) 07:50:28.91:kieD0Z1+0 修正すべきコードの例w : デフォルトの名無しさん (ワッチョイ cf9f-G4l2 [118.109.43.71]) [sage] 2019/11/22(金) 08:28:14.11:GTCFu0T70 aho配列に入れるBakaクラスなら連番でもいいのだ 一人一人のBakaに代入互換性はなく総称しても使い道がない ただaho配列に並ぶだけ これでいいのだ : デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.123.141]) [] 2019/11/22(金) 10:07:48.59:G2a56k/Ua 全てのBakaに共通するインターフェースがない限りObjectクラスとしてしか扱えないのであまり価値がないのではないか? : デフォルトの名無しさん (ワッチョイ 522c-4eZD [219.162.234.204]) [sage] 2019/11/22(金) 18:50:54.91: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は、一生関係ない人がほとんど! : デフォルトの名無しさん (ワッチョイ 9612-b/sn [121.103.136.72]) [sage] 2019/11/22(金) 19:15:41.34:bHONFyXJ0 rubyは聞いていません。javaで回答してもらえませんか? : デフォルトの名無しさん (ドコグロ MM2a-5f43 [119.243.52.153]) [sage] 2019/11/22(金) 19:35:37.83:627roQa/M 低年収言語はいらないです ttp://https://tech.nikkeibp.co.jp/atcl/nxt/column/18/01068/111100004/ : デフォルトの名無しさん (ブーイモ MMbb-r1hd [210.148.125.208]) [age] 2019/11/22(金) 20:56:32.49:Ojo/8f50M RubyはJavaで作られてるから実質Java : デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.133.94]) [] 2019/11/22(金) 21:49:44.03:l6/+AaOma あれ?rubyってJavaで作られてたの?じゃあJVM言語の一種? : デフォルトの名無しさん (オッペケ Sr27-4NWm [126.208.171.135]) [sage] 2019/11/22(金) 22:37:07.24:GLN50yFfr JRubyはそうだろうけど : デフォルトの名無しさん (ワッチョイ 935f-3IAb [106.72.150.32]) [sage] 2019/11/22(金) 23:17:45.16:NHoyDi/b0 何で クラス連番にしたらいけなひの? 便利だよ ほんと : デフォルトの名無しさん (ワッチョイ 96da-BEIG [121.114.135.93]) [sage] 2019/11/23(土) 07:18:44.34:32h5sYE/0 おまルールでいいじゃないか : デフォルトの名無しさん (ワッチョイ 935f-3IAb [106.72.150.32]) [] 2019/11/23(土) 08:45:31.09:fraeGssq0 調べたら Class.forName("クラス名"); ってあんまり推奨されてないみたいなんだけど 暗号化の関係かな? よおわからん : デフォルトの名無しさん (ワッチョイ 52ad-c8oy [27.139.18.89]) [] 2019/11/23(土) 17:13:27.52:JT6reT4x0 いけなくないけど不便だよ。君が便利と感じるのは経験が浅くてまだ困難に直面した事がないからだと思う。ま、頑張れ。 : デフォルトの名無しさん (アウアウエー Saea-/L9V [111.239.55.121]) [sage] 2019/11/23(土) 18:42:11.00:b2KhkZe6a 数が多くなると管理できなくなるんだよ 18と19の間に18.5を入れたくなったり さらに18.3と18.4の間に18.35を入れたくなったりすると 完全に訳が分からなくなる : デフォルトの名無しさん (ワッチョイ 9e01-k+6Q [111.90.14.57]) [] 2019/11/23(土) 20:40:36.12:0wKJQE8U0 数ヶ月したらどの番号が何をやってるかなんて忘れてしまうから クラス名を番号にしてると修正が必要になったときに全部開いて確認する羽目になる 設計書に番号と処理の対応表を書いておけばよいけれども 設計書を開かないとわからないし設計書と実装を見比べて探し当てるよりは クラスにはだいたいの概要がつかめるような名前をつけたがよいよ どうせ作っておしまいだからと思ってたら完全に忘却したあとに 修正が必要になるなんてことザラにあるからわかりやすい名前をつけて 整理しとかないと泣きながら修正することになる みんなが一度は通る道だろうけど : デフォルトの名無しさん (ワッチョイ 5201-c86F [219.162.68.192]) [sage] 2019/11/24(日) 05:27:04.83:QRZKKX3s0 他人と違うことやる俺カッケー でもこういうやつの中から天才現れるんだよな。 まあ、頑張れ。 : デフォルトの名無しさん (ワッチョイ cf8f-Sa3v [118.7.1.66]) [] 2019/11/24(日) 15:36:00.02:Gqvqz24c0 連番のメソッドで何をしてるのか知りたい。 : デフォルトの名無しさん (ワッチョイ cf8f-Sa3v [118.7.1.66]) [] 2019/11/24(日) 15:36:45.26:Gqvqz24c0 あ、クラスか。 クラスを連番にする意味はないと思うが、何をする処理ですかね? : デフォルトの名無しさん (ワッチョイ 27e9-QS5Z [222.15.235.177]) [sage] 2019/11/24(日) 18:10:38.59:Cw5E2RGB0 一つ一つ名前考える手間が省ける。swingのボタンとかラベルとかテキストフィールドとか。 : デフォルトの名無しさん (スップ Sd72-8uw/ [49.97.103.40 [上級国民]]) [sage] 2019/11/24(日) 18:38:58.16:aaRbnr5kd ボタン? それなら尚更ちゃんと名前つけてあげないとわけわかんない事になるのでは…… : デフォルトの名無しさん (ワッチョイ 27e9-QS5Z [222.15.235.177]) [sage] 2019/11/24(日) 19:08:52.08:Cw5E2RGB0 まあ程度問題やね。 コンポーネントが20個とか30個になると、全部一つ一つnewしてアクションリスナーに登録して、JPanelにaddするのがしんどくなる。 for文でまとめてやりたいという誘惑に駆られるから。 : デフォルトの名無しさん (ワッチョイ 5201-c86F [219.162.68.192]) [sage] 2019/11/24(日) 19:34:22.05:QRZKKX3s0 コンポーネントなら普通にやるじゃん。 チェックボックス10個並べるときなんかは配列にしてfor文で呼ぶし。 : デフォルトの名無しさん (ドコグロ MM93-5f43 [122.130.226.194]) [sage] 2019/11/24(日) 19:46:18.40:7cfX+7dDM 今時JavaでGUIアプリを作ること自体が全くもって普通ではないから無意味な例だな : デフォルトの名無しさん (ワッチョイ 5201-hZ32 [219.204.123.70]) [sage] 2019/11/24(日) 23:13:55.87:E4b/CXSq0 インスタンスならわかるけどクラスだしなぁ : デフォルトの名無しさん (アウアウウー Saa3-Pqlv [106.132.130.182]) [] 2019/11/25(月) 10:37:08.19:veETdbiQa IDEでボタン配置とかやってるならクラス名は連番だろうが何だろうがあまり気にならんかもな。どのボタンがどのクラスかなんてのはIDEでわかるんだろうし。 : デフォルトの名無しさん (ワッチョイ 5261-0DuE [61.245.58.252]) [] 2019/11/25(月) 10:40:38.66:8LK1eAYw0 いい加減、クラス連番とかいうのかまうなw : デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173]) [] 2019/11/25(月) 11:16:38.67:9J43lBdJa Java的には連番はご法度だよな メソッド名も主語=オブジェクトに関連する動詞じゃなきゃだめ しかも英語で略語も禁止 SunのJavaの教科書はそう書いてる だからIDE使う 連番の入れ替えとか歯抜け追加起きたとき プロジェクト炎上するなこいつのは 1 2 5 4 9 31 6 とかになる : デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173]) [] 2019/11/25(月) 11:32:46.60: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(); } うは、俺天才 : デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173]) [] 2019/11/25(月) 11:41:30.91:9J43lBdJa UMLからお勉強だな ttp://http://objectclub.jp/technicaldoc/uml/ こんなアホな設計者にカネばらまいて いざとなったらトンズラきめて 末端の派遣社員が鬱病になって 2chで粘着されて会社が潰れるのが目に浮かぶわww : デフォルトの名無しさん (ブーイモ MM72-OIAb [49.239.66.188]) [sage] 2019/11/25(月) 12:54:42.34:XBh0S+UuM 的外れなレスを連投する君も同レベルのアホだよ : デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173]) [] 2019/11/25(月) 12:59:09.06:9J43lBdJa そうだな、Hageは不適切だった Enkeidatsumoshowがいいな : デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173]) [] 2019/11/25(月) 13:02:30.16:9J43lBdJa ただしくは以下を見ろ 絶対に見ろ、命令だ Java言語の命名指針 - Qiita ttp://https://qiita.com/rkonno/items/1b30daf83854fecbb814 : デフォルトの名無しさん (アウアウカー Sacf-U0mO [182.251.30.173]) [] 2019/11/25(月) 13:07:38.83:9J43lBdJa うえのURLはハゲだった まだふさふさしてるのは ttp://https://future-architect.github.io/coding-standards/documents/forJava/Java コーディング規約.html#フォーマット と ttp://https://www.google.co.jp/amp/s/nelog.jp/programming-words%3famp=1 だな : デフォルトの名無しさん (ブーイモ MMce-r1hd [163.49.202.177]) [age] 2019/11/25(月) 14:27:28.62:/ltgl4TyM すごくつまらないです : デフォルトの名無しさん (スップ Sd92-8uw/ [1.72.1.157 [上級国民]]) [sage] 2019/11/25(月) 16:01:07.05:sIY9dxa6d 頭の中で勝手にエンジニアと決めつけてキレてるやつ怖いわ どう見ても素人だろこんなん というかどんな現場だろうがこのレベルの奴が自分で設計なんてさせられるわけないわ : デフォルトの名無しさん (ワッチョイ 9e01-r1hd [111.90.14.57]) [age] 2019/11/26(火) 01:08:20.80:bgFIZV9Y0 現場にもいろいろあるんやで 失敗を積み重ねて人は成長するんやで : デフォルトの名無しさん (ワッチョイ cf9f-G4l2 [118.109.43.71]) [sage] 2019/11/26(火) 09:44:25.60:i6eVGflj0 画面部品を一つ一つ異なるクラスにする意味あるの? インスタンスが連番なのじゃなくて? 都市伝説っぽいが、会社規則でクラスをコード+連番にしないといけないという愚痴ならどこかで読んだことがある : デフォルトの名無しさん (ワッチョイ 7f1f-o5P1 [133.205.248.154]) [] 2019/11/30(土) 17:54:07.54:FnAJNe620 どうも、都市伝説です 謎略称+連番はロクにまともなコードも書けない人間が略称→機能を暗記して周りにマウント取るためのテクニックとして確立されてる : デフォルトの名無しさん (ワッチョイ df5f-YC6P [106.72.150.32]) [sage] 2019/11/30(土) 20:05:23.43:18m6LbH00 まぢれすすると page1.java page2.java........と作っていて 選択したページに移動したいだけなんすよね ちなみに趣味れす : デフォルトの名無しさん (ワッチョイ ff42-06Ka [175.41.64.207 [上級国民]]) [sage] 2019/11/30(土) 22:09:24.54:Zu/DOLqT0 それ同じクラスを使いまわして引数で分岐させる方がラクだよ : デフォルトの名無しさん (ワッチョイ df63-R3ru [114.149.175.182]) [sage] 2019/11/30(土) 22:32:31.73:HT5pBiqn0 普通に名前つけさせようとすると 英語もろくすっぽできないプログラマーがわけわからん名前つけるからな! いかなる創造的仕事もSE様のしごとだ プログラマーは工員のごとく黙って番号を付与された部品を組み立てておればよい : デフォルトの名無しさん (アウアウウー Sa23-8Irb [106.132.138.225]) [] 2019/12/01(日) 21:35:10.17:54WkPiOYa 日本語でクラス名付けちゃえよ。その他変数名とかも。ソースを外国に輸出しないならそれでも良かろう。 Javaなんだし漢字が識別子に普通に使えるよ。入力の切り替えが面倒ってのはあるかも知れないが可読性は上がる。 : デフォルトの名無しさん (ドコグロ MMd3-aoSH [118.109.189.142]) [sage] 2019/12/01(日) 21:37:17.95:UwCngPfbM 日本人しか触らないのに英語起票に拘る人おるよね : デフォルトの名無しさん (ワッチョイ 5fda-o7DB [220.144.30.46]) [sage] 2019/12/01(日) 21:43:00.87:W3IRfpAO0 それでMacのNFDもどきでハマるんですね、分かります : デフォルトの名無しさん (ワッチョイ 5f8f-ywWo [118.7.1.66]) [] 2019/12/01(日) 22:13:32.48:dM3xe/zP0 ソースはアルファベット、コメントは日本語が一番見やすいが・・・。 : デフォルトの名無しさん (アウアウエー Sa7f-3RYV [111.239.52.182]) [sage] 2019/12/02(月) 00:42:17.46:tlpXu3t6a 間違った英語の単語を変数名に使われるのも迷惑 加減乗除余りの余りを surplus としたのがある surplus は割り算の余りという意味ではなくて 損益の余りという意味でしか使われないのだが : デフォルトの名無しさん (ワッチョイ 5f01-YC6P [126.159.206.200]) [] 2019/12/02(月) 06:39:31.76:/N45p/D+0 日本語は文字コードの問題があって、コメントは英語が基本と言われていますね。 : デフォルトの名無しさん (ワッチョイ 7fad-/0K4 [27.139.77.105]) [] 2019/12/02(月) 08:35:14.13:6Q7teWoI0 どんな問題? : デフォルトの名無しさん (ブーイモ MM83-aYeG [210.149.250.254]) [sage] 2019/12/02(月) 09:36:39.22:CbKC46HWM 643に文字コードとは何なのかから説明しないといけない問題 : デフォルトの名無しさん (アウアウカー Sad3-yfoe [182.251.34.142]) [] 2019/12/02(月) 10:19:01.96:4IAAki39a 素人がエンジニアを名乗るの図 どこでさ仕事したらそんな歪んだ知識になるんだ : デフォルトの名無しさん (ワッチョイ ffda-o7DB [121.114.133.132]) [sage] 2019/12/02(月) 15:08:59.12:LuC5M5C30 爺さんだろ : デフォルトの名無しさん (アウアウウー Sa23-8Irb [106.132.123.180]) [] 2019/12/02(月) 18:16:14.51:AXP0tN/na 正規化の問題があるといえばあるか。 見た目全く同じファイル名とかUnicodeだと作れちゃうよね。濁点とか半濁点が曲者。 その辺を考慮してくれるテキストエディターでないといつかその内ハマる。 多分WindowsとMac混在で編集するとその時は早めに来る。 : デフォルトの名無しさん (オッペケ Sr33-r0/Z [126.179.227.106]) [sage] 2019/12/02(月) 20:11:31.18:kVvXK1rur それては濁点はコーティンク規約て禁止しよう ◯と○や長音も紛らわしいから禁止た : デフォルトの名無しさん (アウアウウー Sa23-8Irb [106.132.123.180]) [] 2019/12/02(月) 20:58:00.86:AXP0tN/na 参考にしてください 長音記号禁止 ttps://egg.5ch.net/test/read.cgi/owarai/1567165871/ : デフォルトの名無しさん (ワッチョイ d501-epCg [60.145.42.28]) [] 2019/12/05(木) 13:36:07.20:wIKti5Mb0 SpringBootの勉強中なんだけど、誰かわからないから教えてもらえませんか? Aという名前のプロジェクトとBというプロジェクトがそれぞれ存在していて、 AのプロジェクトからBのプロジェクトのある画面を呼び出すことは可能でしょうか? マルチプロジェクト?というので可能でしょうか? : デフォルトの名無しさん (ワッチョイ 36da-WBaP [121.114.135.51]) [sage] 2019/12/05(木) 14:55:38.74:ATWw+6fu0 ここで聞けよ 【DI】Java Spring Frameworkを語るスレ 5.0 ttps://mevius.5ch.net/test/read.cgi/tech/1322414231/ : デフォルトの名無しさん (ワッチョイ d161-QX1D [218.33.196.177]) [] 2019/12/07(土) 11:51:34.98:bFOMZERE0 そもそも「画面を呼び出す」って訊き方が? ・httpとかネットワーク的な話なのか ・画面がコンポーネントになっていて、それを含むモジュールをimportして使いたいという意味なのか どっちにとっても、Spring以前の話だな。 : デフォルトの名無しさん (ブーイモ MMe1-F/t0 [210.149.255.192]) [sage] 2019/12/07(土) 14:16:02.35:Idm24E4/M @ComponentScanしてcontroller経由かViewResolverをchainする : デフォルトの名無しさん (ワッチョイ dde6-Dd89 [14.3.11.220]) [] 2019/12/07(土) 21:23:14.66:YAam3qww0 Queue<Integer>の合計を取る場合、拡張forを使用していますが、 stream().sum()の様な方法で求めることはできますか? : デフォルトの名無しさん (オッペケ Srb5-pLtv [126.179.184.57]) [sage] 2019/12/07(土) 21:36:50.23:Z+T9+hbUr q.stream().sum()でいいんじゃない? : デフォルトの名無しさん (ワッチョイ 6301-fBuc [60.108.151.168]) [] 2019/12/13(金) 02:40:57.30:VJl1Rt3v0 メソッドの処理時間を返すメソッドを作りたいと思ってるのですが実装方法がよく分かりません… 関数型プログラミングをつかえとネット上で書いてあったのですが中々理解出来ずにいます… やりたいこと: int runProcessTime(メソッド){ long start = System.currentTimeMillis(); // 引数のメソッドを実行 long end = System.currentTimeMillis(); return (int)end - start } どなたかこのポンコツめに実装方法を教えてください……よろしくお願いします… : デフォルトの名無しさん (ドコグロ MM03-oPxD [118.109.190.240]) [sage] 2019/12/13(金) 09:55:14.47:ftjAwgQIM プロファイラ使え : デフォルトの名無しさん (オッペケ Srbb-s/7w [126.34.41.167]) [sage] 2019/12/13(金) 15:58:33.51: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でもつけて修正 : デフォルトの名無しさん (ブーイモ MM7f-2Hll [210.149.250.70]) [sage] 2019/12/13(金) 16:56:03.95:e2UWLhpQM ジェネリックな高階関数定義するのひたすら面倒だね。戻り値の有無や引数の数が一般化出来ないケースは実質使えない ttp://https://paiza.io/projects/Eh3ihZ2kTIdiBv-2ItS5wg?language=java 本番環境でも使いたければAOP使ってログ出力かな : デフォルトの名無しさん (ワッチョイ 6301-fBuc [60.108.151.168]) [] 2019/12/14(土) 00:13:43.09:9SpegRHr0 ありがとうございます 参考にしてもらって調べてみましたが、プロファイラやAOPを使ったログ出力をすればたしかに解決出来そうです! ただそろそろラムダ式とちゃんと向き合わなきゃ駄目かなと思っているのでのコードを参考に読み解いてこうと思います! のコードにはとりあえずrunnable実装したクラス投げてみたんですがどうも上手くいかなかったです… これもラムダ式が理解出来てれは動作するんでしょうか…? : デフォルトの名無しさん (オッペケ Srbb-s/7w [126.34.41.167]) [sage] 2019/12/14(土) 00:39:58.86:zsegnw83r もしかしてdoSomethingメソッドの戻り値をRunnable型のオブジェクトにしちゃった…? runProcessTime(() -> {System.out.println("呼ばれた");}); でいいんだよ 引数と戻り値のないラムダ式がRunnableとして型推論される : デフォルトの名無しさん (ワッチョイ 6301-uKDx [60.108.151.168]) [sage] 2019/12/14(土) 02:22:22.35:9SpegRHr0 とりあえず動作確認がしたくて試行錯誤した結果こんな感じなら通るのかなぁって思ってました ttp://https://wandbox.org/permlink/hflsLOytE8IIIZkt ご指摘の通りに書いてみたら上手く動作してくれました!ありがとうございます! ttp://https://wandbox.org/permlink/jl8r7LPtWxuNBPkh 型推論…便利だけど仕様理解してないとなんか不思議な感覚ですね : デフォルトの名無しさん (ワッチョイ 9aad-kWkR [27.139.77.105]) [] 2019/12/14(土) 21:02:02.41:SgtXLdNQ0 Kotlin もよろしく : デフォルトの名無しさん (アウアウウー Sa15-M3rQ [106.154.139.194]) [sage] 2019/12/23(月) 20:12:08.00:Tcm1zA7za アプリを開く→(複数のユーザーが)学習時間を入力→サーバーにデータを送信・保存→管理者がcsvで出力 というようなスマホアプリ(ユーザーが複数)を作りたいと思っているのですが 参考になる書籍等ありませんでしょうか。そもそも、実現可能なものでしょうか。 スレ違いでしたらすみません。 : デフォルトの名無しさん (ドコグロ MMa3-5TeV [119.243.55.47]) [] 2019/12/24(火) 09:51:50.98:FDV9SMo9M その辺詳しくて暇な学生でも知り合いにいたら焼肉でも奢って作ってもらえるレベル。 自分でやりたいならサーバーもアプリ開発も入門書から。 : デフォルトの名無しさん (ワッチョイ 132c-1ZZR [219.162.234.204]) [sage] 2019/12/24(火) 12:51:56.91:3XzgnZW70 Ruby なら、考える事もない。標準ライブラリのbenchmark を使うだけw require 'benchmark' Benchmark.bmbm do |bmbm| bmbm.report( "#1" ) { sleep 1 } bmbm.report( "#2" ) { sleep 2 } end 出力 user system total real #1 0.000000 0.000000 0.000000 ( 1.005784) #2 0.000000 0.000000 0.000000 ( 2.000958) : デフォルトの名無しさん (ドコグロ MMa3-On3P [119.241.50.165]) [sage] 2019/12/24(火) 14:04:13.96:4hGbK3LLM ゲロ遅Rubyでベンチマークとかアホかな 巣に帰れ : デフォルトの名無しさん (ワッチョイ c101-XIG2 [126.186.241.113]) [sage] 2019/12/24(火) 18:06:43.25:MO/D1HWx0 C#erですけどこれからjava学ぶ価値はありますか? 煽り抜きで有償化後から敬遠されてるように見えて : デフォルトの名無しさん (ワッチョイ f1da-prDO [118.16.215.6]) [sage] 2019/12/24(火) 20:21:12.52:FXbIETKP0 知らんがなー : デフォルトの名無しさん (ワッチョイ 53f0-edvE [115.65.255.37]) [sage] 2019/12/24(火) 20:32:08.30:jY4syNMl0 ここで聞くより自分の勤め先に聞いた方がいいんじゃね? : デフォルトの名無しさん (アウアウウー Sa15-On3P [106.180.1.135]) [sage] 2019/12/24(火) 21:22:10.62:dq3QkvTpa C#ができるならJavaの現場にいきなり投入されても全然問題ないから、あえて自分で勉強しておく必要はないと思う JavaはC#でいうところのVB的なバカの受け皿がないので、C#に比べるとプログラマの平均レベルはかなり落ちる : デフォルトの名無しさん (アウアウエー Sa23-prDO [111.239.71.7]) [sage] 2019/12/24(火) 22:22:24.92:QaElcG77a google sheet じゃいけないの? : デフォルトの名無しさん (ワッチョイ 13da-prDO [125.204.53.169]) [sage] 2019/12/25(水) 10:31:51.95:0RAirXGC0 イミフ >JavaはC#でいうところのVB的なバカの受け皿がないので、C#に比べるとプログラマの平均レベルはかなり落ちる : デフォルトの名無しさん (アウアウウー Sa15-zFmU [106.132.121.34]) [sage] 2019/12/25(水) 18:36:38.53:T30j/zfya ポインタがない時点で平均以下の プログラマ向けだとは思うが・・・。 : デフォルトの名無しさん (アウアウウー Sa15-M3rQ [106.154.139.33]) [sage] 2019/12/25(水) 18:40:52.69:QLybXwoka それならちょっと頑張ってみようと思います。ありがとうございます。 入力作業が面倒だったら時間を記録をしないのです。googlesheetでもできはしますが 続くような、入力がシンプルな、学生でも馴染みのあるアプリなシステムを作りたいのです。 : デフォルトの名無しさん (ドコグロ MMa3-On3P [119.241.245.113]) [sage] 2019/12/25(水) 18:59:14.49:DT9LgkyTM だったらMicrosoftのPowerAppsとかでいいんじゃね ノンコーディングで入力フォーム付きのDBアプリができるよ : デフォルトの名無しさん (アウアウウー Sa15-M3rQ [106.154.139.33]) [sage] 2019/12/25(水) 19:34:19.72:QLybXwoka >677こんな便利そうなものがあったのですね!・・・ちょっと調べてみます。 : デフォルトの名無しさん (ワッチョイ 1b01-0vNI [111.90.14.57]) [] 2019/12/25(水) 19:45:21.98:cJWtSi8V0 年収が? IQが? 技術力が? 言語にポインタがあったらそれが上がると? : デフォルトの名無しさん (ワッチョイ 1b01-0vNI [111.90.14.57]) [] 2019/12/25(水) 19:50:04.62:cJWtSi8V0 ポインタを極めて生活が豊かになるなら 組み込みエンジニアはもっと幸せなのじゃないだろうか 給料高いって話聞かないし身の回りを見渡してもそういう人いないから ポインタにそんな価値はありません : デフォルトの名無しさん (ワッチョイ 1b01-0vNI [111.90.14.57]) [] 2019/12/25(水) 19:57:01.15:cJWtSi8V0 VB.NETもC#も変わらぬ VBがバカの受け皿ならC#もバカの受け皿だ 使う言語によって賢さが変わるものではない ただしProlog使いだけは侮るな、変態だから : デフォルトの名無しさん (JP 0Hab-zFmU [61.199.190.35]) [] 2019/12/25(水) 21:15:16.60:ALfGM20+H コーディング技術力は上がると思う。 : デフォルトの名無しさん (ワッチョイ 0bda-BXgI [60.46.142.56]) [sage] 2019/12/26(木) 02:59:14.29:FdHruebH0 ポインタの理屈は単純だけど、ポインタのポインタのポインタのポインタのポインタの・・・・・と増えていくと 見落としや勘違いが増えるの実感して、単純なほうがいいと思ってるのでせいぜい4〜5段階までにしてる。 頭が悪いのは否定しない。 : デフォルトの名無しさん (ドコグロ MM7f-Nxir [119.243.53.251]) [sage] 2019/12/26(木) 08:19:37.09:Fsuom43iM 4~5ってスゲーな 使っても3段までだわ : デフォルトの名無しさん (アウアウウー Sa57-hoej [106.132.126.245]) [sage] 2019/12/26(木) 08:38:03.99:n7PujD85a ポインタは、全体把握とどの情報を実領域に 持たせるかという構想が必要だから、 バグの温床になって嫌われた。 逆に言うと、全体把握と構想力がある人(コーディング力が高い人)は、 ポインタがある言語を使った方が高性能のプログラムを使えていいと思う。 : デフォルトの名無しさん (ブーイモ MMdf-M7II [49.239.65.54]) [] 2019/12/26(木) 09:02:47.60:YvaHujGZM ポインタは元々少ないメモリ空間の昔に使われてきた プログラム自体を書き換えることで、違う処理をさせてきたわけだ 今はそんなことする必要は無く、ワークエリアも十分ある その中でわざわざポインタ使ってやる方がおかしい : デフォルトの名無しさん (オッペケ Sr5f-WinK [126.179.107.202]) [sage] 2019/12/26(木) 10:48:00.02:MgSP500ir 個人的にはポインタよりも高度な関数型言語の方が難しい メモリの制約が少なくなって並列処理の必要が増した昨今に ポインタを理解していることに自尊心を持ち続けているようではまずいと思う : デフォルトの名無しさん (ワッチョイ 4bda-K0SF [118.16.214.20]) [sage] 2019/12/26(木) 11:30:29.67:LEe51FxT0 えへん : デフォルトの名無しさん (ワッチョイ eb01-GEpG [126.168.93.13]) [sage] 2019/12/26(木) 12:17:46.05:IcXenUI20 ポインタ使えるC#のがプロ向けなんですか? C系言語で最もバランスの取れた言語を集中的に覚えたいです : デフォルトの名無しさん (ドコグロ MM7f-CuJz [119.243.54.251]) [sage] 2019/12/26(木) 12:26:40.52:EWaoVvrbM スレ違いも甚だしい : デフォルトの名無しさん (ワッチョイ 77da-K0SF [58.89.131.191]) [sage] 2019/12/26(木) 15:19:27.46:6rKDuvH70 balancedC : デフォルトの名無しさん (アウアウクー MM1f-K4/I [36.11.225.139 [上級国民]]) [] 2019/12/26(木) 16:33:20.56:P2pgmRUJM 目的なく言語選びをしても意味がない。 : デフォルトの名無しさん (ワッチョイ d7da-K0SF [121.114.133.196]) [sage] 2019/12/26(木) 16:40:18.13:REAQMzC80 受験勉強の弊害だろ、何の為にするのかが考えられない : デフォルトの名無しさん (アウアウウー Sa57-1jI+ [106.132.121.87]) [] 2019/12/26(木) 20:59:53.58:jGVvGCFqa .| .| ∩___∩ | | ノ\ ,_ ヽ .| / ●゛ ● | .J | ∪ ( _●_) ミ 彡、 |∪| | / ∩ノ ⊃ ヽ ( \ / _ノ | | \ " / | | \ / ̄ ̄ ̄ /  ̄ ̄ ̄ ̄ : デフォルトの名無しさん (アウアウウー Sa57-hoej [106.132.126.245]) [] 2019/12/26(木) 23:41:10.21:n7PujD85a ポインタは処理速度が速いからね。 (代入処理が少なくなるせい) : デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97]) [] 2019/12/26(木) 23:46:20.90:AOHRGRKj0 恐らく逆じゃないかな。 スタック上にオブジェクトを作れるとメモリーの確保が必要ないし常にキャッシュに載るので速い。 ポインタがない言語はだいたいポインタと同程度の大きさを持ついくつかのプリミティブしかスタック上に配置できないので、常にポインタを介した演算と同程度の速度しか出せない。 ってことでは。 : デフォルトの名無しさん (アウアウエー Sa5f-K0SF [111.239.59.219]) [sage] 2019/12/26(木) 23:55:41.06:7SX4HwC3a ポインタと実際の実装はまた別の話では? コンパイラが頑張ればかなり最適化できるが : デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97]) [] 2019/12/27(金) 00:00:34.84:2RWoWvTN0 すべてのオブジェクトをスタックにしか置けないと、事前にすべてのオブジェクト領域を用意しないといけない。 それは現実的ではないのでヒープが必要になり、ヒープへの効率的アクセスにポインタが用意される。 という順番かと。 : デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97]) [] 2019/12/27(金) 00:01:57.53:2RWoWvTN0 スタックポインタの指す場所をキャッシュしないプロセッサはないので、コンパイラ関係なくスタック上は有利じゃないでしょうかね。 キャッシュミスで1000クロック失うこともあるわけですし。 : デフォルトの名無しさん (アウアウウー Sa57-hoej [106.132.126.245]) [] 2019/12/27(金) 00:13:29.51:FGT7rX6da ポインタの利点は、メモリ上でデータコピーの頻度が下がることだよ。 ポインタはデータを参照するだけで、コピー(代入)しないから。 : デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97]) [] 2019/12/27(金) 00:20:45.16:2RWoWvTN0 Javaのオブジェクトもコピーしませんよ。 : デフォルトの名無しさん (ワッチョイ cf8f-hoej [118.7.1.66]) [] 2019/12/27(金) 00:41:11.11:TGHw1m2h0 まじで? : デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97]) [] 2019/12/27(金) 00:42:32.50:2RWoWvTN0 そりゃそうでしょう。 プリミティブ以外は全部参照という割り切った仕様なんですから。 : デフォルトの名無しさん (ワッチョイ cf8f-hoej [118.7.1.66]) [] 2019/12/27(金) 00:44:18.84:TGHw1m2h0 じゃあJAVAのオブジェクトが持つデータの本体はどこにあるの? : デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97]) [] 2019/12/27(金) 00:44:57.33:2RWoWvTN0 GC上にありますよ。 : デフォルトの名無しさん (ワッチョイ cf8f-hoej [118.7.1.66]) [] 2019/12/27(金) 00:52:40.10:TGHw1m2h0 あーそういう事ね。 それは話にならん。 結局、変数宣言する度にGC上にエリアとるんでしょ。 それじゃ遅いんだよ。 : デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97]) [] 2019/12/27(金) 00:57:03.69:2RWoWvTN0 ポインタと同様遅いということです。 : デフォルトの名無しさん (ワッチョイ 5b5f-1gZu [106.72.163.96 [上級国民]]) [] 2019/12/27(金) 03:23:21.04:zc200dFE0 ポインタは物理アドレスを辿れることにメリットがある。 当然、重大バグを埋め込み安くなる。 : デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97]) [] 2019/12/27(金) 03:51:35.21:2RWoWvTN0 いまどきJavaが使われるような用途でプログラムは物理アドレスにアクセスできませんよ。 物理アドレスはOSが管理しているので、言語によって変わる事は有りません。 : デフォルトの名無しさん (アウアウエー Sa5f-K0SF [111.239.58.235]) [sage] 2019/12/27(金) 11:00:48.46:Z74RNOkKa 1. ポインタを使う言語(具体的になに?) 2. Java 3. ポインタを使わない言語(具体的に何?) で、どれがどう早いのかまとめてくれ : デフォルトの名無しさん (ワッチョイ d7da-K0SF [121.114.134.15]) [sage] 2019/12/27(金) 11:11:52.93:eoDvpAED0 答え スレチ : デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]]) [] 2019/12/27(金) 13:15:25.80:zc200dFE0 文法も内容もおかしいぞ? : デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]]) [] 2019/12/27(金) 13:16:21.22:zc200dFE0 早い遅いの話だったのか? : デフォルトの名無しさん (アウアウウー Sa57-1jI+ [106.132.120.196]) [] 2019/12/27(金) 13:54:39.03:OSUAtXdGa 君たちにはこれをプレゼントしよう。 NullPointerException : デフォルトの名無しさん (ワッチョイ 77da-K0SF [58.89.132.170]) [sage] 2019/12/27(金) 14:38:37.47:29a4DvgC0 throw GUT : デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]]) [] 2019/12/27(金) 16:23:18.89:zc200dFE0 それ単に誤ったところにアクセスしようとしたという意味で、それを頻発させるプログラマはダメすぎる。 : デフォルトの名無しさん (アウアウウー Sa57-1jI+ [106.132.120.196]) [] 2019/12/27(金) 19:43:06.37:OSUAtXdGa Javaにはポインターが無いと聞いていたのにいきなりこんなもんが出ちゃってインド人もびっくり。 NullPointerException : デフォルトの名無しさん (アウアウクー MM1f-K4/I [36.11.224.140 [上級国民]]) [] 2019/12/27(金) 19:47:41.94:c4efkuh5M ポインタ変数とポインタの区別がつかない阿呆 : デフォルトの名無しさん (ブーイモ MM07-cCQ4 [210.138.176.74]) [age] 2019/12/27(金) 20:26:01.32:S+olTiDxM ぬるぽはオブジェクトがヌルのときに投げられるから Javaのポインタはオブジェクトを指すものなのだろうね C言語のポインタはメモリアドレスを指す 名前は同じだけど概念が違う : デフォルトの名無しさん (ブーイモ MMdf-7gm+ [49.239.71.113]) [sage] 2019/12/27(金) 20:53:02.39:uD1rHSskM おいおいマジかよw ちなみに「指すもの」を英語でpointerと言います。 : ◆QZaw55cn4c (ワッチョイ 5f47-7AkR [131.129.114.156 [上級国民]]) [sage] 2019/12/27(金) 20:57:44.42:9iE1xeZJ0 Java は c++ のある種の進化系・理想形ですからね、今でも c++ で丁寧に書こうと思ったら自然に Java に近くなりますよ : デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229]) [sage] 2019/12/27(金) 22:29:49.28:2d2dVtvP0 初心者です。問題集で勉強中です 宜しくお願いします。 会員顧客データを更新する時のプログラムなんですが 未実装と記入ある箇所にどうのようなコードを入れてら良いでしょうか ざっくりで申し訳ありません /** * 顧客情報テーブルの指定の顧客情報を更新する * @param cutomer 顧客情報Bean * @return エラーメッセージ(処理成功時、null) */ public String update(CustomerBean cutomer) { LogUtil.println(this.getClass().getSimpleName() + "#update"); // TODO 未実装 return null; } : デフォルトの名無しさん (ワッチョイ effd-HAwK [143.189.66.24]) [sage] 2019/12/27(金) 22:37:53.02:XCpPzAzW0 // TODO 未実装 return null; これを // なぜか更新できない return "エラーです"; って直すを呼び出した人が治してくれると思う。 : デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]]) [] 2019/12/27(金) 23:39:06.28:zc200dFE0 未実装もなにも、なんも書かれていないメソッドだろうにw : デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]]) [] 2019/12/27(金) 23:41:14.61:zc200dFE0 ログ出力しているだけw : デフォルトの名無しさん (ドコグロ MM2f-CuJz [118.109.188.99]) [sage] 2019/12/27(金) 23:47:00.87:lxjmCiaLM 突っ込むところがズレてて気持ち悪い : デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]]) [] 2019/12/27(金) 23:50:52.21:zc200dFE0 自分が面白いと思っているの? : デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229]) [sage] 2019/12/28(土) 00:07:06.19:Nw+g0oHm0 はい。ここに何を書き込むべきか教えてください : デフォルトの名無しさん (ワッチョイ 6f01-hoej [126.83.84.73]) [] 2019/12/28(土) 02:36:10.83:Rw3GVoxd0 更新すべき項目と更新値を書けばいいんじゃない? : デフォルトの名無しさん (ワッチョイ 2fd2-Bxcu [221.191.212.228]) [] 2019/12/28(土) 15:01:05.86:VCBq52Cm0 java インターフェイスでググると インターフェイスを実装したクラスを作って そのクラスのインスタンスからインターフェイスのメソッドを使うやり方しか でてこないんだけど インターフェイスって基底クラスみたいにつかえないの? : デフォルトの名無しさん (ワッチョイ 0302-txmj [124.212.87.121 [上級国民]]) [sage] 2019/12/28(土) 15:18:09.71:jHoXf9TZ0 坂口渚沙 ttp://up.ahhhh.info/eIhmUC.jpeg : デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229]) [sage] 2019/12/28(土) 15:48:54.66:Nw+g0oHm0 有難うございます もうちっと考えてみます : デフォルトの名無しさん (アウアウクー MM1f-K4/I [36.11.225.235 [上級国民]]) [] 2019/12/28(土) 18:20:50.79:p8R0Q+BHM インターフェイスの意味がわかっていますか? : デフォルトの名無しさん (バッミングク MMf7-DL3T [124.102.46.53]) [sage] 2019/12/28(土) 19:53:00.32:KI7KpILmM 基底クラスみたいに使う、って漠然としすぎだけど、 Java8からinterfaceに実装を記述できるようにはなったよ。 : デフォルトの名無しさん (ワッチョイ 4301-csov [126.194.183.121]) [sage] 2019/12/29(日) 11:49:13.66:IzML/7jR0 Proguard使えよタコ : デフォルトの名無しさん (ワッチョイ abb0-yGK/ [180.46.73.208]) [] 2019/12/30(月) 19:30:26.98:ZLko78Lo0 Java シルバー取りたいんだけどSE8と11なら11にしておいた方がいいの? : デフォルトの名無しさん (ワッチョイ 63da-K0SF [118.18.7.176]) [sage] 2019/12/30(月) 20:31:48.82:u0MtUvRs0 しらんがなー : デフォルトの名無しさん (ワッチョイ b79f-WinK [118.109.43.71]) [sage] 2019/12/30(月) 20:36:19.50:yKHaMa8w0 11にしようぜ たいして難しくなってないし、知識としてあえて古い方に限定することもない : デフォルトの名無しさん (アウアウウー Sa57-+yl6 [106.180.3.16]) [sage] 2019/12/30(月) 21:14:40.48:3kEURnema 初心者で2月に受けるけど全く黒本がわからない なんとなくコードは打てる 理解っているの?Java : デフォルトの名無しさん (オッペケ Sr5f-baxb [126.179.99.147]) [sage] 2019/12/30(月) 22:16:53.88:Za1Wf1ynr 初心者から脱する気が無いなら理解する必要は無いよ ただ初心者のまま時間が経つとそれはもう初心者じゃなくてただの無能だからね : デフォルトの名無しさん (ワッチョイ ff01-NWon [111.90.14.57]) [] 2019/12/30(月) 22:17:58.31:fFRqMrLq0 謎のマウンティング開始 : デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229]) [sage] 2019/12/31(火) 01:49:08.07:tPXUyNvp0 数値の比較などの判定式の結果boolean型の仕組みが理解できていません int count =3; int limit =2; System.out.println(count <= limit); 結果はfalseなのですが、「3<=2」がなぜfalseなのでしょうか。 比較の左側ならfalse、右側ならtrue、などあるのでしょうか : デフォルトの名無しさん (ワッチョイ 7fad-SvJ4 [27.139.41.170]) [] 2019/12/31(火) 01:55:01.88:wQOusfvX0 君は3が2以下だと思うのかい? : デフォルトの名無しさん (ワッチョイ ff01-NWon [111.90.14.57]) [] 2019/12/31(火) 01:57:35.04:yv9yhyfZ0 <=は小なりイコールの演算子だから 左の値が右の値より小さいか、もしくは左の値と右の値が同じときtrueになる 3 <= 2は、3は2以下であるということを表してて当然false : デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]]) [] 2019/12/31(火) 02:57:47.47:II4RvmaH0 まずはif文から勉強してくださいよ。 : デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]]) [] 2019/12/31(火) 02:58:58.61:II4RvmaH0 数学もわかっていないのかな? : デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229]) [sage] 2019/12/31(火) 03:19:08.80:tPXUyNvp0 適切な解答有難うございます 「左の値が右の値より小さいか、もしくは左の値と右の値が同じときtrueになる」 この文章で理解できました。 : デフォルトの名無しさん (アウアウエー Sa5f-K0SF [111.239.63.198]) [sage] 2019/12/31(火) 13:29:22.42:9+YIWQboa 言葉で書くとかえってわかりにくいよね : デフォルトの名無しさん (ワッチョイ 6bad-E95m [110.133.143.229]) [sage] 2020/01/01(水) 03:24:48.37:yEYEASGU0 本当に有難うございます。 性格イケメンさんの解説のお陰で適切に解答できるようになりました : デフォルトの名無しさん (ワッチョイ 6bad-E95m [110.133.143.229]) [sage] 2020/01/01(水) 03:27:37.39:yEYEASGU0 問題集やってると混乱してきます 私48の婆なんですが の性格イケメンさんに高3の娘を嫁に出したいわ。 : デフォルトの名無しさん (ワッチョイ 9fad-cEPd [27.139.77.105]) [] 2020/01/01(水) 20:37:50.12:fUaq4dOi0 よかったな。めでたしめでたし。 おわり : デフォルトの名無しさん (ワッチョイ 9fad-cEPd [27.139.77.105]) [] 2020/01/01(水) 20:38:19.57:fUaq4dOi0 アンカミスった : デフォルトの名無しさん (ワッチョイ 7d46-CCy/ [58.88.17.246]) [] 2020/01/09(木) 00:07:25.24:r2AVr9JT0 JavaでGUI作ろうと思ってJavaFXの情報探そうと思ったら全然出てきません…… 日本語の本でまともなのってないですか? : デフォルトの名無しさん (ラクッペ MMd1-6NT+ [110.165.204.206]) [sage] 2020/01/09(木) 00:31:43.96:mNT5CRRbM JavaFXはもう終わりでしょ 需要ないしろくに本も無いのでは? : デフォルトの名無しさん (ワッチョイ 7d46-CCy/ [58.88.17.246]) [sage] 2020/01/09(木) 00:33:05.00:r2AVr9JT0 ネット見た感じ取り敢えずSwingは終わりっぽいのでOpenJFX使って開発しようと思ったんですが、どちらも厳しいんですかね? : デフォルトの名無しさん (アウアウウー Sa19-JyDu [106.180.2.225]) [sage] 2020/01/09(木) 01:33:41.97:TONSU376a 終わるとか以前に、JavaでGUIは始まったことすらない ガチで今も昔も誰も使ってない : デフォルトの名無しさん (ワッチョイ 5b01-Ru/f [111.90.14.57]) [age] 2020/01/09(木) 07:57:06.34:wvbDpdNb0 昔は性能が悪くて使われず 今はクライアントアプリが斜陽 : 753 (ワッチョイ 7d46-CCy/ [58.88.17.246]) [sage] 2020/01/09(木) 18:03:22.21:r2AVr9JT0 皆さん返答ありがとうございました、参考になります JavaではGUIアプリを作るのは取り敢えず辞めにして、コンソールで適当なゲームでも作って覚えることにします : デフォルトの名無しさん (ワッチョイ a301-ErPi [221.33.176.17]) [] 2020/01/10(金) 12:19:03.17:MA7SUINg0 javaのソースコードの見方がわからない androidアプリをとりあえず逆コンパイルして.classを抽出して中身のコードを見ることはできるようになったんだけど 沢山.classのファイルがあってどこが何がスタートになってるの? 順番ってどうなってるの? そのアプリはa.class b.class c.classってタイトルが全部アルファベットなんだけど : デフォルトの名無しさん (ワッチョイ 2390-mHUb [59.85.250.241]) [sage] 2020/01/10(金) 13:53:24.38:kNTR9GPN0 aとかbとかは君のように解析しようとする試みを防ぐため難読化されてるってこと。 エントリポイントはActivityを継承したクラス見っけて...かな? : デフォルトの名無しさん (スップ Sd03-B9Rj [1.72.8.135]) [sage] 2020/01/10(金) 14:29:37.98:zQO7dZXUd zxingでQRコードとJANコードが入った画像を読み取りたいんだけど JANコードだけを読み取りたい。みたいな事ってできない? : デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3]) [] 2020/01/10(金) 15:04:57.68:+8yrOvaU0 メソッド名は“main”である(すべて小文字) どっかにmainってファイルが必ずあるはずで、これがこのアプリの入口になってて他のclassのファイルは小部屋みたいなもんなんでしょ? mainってファイルがどこ探してもないんだけどこれどういうことなん? : デフォルトの名無しさん (オッペケ Srf1-tc1A [126.234.11.188]) [sage] 2020/01/10(金) 15:08:39.67:9j5+BVSIr メソッドって自分で言ってんのにファイル名探すとは : デフォルトの名無しさん (ワッチョイ 6501-eaUz [126.168.224.177]) [sage] 2020/01/10(金) 18:11:08.65:D+gtbuRW0 C#erに、まだフィールド使って接頭語にアンダースコア付けてるんでしょ?と言われて何か悔しいです。 ギャフンと言わせる方法はあるでしょうか? : デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74]) [sage] 2020/01/10(金) 18:13:03.87:ujZrkvpm0 音楽プレーヤーをカスタマイズしたいのですが教えてください ttp://https://imgur.com/a/jQqzGGM 今アルバムタイトルの下に情報が並んでいます この最後に任意のFieldに書き込んだ文字を表示させることは出来ますでしょうか? スクリプトファイルを開くと //---> INFO if (showGroupInfo) { var infoX = leftPad; var infoY = groupY + artistH + albumH; var infoH = h; var infoW = w - x - infoX; var bitspersample = $("$Info(bitspersample)", metadb); var samplerate = $("$Info(samplerate)", metadb); var sample = ((bitspersample > 16 || samplerate > 44100) ? " " + bitspersample + "bit/" + samplerate / 1000 + "kHz" : ""); var codec = $("$ext(%path%)", metadb) ; : デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74]) [sage] 2020/01/10(金) 18:13:27.27:ujZrkvpm0 if (codec == "cue"){ codec = $("$ext($Info(referenced_file))", metadb); } else if (codec == "mpc") { codec = codec + " " + $("$Info(codec_profile)", metadb).replace("quality ", "q"); } else if ($("$Info(encoding)", metadb) == "lossy") { if ($("$Info(codec_profile)", metadb) == "CBR") codec = codec + " " + $("%bitrate%", metadb) + "kbps"; else codec = codec + " " + $("$Info(codec_profile)", metadb); } if (codec) { codec = codec + sample; } else { codec = path; : デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74]) [sage] 2020/01/10(金) 18:15:06.30:ujZrkvpm0 } var iCount = itemCount[ID.groupNr]; var genre = radio ? "" : (groupedID ? "%genre% | " : ""); var discNumber = (groupedID != 2 ? "" : $("[ | Disc: %discnumber%/%totaldiscs%]", metadb)); var info = $(genre + codec + discNumber + "[ | %replaygain_album_gain%]", metadb) + (radio ? "" : " | " + iCount + (iCount == 1 ? " Track" : " Tracks") + " | Time: " + calculateGroupLength(firstItem[groupNr], lastItem[groupNr])); var w = w - x - 10; g.DrawString(info, infoFont, infoColor, infoX, infoY, infoW, infoH, StringFormat(0, 0, 3, 0x1000)); var infoStringH = Math.ceil(gr.MeasureString(info, infoFont, 0, 0, 0, 0).Height + 5); var lineX1 = infoX, lineX2 = 20 + w, lineY = infoY + infoStringH; (lineX2 - lineX1 > 0) && g.DrawLine(lineX1, lineY, lineX2, lineY, 1, lineColor); } となっていました これはJavaでしょうか? 上記URLに任意のFieldを追加するにはどうすればよいでしょうか? よろしくお願いいたします : デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.141.99]) [sage] 2020/01/10(金) 18:50:23.24:915LIh+yM 言語面ではJavaはあらゆる面でC#に劣るから、正攻法で戦ってはいけない C#er相手にマウントを取るには、でもWindowsなんでしょ?wwwが一番効く お前もWindowsでJavaを運用していたり、そのC#erが.NET CoreをLinuxで運用してたりUnity開発者だったりするなら諦めろ : デフォルトの名無しさん (ワッチョイ 5b01-zcZG [111.90.14.57]) [] 2020/01/10(金) 22:38:24.06:ALcwyMXE0 foobar2000のJavaScriptっぽいなー : デフォルトの名無しさん (ワッチョイ 23ad-UU8b [27.139.41.170]) [] 2020/01/10(金) 23:24:28.51:u5Uqllm50 EANReaderってQR反応したっけ? : デフォルトの名無しさん (ワッチョイ b59f-pLzZ [118.109.43.71]) [sage] 2020/01/11(土) 02:43:04.54:14sFduQs0 ・ゴメン俺Haskellに乗り換えたからJavaやってねーんだわ ・ゴメン俺マネジメントが忙しくて最近プログラミングさせてもらえねーわ 好きなほうどーぞ Haskellは嘘だろと追及されそうならKotlinかLombokで : デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3]) [] 2020/01/11(土) 08:57:49.30:qa2D3VNz0 >メソッド名は“main”である(すべて小文字) これネットでggって書いてあったんだけど じゃあファイル名はもう何かわからないってこと?mainメソッドの拡張子も.class? この沢山ある**.classファイルの数々からmainを自分で見つけるしかないってこと? : デフォルトの名無しさん (ワッチョイ 2361-alJZ [61.245.59.106]) [] 2020/01/11(土) 09:07:22.58:+T4LytQN0 AndroidはJVMじゃないし。 : デフォルトの名無しさん (ワッチョイ 8b0d-0qp1 [121.2.61.211]) [sage] 2020/01/11(土) 10:10:11.51:vwcaMfZA0 テキスト検索すらできない実力でリバースエンジニアリングできると思ってるの? 煽りじゃないよ : デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3]) [] 2020/01/11(土) 11:18:07.93:qa2D3VNz0 うん思ってる : デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3]) [] 2020/01/11(土) 11:42:50.55:qa2D3VNz0 指定した全部のファイルから メソッドだろうが修飾子だろうが全部の文字列検索してるツールとかってないの? javaDecompiler使ってるんだけど、なぜか修飾子検索してくんないから全く使い物にならない : デフォルトの名無しさん (ワッチョイ a5e9-G18V [222.15.235.177]) [sage] 2020/01/11(土) 11:52:19.94:as9AOr230 普段プログラム書くのに使ってるツールにgrep機能が付いてないの? : デフォルトの名無しさん (ワッチョイ 55da-lZna [220.144.30.68]) [sage] 2020/01/11(土) 13:39:02.07:5ateKhzY0 Androidのアプリならmainメソッド探しても仕方ないよ。 mainメソッドはアプリ側でなくてAndroidのシステム側にあるから。 (って話はすでにが書いてくれてるんだけど) というか、解析したいアプリがどんなものかわからないけど、 - Native Activityで実装されていればdexファイルではなくsoになってる - Unityとかで開発されていれば実質的なアプリ本体はC#なりで実装されている とか普通にあるんで、必ずしもdexをclassにしてデコンパイルすれば中身見放題ってわけじゃないです。 : デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3]) [] 2020/01/11(土) 14:48:30.35:qa2D3VNz0 わかりました。 どうやらそのようです。 soファイルありました。 どうもありがとうございました。 : デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3]) [] 2020/01/11(土) 14:49:56.63:qa2D3VNz0 詳しく教えてくれてありがとうございました。 ggったら全く同じ事が書いてありました。 : デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221]) [sage] 2020/01/11(土) 15:29:29.31:MXX/X4cZ0 Javaの場合、mainという名前のメソッドはテスト用にどのクラスでもそれぞれ書いても良いとされている。 Androidの場合、Activityを継承したクラスに所属している main という名前のメソッドからプログラムが開始される。 public指定されて外にexportされているクラスの名前を XXX とすると、そのクラスを書くソースファイルの名前は、XXX.javaとなる。 XXX.javaをコンパイルするとXXX.classになる。 本物のJavaは、XXX.classをまとめたものが、*.jarであるが、Androidの場合は、まず、*.classが*.dexに変換された後、さまざまなファイルとアーカイブされて*.aptになる。 : デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221]) [sage] 2020/01/11(土) 15:35:49.54:MXX/X4cZ0 すまん。Activityの場合は、main()ではなく、onCreate()メソッドだったかも知れん。 Androidの場合でも、dexコマンドで直接起動するようなCUIプログラムの場合は、main()でよかったと思う。 ただし、Javaの場合は外部関数がないので当たり前かもしれないが、このmainは、C/C++のような外部関数ではなく、メンバ関数。 : デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221]) [] 2020/01/11(土) 16:27:06.17:MXX/X4cZ0 *.aptじゃなく、*.apk。 dexも細かい関係性は忘れた。 : デフォルトの名無しさん (ワッチョイ fd61-alJZ [112.136.82.104]) [] 2020/01/11(土) 17:33:12.71:lHngeS9z0 ActivityじゃなくてApplicationだ。 答える方もわかってないしスレ違いだし、いい加減向こうでやれや。 : デフォルトの名無しさん (アウアウウー Sa19-JQ6m [106.154.130.141]) [] 2020/01/11(土) 19:55:11.85:Dn3xIqPda Javaの有償化について教えてください PC内に入っているものは「Java SE Development kit 8」なのですが これでアプリ作って公開したら有償ですか? Kotlin使っても有償になるのでしょうか? : デフォルトの名無しさん (ブーイモ MM29-oH9J [210.149.252.155]) [sage] 2020/01/11(土) 21:34:49.76:1VjCQQNwM Javaをやろうとするやつは総じてバカなのか? それともこのスレだけなのか? 最近pythonやろうとしてるやつも大概バカばっかだがここはそれ以上 : デフォルトの名無しさん (ワッチョイ 1d5f-tgR8 [106.72.150.32]) [sage] 2020/01/11(土) 23:44:29.27:Fe8pyJct0 私思うんです 他のクラスに変数を受け渡すとき 例えばclass1からd=class2(a,b,c);みたいにひとつずつ変数を渡さないで d=class2(this);にすればいいと思うんです 私思うんです : デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74]) [sage] 2020/01/12(日) 00:46:32.13:7vCp3mje0 はい、foobarです これって専用なのですね? 専門のページで質問してみます 有難うございました : デフォルトの名無しさん (ワッチョイ b59f-pLzZ [118.109.43.71]) [sage] 2020/01/12(日) 00:51:10.15:FbSdnFnB0 モジュールの結合度について学び今後意識していくとよいでしょう 密結合になると変更に弱くなります 弱くなります : デフォルトの名無しさん (アウアウウー Sa19-htaX [106.132.121.116]) [] 2020/01/12(日) 19:22:47.94:T1GQsdFba 弱くなります : デフォルトの名無しさん (ワッチョイ 05b0-H9u6 [180.46.73.208]) [] 2020/01/12(日) 19:44:41.84:N/CHSK/80 何このバカw どっから湧いたんだよ : デフォルトの名無しさん (ワッチョイ db02-ErPi [119.106.128.249]) [sage] 2020/01/13(月) 02:41:58.54:D6MgPK0q0 初質問させていただきます、JAVA初心者です。 Javaにて簡易的なチャットの実装を試みています。 基本部分の仕様は以下の通りです。 ・ソースコードはサーバ側プログラムとクライアント側プログラムの2つ ・チャット参加者数は最大5名とし、参加時には他の参加者に「***さんが加わりました」といったメッセージが表示されるようにする。 ・参加者は好きなタイミングでメッセージを送信できるようにする。 ・他の参加者からのメッセージはサーバが送信してきたタイミングで受信して画面上に表示するようにする。 ・他の参加者が抜けた(切断した)場合には、「***さんが抜けました」といったメッセージが表示されるようにする。 現在、サーバ・クライアント間の通信確立までは実装できています。 考え方、実装例をご教授いただけると幸いです。 お手数おかけしますが、ご助力ください。 : デフォルトの名無しさん (ワッチョイ e3a3-qRB+ [115.176.101.180]) [sage] 2020/01/13(月) 12:20:04.08:Jh+AJgi90 宿題をここに投げるな : デフォルトの名無しさん (スププ Sd43-Acsm [49.96.12.123]) [sage] 2020/01/13(月) 17:57:40.86:wJyWxns1d 今、新規開発のFWは選定するとSpring1択になる? PlayはScalaの方に行ったしStruts2は避けられてるし。 マイクロフレームワークはポコポコ出てきてるけどさ。 : デフォルトの名無しさん (ワッチョイ 1d5f-pWSs [106.72.163.96 [上級国民]]) [] 2020/01/13(月) 18:13:43.46:PNIqRh180 SpringとSpring bootの区別はできているのか? : デフォルトの名無しさん (ワッチョイ 232c-JQ6m [219.162.234.204]) [sage] 2020/01/14(火) 04:41:29.56:3sd16sWN0 0から手を動かして作るRailsチャットアプリ【チュートリアル】 ttp://https://www.youtube.com/watch?v=WCsgcp5dg7M とだこうきの動画。 通信には、WebSocket を使ってる 他には、Node.js, Electron でも作れるかも : デフォルトの名無しさん (ササクッテロラ Spf1-gopL [126.193.125.144]) [] 2020/01/14(火) 14:29:55.91:m1u1XKORp なんでinterface作ってクラス名にimplつけた実装クラス作るの?最初からクラスだけじゃダメなの? : デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.142.88]) [sage] 2020/01/14(火) 14:45:34.94:/8RfG7cVM 並行作業のスケジュールの都合により、使われる方のクラスを作る前に使う方のクラスを先に作る必要がある場合のためだよ。 使われる方のinterfaceさえ定義しとけばImplがまだ無くても使う方を作れるでしょ。 現実にはこのような逆転した作業は極めて非効率で、たいてい後で不整合が起きて無駄になる。 でもジャップランドのSEはプログラマの稼働率を下げないためにそうせざるを得ないの。 : デフォルトの名無しさん (ブーイモ MMd9-Ru/f [202.214.167.212]) [age] 2020/01/14(火) 18:43:28.37:0xXDWcnxM ジャップアイランドは今日もハッピーです : 797 (ササクッテロラ Spf1-gopL [126.193.125.144]) [] 2020/01/14(火) 19:29:37.55:m1u1XKORp ありがとうございます。 並行作業のため、理解です。でも本当にそれだけなのでしょうか?interfaceが書ける時点で引数と戻り値は決まっているはずなので、最初からクラスを書いてダミーの戻り値を返すようにしておくのと変わらない気がします。 : デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.142.88]) [sage] 2020/01/14(火) 20:09:08.05:/8RfG7cVM よい質問だ。 SE様に作業完了の確認を貰って深夜残業を切り上げるには、当然、作ったものを単体テストしなきゃいけない。 でも使われる側がnull返すか何もしないだけのダミー実装じゃ普通に考えてテスト通るわけない。 どうするか?自分で都合のいい実装をでっち上げてそれを代わりに使うんだよ。 この手法は脳内彼女を相手に恋愛の練習をしているようなもので、どれだけ無駄かは容易に想像できるだろう。 態々interfaceを通さなくても脳内彼女の実装を対象クラスに直接書けばいいじゃないかと思うかもしれないが、 そうするとA君の脳内彼女とB君の脳内彼女が同一人物なのに違う実装になってしまって衝突したり、 いざ本物を実装しようとしたときに既に変なオナニー実装があって混乱するなど不都合が生じる。 ちなみに実は自動テストの都合という面もあるのだが、ドカタITではそんなものはファンタジーだから気にしなくてよい。 : デフォルトの名無しさん (ワッチョイ 9d02-Qvx6 [124.212.87.121 [上級国民]]) [sage] 2020/01/15(水) 21:30:47.56:I5kvS7DO0 int a=10; a=a+1 System.out.println(a); : デフォルトの名無しさん (ワッチョイ 455f-0x+Z [106.72.163.96 [上級国民]]) [] 2020/01/16(木) 00:49:53.70:aFCqpdJ/0 決まった名前のメソッドを実装させるため。 : デフォルトの名無しさん (アウアウウー Sa21-SNGL [106.132.129.104]) [] 2020/01/16(木) 21:21:25.94:zJukF7BCa 違う実装を後からセットできるじゃない。 : デフォルトの名無しさん (アウアウエー Sa13-mgaX [111.239.153.45]) [sage] 2020/01/16(木) 22:22:37.65:rwq+tT6ga 典型的な「不必要な抽象化」だね 〇〇Implなんて名前の時点で、ほぼ間違いなく実装の差し替えはテスト目的以外には行われないよ : デフォルトの名無しさん (ワッチョイ fb01-C1bT [111.90.14.57]) [] 2020/01/16(木) 23:07:38.38:Z0H9lpow0 わかるわーw : デフォルトの名無しさん (ドコグロ MM41-mgaX [122.130.225.133]) [sage] 2020/01/16(木) 23:23:00.28:afqzkFYPM Goなんかは言語のコンセプトとして「実際に必要になる前の抽象化は糞」と(暗にJavaを指して)言ってるね その通りだと思う : デフォルトの名無しさん (ワッチョイ fb01-C1bT [111.90.14.57]) [] 2020/01/16(木) 23:39:59.75:Z0H9lpow0 Goを設計したのはUnixの開発者たちだからねー Unixはできるだけグルーコードを薄くすることで移植しやすく堅牢で保守しやすいシステムになった Javaもそうしたが良いのかもわからんね : デフォルトの名無しさん (ワッチョイ e3ad-nP71 [27.139.77.105]) [] 2020/01/17(金) 00:36:40.53:VVaP2eJK0 Kotlin もよろしく : デフォルトの名無しさん (ドコグロ MM03-rWIW [49.129.184.242]) [sage] 2020/01/17(金) 00:37:06.20:Lhu1rqyiM ことりん : デフォルトの名無しさん (アウアウウー Sa21-SNGL [106.132.131.54]) [] 2020/01/17(金) 09:07:32.24:4YEO+2r4a そう?Swingの見た目変えるのとかで使ってない? その他ライブラリーでOSや環境の違いを吸収する所とか。 : デフォルトの名無しさん (ドコグロ MM41-mgaX [122.130.225.133]) [sage] 2020/01/17(金) 10:04:29.73:0sb73h15M 君はSwingを作っているのか? 俺も元々独学だったからよくわかるんだが、独学プログラマは不特定多数向けのプロダクトしか手本がないから、 ユースケースを特定せずに一般的や抽象化を行うことを必須と思い込みがちなんだよ 現実のアプリケーションプログラミングにおいては、一般に、極力絞り込んだ必要最低限のコードを書くほうが継続的な開発が容易になる : デフォルトの名無しさん (オッペケ Sr19-uB0D [126.34.59.159]) [sage] 2020/01/18(土) 00:55:57.15:6oxaDxGzr OSや環境の違いを吸収するコンクリートクラスはOSや環境ごとの名前になるはずで、Implなんて無色透明な名前にはならないよ それにテストだけならモックアップを動的生成させればいい フレームワークと実装を分けたいときとか、Implが好ましい状況もあるけど、インターフェースを将来のため柔軟さのためにと増やすのはYAGNI原則とKISS原則に反する : デフォルトの名無しさん (ワッチョイ 455f-0x+Z [106.72.163.96 [上級国民]]) [] 2020/01/18(土) 01:00:29.14:vFXF5Tw00 典型的なJava信者のご登場。 こだわっているところがズレまくり。 : デフォルトの名無しさん (アウアウエー Sa13-mgaX [111.239.153.45]) [sage] 2020/01/18(土) 01:23:04.05:AhPxC9uwa 実際、開放閉鎖原則がまともに機能してる現場なんか存在するんだろうか 経験上、むやみやたらとinterfaceが定義されててもそれらがポリモーフィズムに活用されることはほぼ無いし、 ほとんどの修正は既存の具象クラスに対して直接加えられる 日本のIT土方のレベルが低いとかそういう話ではなく、自社サービスでも海外のOSSでも同じだ : デフォルトの名無しさん (スププ Sd03-heHR [49.96.13.73]) [sage] 2020/01/18(土) 12:34:09.50:XaNWIYwld 結局インターフェースごと差し替えるから意味内わかるわー : デフォルトの名無しさん (アウアウクー MM99-0x+Z [36.11.225.57 [上級国民]]) [] 2020/01/18(土) 13:25:24.64:0gCd/F0VM 狂ったJava信者は仕様を満たすことよりもコードにこだわり、いつまでたっても物ができあがらない。 保守性が高いと自信満々だったのに、いざ保守になると面倒なロジックになっていて変更に時間がかかる。 最初にリリースしたものを最適化しすぎる傾向があって、使用が変わるたびにたくさんコードを修正しなくてはいけなくなる。 保守性が高いコードとは、少しダサい感じのコードなのに、この現実を受け入れられない。 : デフォルトの名無しさん (ワッチョイ fb01-C1bT [111.90.14.57]) [] 2020/01/18(土) 14:47:55.78:meR2Lc880 わかるわー : デフォルトの名無しさん (ワッチョイ fb01-C1bT [111.90.14.57]) [] 2020/01/18(土) 14:48:34.90:meR2Lc880 みんな同じこと思ってるんだなー : デフォルトの名無しさん (ワッチョイ 75da-A78j [114.184.58.168]) [sage] 2020/01/18(土) 15:12:21.42:G/K26Ddi0 最適化するな、有効なジャバ : ◆QZaw55cn4c (ワッチョイ 2347-ieYb [131.129.114.156 [上級国民]]) [sage] 2020/01/18(土) 16:56:09.39:2kvawVDh0 >保守性が高いコードとは、少しダサい感じのコード なるほど、そうなんですか… : デフォルトの名無しさん (ワッチョイ 6b63-6zBS [153.228.65.196]) [sage] 2020/01/18(土) 16:58:42.51:NF270nDn0 そうなんだ : デフォルトの名無しさん (ワッチョイ 4502-VyS5 [106.167.99.164]) [] 2020/01/18(土) 23:06:18.65:Ov2B9gue0 HttpURLConnection使ってjson文字列をGETで送信したい bodyになにか書き込むと勝手にGET通信じゃなくて POST通信に書き換わってしまうんだがどうすればGETのままbodyに書き込める? : デフォルトの名無しさん (ワッチョイ 5dda-JESV [220.144.30.68]) [sage] 2020/01/18(土) 23:09:15.22:CUwsiqTs0 そもそもHTTPの仕様上、どうやってGETでbodyが送れると? : デフォルトの名無しさん (ドコグロ MM93-rWIW [119.241.53.113]) [sage] 2020/01/19(日) 01:01:44.39:Sewbs9bsM どんだけでかいデータか知らんがurlエンコードしてクエリにセットすりゃいいんじゃね : デフォルトの名無しさん (ワッチョイ e32c-Sfrr [219.162.234.204]) [sage] 2020/01/19(日) 01:13:46.61:qcodQ+dh0 URL のクエリー部分に、JSON を入れる人は、いないw 普通に、キー・値で書け! : 826 (ワッチョイ e32c-Sfrr [219.162.234.204]) [sage] 2020/01/19(日) 06:36:58.45:qcodQ+dh0 以下は、VSCode の拡張機能、REST Client のサンプルだけど、 たぶん、JSON は、POST しかないと思う 以下を、test.http として保存して、 URL を、 ttp://http://localhost:8888 などに変えて、REST Client でやってみれば? GET ttp://https://example.com/comments/1 HTTP/1.1 ### GET ttp://https://example.com/topics/1 HTTP/1.1 ### POST ttp://https://example.com/comments HTTP/1.1 content-type: application/json { "name": "sample", "time": "Wed, 21 Oct 2015 18:27:50 GMT" } : デフォルトの名無しさん (ワッチョイ 455f-FGhO [106.72.150.32]) [sage] 2020/01/19(日) 11:55:03.03:Qx904AID0 publicとかprevateとかつける意味あるの? メンドウクサイんですけど : デフォルトの名無しさん (ワッチョイ a501-H2qE [122.16.239.38]) [sage] 2020/01/19(日) 12:12:33.24:iFGOF6Al0 YOU、全部グローバル変数にしちゃいなYO! : 826 (ワッチョイ e32c-Sfrr [219.162.234.204]) [] 2020/01/19(日) 12:43:27.77:qcodQ+dh0 Ruby でやってみた! 標準のWEBrick サーバーで、 のJSON を、POST で受け取って、そのまま返信する require 'webrick' require 'json' srv = WEBrick::HTTPServer.new( { :BindAddress => '127.0.0.1', :Port => 8888 } ) srv.mount_proc( '/' ) do |req, res| res[ "content-type" ] = "text/plain" # p JSON.parse( req.body ) # JSON を、Ruby Object に変換する事もできる res.body = req.body end Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了 srv.start : デフォルトの名無しさん (ワッチョイ a3a3-9xZB [115.176.101.180]) [sage] 2020/01/19(日) 19:42:05.87:U7GTLDND0 お前みたいなバカは全部privateがお似合いw
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。