◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

★★Java質問・相談スレッド182★★ YouTube動画>12本 ->画像>6枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1542595026/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (アウアウウー Sa73-AAco [106.132.135.194])
2018/11/19(月) 11:37:06.10ID:C68x9bSia

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

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

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

前スレ
★★Java質問・相談スレッド181★★
http://2chb.net/r/tech/1518252580/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
2デフォルトの名無しさん (ワッチョイ ff87-ASYV [115.176.100.236])
2018/11/20(火) 03:38:42.96ID:JZJLduoZ0
カキコ
3デフォルトの名無しさん (ワッチョイ ff51-A3/R [123.1.86.88])
2018/11/24(土) 10:37:52.52ID:6yt0KLFG0
Threadが完了しているかはどうやって調べるんですか?
isInterrupted()とisAliveはあスレッド終了時falseでした。
4デフォルトの名無しさん (ワッチョイ 6f9f-zhOP [175.134.57.7])
2018/11/24(土) 16:28:54.46ID:Q9o1GKtC0
>>3
http://pppurple.hatenablog.com/entry/2017/05/12/234030
5デフォルトの名無しさん (ワッチョイ ff51-A3/R [123.1.86.88])
2018/11/24(土) 17:16:53.81ID:6yt0KLFG0
どうやらisAlive()はstart()前はfalse,start()後実行中はtrue,完了したらfalseのようです。
start前と完了後を区別するにはgetStateが良いようですね
6デフォルトの名無しさん (ワッチョイ ff51-A3/R [123.1.86.88])
2018/11/25(日) 08:53:36.37ID:vfhmRXQZ0
スレッド1がメンバー変数Aを更新、そのあとメンバー変数Bを更新
スレッド2から見て、Bの更新が見えるのにAが見えない、ということはありえますか?
7デフォルトの名無しさん (ワッチョイ cf80-fhi1 [153.181.220.179])
2018/11/25(日) 10:55:13.27ID:bdma9Nzw0
マルチスレッドは前後関係が決まらないから、確実なものはない。
待ち合わせでもしていれば、できるかも

デッドロックもあるし、10年以上開発していないなら無理。
資源が共有されるから、素人がプログラミングできるはずがない!
8デフォルトの名無しさん (ワッチョイ 6f8a-Kv/S [223.218.154.127])
2018/11/25(日) 11:39:22.30ID:0ClRa5n60
スレッドは最初から並列、同期を考えてプログラムするだろう。初心者には無理
9デフォルトの名無しさん (ワッチョイ 6f9f-zhOP [175.134.57.7])
2018/11/25(日) 16:50:34.64ID:k7/W79Is0
>>6
その変数Aが volatile でなければ読む側のスレッドで動いているコードによっては起こり得ると思う。
(もっと他順に更新順序と読む順序の問題でそうなる事もあるが)。

かといって volatile にしただけで安心してはいけない。更にロック掛けた上で読み出した方が良い。
Java なら synchronized 使うとかだな。
10デフォルトの名無しさん (アウアウカー Sa87-Iz74 [182.251.154.85])
2018/11/26(月) 23:37:17.15ID:iInmVawEa
volatileはそのAとBの間に制約があるなら使えないし、A、Bが自身の制約になるときもか。あと他の変数の不変条件になってるなら使えないよ。
ていうかvolatile変数の変更が外から見えないならロックいらんだろ。
11デフォルトの名無しさん (ワッチョイ 5305-XNyg [210.132.144.78])
2018/11/27(火) 00:38:32.20ID:2AqLChXV0
何を言ってるのかわからん。
12デフォルトの名無しさん (ワッチョイ 6f9f-KQkZ [175.134.57.7])
2018/11/27(火) 01:26:54.27ID:IxTjeZ9T0
>>10
制約って?具体的にどういう状態?

privateにして外からgetするメソッドを呼ぶだけのいわゆるプロパティにしてしまえばマシにはなるかもな。
しかしそれだけだとA,Bを個別に読んだら一方しか更新されてない事は起こりうるのでは?
更新する側がロックせずに一つづつ更新している最中に一つづつ読んでしまえば起こりうるよね?
13デフォルトの名無しさん (ワッチョイ ff51-A3/R [123.1.86.88])
2018/11/27(火) 10:43:53.15ID:Kxtwr65F0
1スレッド書き込み、マルチスレッド読み込みの場合、
並行処理による問題が発生する可能性はありますか?
例えばHashMapにアクセスするとして。
14デフォルトの名無しさん (ワッチョイ cf80-fhi1 [153.181.220.179])
2018/11/27(火) 10:50:21.39ID:DSo9/Qg/0
1. スレッドA には、Xが存在しない

2. ここで書き込みスレッドが、X を書き込むと、

3. スレッドB には、Xが存在する
15デフォルトの名無しさん (アウアウウー Sa27-ml8p [106.132.137.248])
2018/11/27(火) 12:39:58.02ID:gTSgzwA4a
>>13
あります。
16デフォルトの名無しさん (ワッチョイ b3af-OcZv [122.24.68.153])
2018/11/27(火) 15:26:01.15ID:r2rVvRkR0
ありまぁ〜す
17デフォルトの名無しさん (ワッチョイ 6f9f-zhOP [175.134.57.7])
2018/11/28(水) 01:33:35.79ID:BkKDQWNJ0
>>13
HashMap のドキュメントに Collections.synchronizedMap() を使う方法が書いてある。
それ使った方が自分でゴチャゴチャ考えるより楽だ。
18デフォルトの名無しさん (アウアウカー Sacf-ILaU [182.251.220.71])
2018/11/29(木) 21:49:08.42ID:wn8bMma4a
排他ロックが無駄だからいちいち同期するなよ。
concurrent collectionつかえ。その用途ならConcurrentHashMapがあるだろ。
19デフォルトの名無しさん (ワッチョイ 22a6-3M3s [123.48.217.134])
2018/12/06(木) 14:31:29.56ID:ncTdmVKO0
ラムダの中でローカル変数のオブジェクトを参照している場合、
そのメソッドを抜けた後そのローカル変数を参照する事は安全ですか?

//in some method
Obj local = new Obj();
GuiPart gui = new GuiPart((event)->local.method(event));
return;//この後ラムダがイベント処理で呼ばれた場合、localは参照可能か?
20デフォルトの名無しさん (ブーイモ MMb3-IAAP [210.138.208.29])
2018/12/06(木) 14:37:21.87ID:U/FtrhZGM
>>19
安全に参照可能だよ
自動生成されたクラスのインスタンスフィールドに保持される
21デフォルトの名無しさん (ワッチョイ 3be3-OBpN [218.33.217.200])
2018/12/06(木) 15:00:26.25ID:fFxLBqGn0
逆に気を付けなければならないのは、
非同期処理などで、外側のオブジェクト(エンクロージングインスタンス)がいつまでも破棄されなくなる可能性があること。
22デフォルトの名無しさん (ワッチョイ 8fb9-aoeu [180.178.88.6])
2018/12/07(金) 02:12:41.95ID:5Mie+W080
匿名クラス(無名クラス)の型について質問です。
ArrayListに格納した後、get()で取り出して使いたいのですが
型名が分からずキャストできません。
どなたか回答をお願いします。
23デフォルトの名無しさん (ワッチョイ 4e9f-n9Ol [175.134.57.7])
2018/12/07(金) 02:50:49.80ID:4kVuFzeP0
>>22
List にキャストすればいいのでは?
24デフォルトの名無しさん (ワッチョイ 17b6-IAAP [220.208.88.114])
2018/12/07(金) 04:50:43.67ID:NzONXxAO0
>>22
クラスを定義するときに継承してるはずなので
instanceofで継承元の型かチェックして
型のクラスにキャストすればいいのじゃないかな

継承先のクラスへのキャストはわからん
2522 (ワッチョイ 8fb9-aoeu [180.178.88.6])
2018/12/07(金) 17:13:48.47ID:5Mie+W080
>>23
>>24
ありがとうございました。

ちょっと俺の説明も分かりにくかったと思いますので、
コードを下に書きますね。
List<Object> al = new ArrayList<>();
al.add(new Object {
__int anonymousField = 5;
__void anonymousMethod() {
____System.out.println(anonymousField);
__}
});
al.get(0).anonymousMethod();

こう書くと、匿名クラスはObject型にキャストされているので、
anonymousMethod()を呼べずコンパイルエラーになります。
そこで最終行でキャスト演算子を使おうと思ったのですが、
匿名クラスの型が分からずキャスト出来なかったんです…。
26デフォルトの名無しさん (アウアウクー MM3f-+0bq [36.11.225.61])
2018/12/07(金) 17:27:22.40ID:bk7fHByDM
言語の限界に挑む系のチャレンジかなんかしてるのかそれ。
27デフォルトの名無しさん (ワッチョイ 227c-OBpN [123.230.34.235])
2018/12/07(金) 18:02:53.57ID: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>として、下のキャストを要らないようにする分けだが。
28デフォルトの名無しさん (スプッッ Sde2-nFRM [1.75.246.154])
2018/12/07(金) 18:14:33.74ID:8/WIy6eid
他で呼ぶことを目的とするなら匿名クラスにしてはだめでは?
2922 (ワッチョイ 8fb9-aoeu [180.178.88.6])
2018/12/07(金) 18:24:24.58ID:5Mie+W080
>>26
そんな大層なことではありませんが…。

>>27
>>28
ありがとうございました。

では匿名クラス内のメンバ(特にメソッド)の存在意義って何なのでしょうか?
30デフォルトの名無しさん (アウアウウー Sadb-MnXc [106.132.136.161])
2018/12/07(金) 18:39:34.95ID:qRyaIDL9a
>>29
そのクラス内で処理を分けて起きたい時に作る。
呼び出されるメソッド一つに全て書くとわかりづらくなる時とかね。
31デフォルトの名無しさん (スプッッ Sde2-nFRM [1.75.246.154])
2018/12/07(金) 18:44:34.94ID:8/WIy6eid
渡した先で処理させるのにitemを厳密にしなくてすむ

>>25の例で言うなら自分で作ったcollectionクラスにanonymousMethodをなんか処理する機能をつけてやれば
渡すitemはanonymousMethodを持ってれば匿名でも実体があっても良くなる
3222 (ワッチョイ 8fb9-aoeu [180.178.88.6])
2018/12/07(金) 23:44:22.73ID:5Mie+W080
>>30
>>31
ありがとうございました。
33デフォルトの名無しさん (ワッチョイ 12a6-3Pua [123.48.217.134])
2018/12/13(木) 23:17:41.00ID: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に依存した他の派生的な総称型をクラス内で定義したい。
これは可能ですか?
34デフォルトの名無しさん (ワッチョイ 36b6-DQC4 [111.90.6.3])
2018/12/13(木) 23:40:07.10ID:Dzj4x6Rs0
>>33
こういうこと?
class A<T> {
 class B<U extends T> {
 }
}
35デフォルトの名無しさん (ワッチョイ 12a6-3Pua [123.48.217.134])
2018/12/13(木) 23:44:58.06ID: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();
}
36デフォルトの名無しさん (ワッチョイ 12a6-3Pua [123.48.217.134])
2018/12/13(木) 23:51:34.03ID:kncoc2aJ0
別の方法で解決できそうです。ありがとうございました
37デフォルトの名無しさん (ワッチョイ 369f-UKyl [175.134.57.7])
2018/12/14(金) 03:07:35.09ID:068kLwWW0
>>36
どんな方法ですか?
38デフォルトの名無しさん (ワッチョイ a68a-mHCk [121.114.127.30])
2019/01/05(土) 19:38:28.30ID: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);
}
}
39デフォルトの名無しさん (アウアウエー Sa5a-ahzL [111.239.160.142])
2019/01/05(土) 19:55:28.65ID:tCoREms1a
>>38
なぜtrueだと思うのか説明しなさい
40デフォルトの名無しさん (ワッチョイ a68a-mHCk [121.114.127.30])
2019/01/05(土) 20:09:53.68ID:oWM93k/k0
>>39
System.out.print(total == 0)がtrueだったからです
41デフォルトの名無しさん (ワッチョイ 3395-6la0 [210.132.144.78])
2019/01/05(土) 23:15:07.20ID:Mw4M2zcY0
新たにビルドしなおしたものを実行していたつもりがエラーになってて古いやつをずっと実行し続けてた的なやつだな。

とりあえずこれ10回詠唱しとけ
「コンパイラの出力は御経じゃない」
42デフォルトの名無しさん (ワッチョイ a68a-mHCk [121.114.127.30])
2019/01/06(日) 00:29:12.69ID:+dMvWsVO0
>>41
内容はJavaSE8Silverの問題集に出ていたものです
解説ではif文の中身が実行されないので初期化によるエラーが出るって書いてあり、
そのことは実際にideoneとかで実行し理解してるのですが
なぜtrueにならないのかがわからないということです
43デフォルトの名無しさん (ワッチョイ 6e01-Dc9L [111.90.9.229])
2019/01/06(日) 00:41:35.13ID:zpMal+Wd0
>>42
えっと、実行時には条件はtrueになるよ

コンパイル時にはtrueになることがわからんので
コンパイラが初期化されないかもってエラー投げるだけっすよ
44デフォルトの名無しさん (ワッチョイ 6e01-Dc9L [111.90.9.229])
2019/01/06(日) 00:49:02.45ID:zpMal+Wd0
↓これでもエラーになるんで変数が条件式にあるとダメみたいね、リテラルならおk

public static void main(String[] args) {
 boolean a = true;
 int b;

 if (a) {
  b = 2;
 }

 System.out.println(b);
}
45デフォルトの名無しさん (ワッチョイ 82d8-tNgF [61.215.127.65])
2019/01/06(日) 00:59:14.50ID:a7U3YVJ70
>>42
そもそもコンパイル通らなくね?
条件が true になるかどうか以前の問題
>解説ではif文の中身が実行されないので初期化によるエラーが出るって書いてあり
これが本当なら説明がおかしいな
if文云々というより単に宣言された x, a, b が初期化されてないからコンパイルエラーになる
if文の中身がtrueになって{}の中が実行されて値が初期化されるかどうかは保証されない
46デフォルトの名無しさん (ワッチョイ 97b3-nLVr [118.5.12.246])
2019/01/06(日) 01:10:49.61ID:T+vTBvBg0
JavaSilverはコンパイル通らないコードについても出題されるからね

初期化によるエラー云々はコンパイラーが吐くエラーメッセージの事を指していると思われ
47デフォルトの名無しさん (ワッチョイ a68a-mHCk [121.114.127.30])
2019/01/06(日) 01:11:57.31ID:+dMvWsVO0
>>43-44
ありがとうございます!助かりました
>>45
本ではif文の条件に合致せず初期化せずにtotal=x*a*bを計算するのでエラーになる
って書いてたのですが…解説がおかしいかどうかはjava初心者なのでよくわかりません
48デフォルトの名無しさん (ワッチョイ 6e02-xhm2 [175.134.57.7])
2019/01/06(日) 01:55:23.01ID:dAFYlv7A0
コンパイラとしては実行されるまで if の条件が成立するかどうかわからないため、成立する場合と成立しない場合の両方を考慮しているだけではないかな?
で、今回のプログラムの場合は条件が成立しないと初期化されない変数が出てくるためコンパイルエラーになる。
49デフォルトの名無しさん (ワッチョイ 02b9-ikDe [123.48.137.100])
2019/01/09(水) 16:45:54.79ID:aoiPLBBd0
HDDバースト事件知ってますか?
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

この手の、ファイル削除系の処理で一歩間違えれば大惨事、というのを防ぐ良い方法はありますか?
50デフォルトの名無しさん (アウアウウー Saeb-KJeM [106.132.132.107])
2019/01/09(水) 21:22:34.95ID:xuLfg6C4a
なんだ物理的にバーストした話じゃないのか
51デフォルトの名無しさん (スップ Sd7f-yTxx [1.66.97.200])
2019/01/10(木) 01:03:37.33ID:V4IVFX9Qd
>>49
健常者に開発させる
52デフォルトの名無しさん (アウアウエー Sa9f-7Mna [111.239.166.242])
2019/01/10(木) 13:56:48.41ID: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)の何が変なのか教えてください。
53デフォルトの名無しさん (オッペケ Srdb-D+Sj [126.34.1.14])
2019/01/10(木) 15:03:26.18ID:4z6CKeNUr
>>52
int型だと例えばn=7のときにn/2は3になるってだけでは
そのせいで手計算とズレるんでしょ
54デフォルトの名無しさん (ブーイモ MM4b-peLi [210.149.251.160])
2019/01/10(木) 20:26:17.36ID:UUY7OixDM
>>52
整数同士の割り算は切り捨て
55デフォルトの名無しさん (アウアウエー Sa9f-7Mna [111.239.166.242])
2019/01/11(金) 09:08:48.15ID:e5yPN/cUa
>>53-54
ありがとうございます。それで解答だと場合分けしてたんですね
場合分けしたくない場合はdoubleで計算して小数点以下が邪魔に感じられたら計算終えてからintにキャストすればいいんでしょうか。遅くなるのかな
56デフォルトの名無しさん (ブーイモ MM4b-peLi [210.149.251.94])
2019/01/11(金) 10:10:51.79ID:se94ZxIpM
>>55
doubleからintにキャストするときも0.9999は0に切り捨てられてしまうから、Math.roundを使ったほうがいいよ。
計算途中で絶対に小数にならない保証があるなら、おそらく52bitまでならそのままdoubleを整数にキャストできるけども
57デフォルトの名無しさん (アウアウエー Sa9f-7Mna [111.239.166.210])
2019/01/13(日) 01:54:50.84ID:Byt7I9dTa
>>56
なるほどなるほど。ありがとうございます。
58デフォルトの名無しさん (ワッチョイ a3a3-A3MQ [115.176.105.72])
2019/02/12(火) 23:11:33.01ID:VqanzRzk0
syncronizedMapとConcurrentHashMapってConcurrentHashMapの方がいいのかな
59デフォルトの名無しさん (ワッチョイ 3db3-tGKk [118.5.12.246])
2019/02/12(火) 23:46:42.62ID:eVAdyGJj0
せやな
60デフォルトの名無しさん (アウアウウー Sa29-EZDe [106.181.159.54])
2019/02/14(木) 21:29:20.64ID:0iIJdx51a
マルチプラットフォームなデスクトップアプリを作るのにJavaを愛用していましたがJavaFXはオプションになるしそもそもJDK/JREもいつまで使えるかわからないので乗換先の言語を探しています。
- GUIアプリを標準で作れる
- マルチプラットフォーム
- できればコンパイラ言語
- 学習コストが低い
でおすすめは何でしょうか?

ご教示方よろしくお願いいたします。
61デフォルトの名無しさん (ワッチョイ 23ad-kWus [27.139.3.34])
2019/02/15(金) 04:13:32.67ID:aMcTHSTs0
JavaからならC#だけど
どこまでやるかだな
Macを入れるか入れないかとか
何系作ってるの?
62デフォルトの名無しさん (ワッチョイ 6d5f-UXAq [106.72.167.0])
2019/02/15(金) 06:17:17.01ID:yAjWMCK+0
c#だとGUIのコード共通化厳しいのでは。

Win+Macなら今さらだけどAdobeAirとか。証券会社のアプリとかで生き残っている。

LinuxもGUI共通化必要なら、現実的なのはjavaくらいしか知らない。
63デフォルトの名無しさん (アウアウクー MMc1-oGo3 [36.11.224.96])
2019/02/15(金) 21:23:54.83ID:FjaN5554M
条件がGUI共通化だけならElectronとかWeb系かな
PWAはどうなってるか知らんけどその内流行るんだろう
64デフォルトの名無しさん (ワッチョイ 13b9-2CcH [123.48.137.100])
2019/02/21(木) 12:06:27.49ID: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;
}
65デフォルトの名無しさん (ワッチョイ fb01-YmSR [111.90.27.175])
2019/02/21(木) 19:48:36.10ID:fprmeCB00
>>64
TestI <- A
TestI <- TestClass
でTestClassをAに変換できないって出てるんでしょ

AはTestIを実装する任意のクラスだから
TestClassから変換できないのは当然のような
66デフォルトの名無しさん (ワッチョイ 13b9-2CcH [123.48.137.100])
2019/02/21(木) 20:51:00.87ID:LculVqLN0
あーそうか
わかりました。ありがとう
67デフォルトの名無しさん (ワッチョイ 13b9-2CcH [123.48.137.100])
2019/02/27(水) 04:09:48.78ID:ZxiXIgw80
interfaceでthisの型をメソッドの引数に使う方法はありますか?総称型を使わずに
これができないとequals的な自クラスの他オブジェクトを受け取るタイプのインターフェースのために
総称型を指定しなきゃいけないので面倒です

public interface TestI{
void method(ThisClass o);
}
68デフォルトの名無しさん (ワッチョイ 53ec-kAzg [115.176.136.8])
2019/02/27(水) 07:02:08.01ID:R7mDgiP40
面倒も何もそれが総称型の意義です
要はComparableみたいなもんでしょ
69デフォルトの名無しさん (ワッチョイ 5161-cnIv [218.231.167.235])
2019/02/27(水) 08:45:57.23ID:Gr4hh2OI0
public interface TestI<T extends ThisClass >{
void method(T o);
}
70デフォルトの名無しさん (ワッチョイ 5161-cnIv [218.231.167.235])
2019/02/27(水) 08:51:23.70ID:Gr4hh2OI0
別に面倒でも何でもないよ。
methodの引数でThisClassの子クラスを受け取ったとしても、
intanceofとかする必要は全くない。
71デフォルトの名無しさん (ブーイモ MM8d-vZil [210.149.251.14])
2019/02/27(水) 12:39:12.56ID:0d3JNljSM
void method(Testl t)じゃあかんの?
72デフォルトの名無しさん (アウアウカー Sa55-kAzg [182.251.192.96])
2019/02/27(水) 12:57:07.94ID:avwBchUKa
>>71
それ毎回キャストが要るやん
73デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100])
2019/02/27(水) 14:30:01.32ID:ZxiXIgw80
でも"thisの型"をデフォルトで使えても良いと思いませんか?
オブジェクトが使用される時常に明らかになっているはずです。
つまり記述を省略できても良い
74デフォルトの名無しさん (ワッチョイ 5161-cnIv [218.231.167.235])
2019/02/27(水) 15:19:00.05ID:Gr4hh2OI0
equals()については、互換性維持。
できないものはできない。
自分で定義するものについては、ジェネリクス使えばよい。
75デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100])
2019/02/27(水) 16:09:27.46ID:ZxiXIgw80
public interface TestI<T extends TestI>{
void method(T o);
}

こう書くと警告でます。extends TestIのところで
TestI<?>と書くんですか?
76デフォルトの名無しさん (アウアウカー Sa55-kAzg [182.251.192.96])
2019/02/27(水) 17:50:52.58ID:avwBchUKa
待って、それを知らずに面倒とか言ってたの
Testl<T>でいいんだよ……
77デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100])
2019/02/27(水) 18:38:23.32ID:ZxiXIgw80
それでも出来るのは最初から分かってるんですが、
意味的にTestIを実装したものしかそこに書かないでしょう?
だからその前提を記述しておきたいという話です。
78デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100])
2019/02/27(水) 18:40:40.28ID:ZxiXIgw80
あと面倒と言ってるのはそのインターフェースを実装しているクラス、
さらにそのクラスを継承したクラス、さらにそれを継承したクラスと
記述箇所が一斉に増えるからです。
抽象クラスが実装しているインターフェースにこういう要件が発生すると実際かなり面倒であることは想像できるはずです。
79デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100])
2019/02/27(水) 18:43:33.03ID:ZxiXIgw80
public abstract class AbClass<T extends AbClass> implements TestI<T>{
}

public abstract class AbClass2<T extends AbClass2> extends AbClass<T>{}

このように次々と続いていくことになります。
そしてこれらすべてで警告が出ます。
80デフォルトの名無しさん (ワッチョイ 13b9-4qoz [123.48.137.100])
2019/02/27(水) 18:51:04.99ID:ZxiXIgw80
上にもありましたがComparable的なインターフェースという事になりますが
このようなインターフェースを継承ツリーの上の方で実装すると問題になります。
通常のインターフェースや、通常の総称型インターフェースでは問題無いんですが、
このようなインターフェースはたびたび継承ツリーの各クラスでそのクラスについての実装を記述する事になります。
だから、thisの型が予約語として扱えると非常に便利だろうと。
81デフォルトの名無しさん (ワッチョイ d9d2-4qoz [220.111.235.184])
2019/02/27(水) 19:46:32.65ID: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>{}
8275 (ワッチョイ 13b9-4qoz [123.48.137.100])
2019/02/27(水) 21:45:06.35ID:ZxiXIgw80
>>81
できました。
83デフォルトの名無しさん (ワッチョイ d9d2-kAzg [220.111.235.184])
2019/02/27(水) 23:40:06.72ID:K3ri/4ZM0
>>82
良かったです
84デフォルトの名無しさん (ワッチョイ 2361-CeLW [61.245.58.39])
2019/02/28(木) 08:07:59.94ID:RsBX7ota0
AbClass<T extends AbClass<T>>
こういうのってどういうのを想定してるの?
シングルトンではないenumみたいなもの?
85デフォルトの名無しさん (ワッチョイ 23b9-SKB1 [123.48.137.100])
2019/02/28(木) 17:19:13.77ID:X2FmV3yG0
継承ツリーの各クラスでTが連鎖的に定義されるような状況があるとき
extends AbClass1<T>の意味は、末端の具象クラスで総称型に指定されたTが
一番上の抽象クラスまで連鎖的に指定されている事を要求しているような意味がある。
86デフォルトの名無しさん (ワッチョイ 23b9-SKB1 [123.48.137.100])
2019/02/28(木) 17:23:29.93ID:X2FmV3yG0
AbClass<T extends AbClass<T>>これの
extends AbClass<T>この部分の意味は、って話
87デフォルトの名無しさん (アウアウカー Sa91-6Vjj [182.251.141.226])
2019/03/01(金) 23:04:20.59ID:KZb5YrRoa
>>84
抽象クラスで定義したメソッドで自分の未知のサブクラス返すときとか
88デフォルトの名無しさん (ワッチョイ aded-Hr0W [122.135.18.167])
2019/03/04(月) 16:25:49.04ID:v/u/gYja0
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を使用しています。
89デフォルトの名無しさん (ワッチョイ aded-Hr0W [122.135.18.167])
2019/03/04(月) 19:33:49.60ID:v/u/gYja0
解決しました
90デフォルトの名無しさん (ワッチョイ e3a3-+f+8 [115.176.105.72])
2019/03/04(月) 21:04:50.65ID:/O719wMt0
解決した方法ぐらい書けよクソが
91デフォルトの名無しさん (ワッチョイ aded-Hr0W [122.135.18.167])
2019/03/04(月) 21:09:40.54ID:v/u/gYja0
getSequencer(true)
または
getSequencer(false)

オブジェクト思考じゃないシンセサイザーが
くっつくかどうか決まる

https://osdn.net/projects/midicrossport/howto/usage



https://osdn.net/projects/midicrossport/scm/svn/blobs/head/V-0.2%20AddPlayer/src/net/sourceforge/midicrossport/swing/MXPortMIDIPlayer.java

で早速使いました
92デフォルトの名無しさん (ワッチョイ aded-Hr0W [122.135.18.167])
2019/03/04(月) 22:05:35.70ID:v/u/gYja0
javaは隠してるメソッド多いよね
今回のは過去のソースの動作などの
整合性のためだと思うけどさ

肝に銘じて作りこんでいきます

4時間悩んでjavadocみたら5秒で解決したわ
93デフォルトの名無しさん (アウアウクー MM21-tQZn [36.11.225.62 [上級国民]])
2019/03/05(火) 20:19:30.79ID:EdVc4MwEM
>>92
そういうのは非推奨になってないか?
94fusianasan (ワッチョイ e3a3-+f+8 [115.176.105.72])
2019/03/06(水) 02:05:18.33ID:n2VNtnMC0
交差型キャストの使い道、ある?
95デフォルトの名無しさん (ワッチョイ e3a3-+f+8 [115.176.105.72])
2019/03/06(水) 02:12:58.66ID:n2VNtnMC0
ついでにListの要素をEnumしか取れなくしたEnumListみたいなのある?(ググり済み)
96デフォルトの名無しさん (ブーイモ MM43-VPTz [49.239.68.122])
2019/03/06(水) 12:33:32.69ID:twdiy1n8M
>>95
List<Enum>じゃあかんのか?
97デフォルトの名無しさん (ワッチョイ e3a3-+f+8 [115.176.105.72])
2019/03/06(水) 14:46:27.86ID:n2VNtnMC0
>>96
EnumSetとかEnumMapみたいな省メモリな実装があったらいいなーと思って
98デフォルトの名無しさん (ブーイモ MM43-VPTz [49.239.68.122])
2019/03/06(水) 18:26:17.49ID:twdiy1n8M
>>97
ないよ♪
99デフォルトの名無しさん (アウアウカー Sa91-cbQp [182.251.184.155])
2019/03/06(水) 18:31:31.19ID:izEJjivba
重複がないからこそ連番の配列として扱えてるのに、重複が許されるリストじゃやりようがない
100デフォルトの名無しさん (ワッチョイ ab5f-BAw6 [106.72.150.32])
2019/03/07(木) 12:03:41.01ID:gGJGAOob0
べき乗の計算式を作りたいのですがうまくいきません

(例)
a=5;
a=a^2;

上記の例のようにしても、結果が25になりません
Javaではべき乗計算はサポートしていないのでしょうか?
101デフォルトの名無しさん (ワッチョイ 8790-0yyx [182.21.48.176])
2019/03/07(木) 12:36:39.64ID:p9KSjCQy0
ワロタ。演算子じゃなくてそういうメソッドがあるはず。Mathクラスのメソッド調べてみん
102デフォルトの名無しさん (アウアウウー Sa1b-hLQV [106.132.137.60])
2019/03/07(木) 12:47:48.74ID:NXRNz+RGa
>>100
ない。Math.pow()使う。
https://www.javadrive.jp/start/math/index4.html
103デフォルトの名無しさん (ワッチョイ ab5f-LDqw [106.72.163.96 [上級国民]])
2019/03/07(木) 12:56:15.23ID:fEnrnvq10
>>100
VB系?なんで他の言語と同じだと思うのか?
104デフォルトの名無しさん (ワッチョイ dfe9-/kwh [222.15.235.177])
2019/03/07(木) 17:27:05.50ID:GsPaI+yW0
XORは大昔自前のカーソルを作った時に使った記憶がある。
覚えている限りその後1度も使ってない。
105デフォルトの名無しさん (ブーイモ MMfe-fVIY [163.49.205.152])
2019/03/07(木) 17:42:58.27ID:5OHvHrCkM
>>103
演算子ってだいたいどれも同じでしょ
Javaが変態じゃなければ
106デフォルトの名無しさん (ワッチョイ 4eda-ouaW [223.218.132.71])
2019/03/07(木) 20:29:39.29ID:wbxrkc+00
VBは変態
107デフォルトの名無しさん (アウアウウー Sa1b-hLQV [106.132.137.60])
2019/03/07(木) 20:37:45.84ID:NXRNz+RGa
よくぞ私が変態であることを見破った。
君も仲間にしてあげよう。
108デフォルトの名無しさん (ワッチョイ 4eda-ouaW [223.218.132.71])
2019/03/07(木) 20:58:32.73ID:wbxrkc+00
俺は満月の夜に変態する
109デフォルトの名無しさん (ワッチョイ ab5f-LDqw [106.72.163.96 [上級国民]])
2019/03/07(木) 23:01:15.30ID:fEnrnvq10
>>105
同じじゃないよ。
110デフォルトの名無しさん (アウアウカー Sa27-F7Qp [182.251.183.244])
2019/03/07(木) 23:02:42.20ID:oTfLqBj1a
Scala「演算子ってなんだっけ」
111デフォルトの名無しさん (ワッチョイ ce01-WpCY [111.90.4.72])
2019/03/08(金) 06:06:53.29ID:hih03Kc60
>>109
同じだとは言ってない
112デフォルトの名無しさん (アウアウカー Sa27-C/vZ [182.251.233.135])
2019/03/09(土) 17:58:45.34ID:IPK2i5wVa
二項^は言語によって意味が違う筆頭だから。

>>94
交差型へのキャストそのものが目的でないならラムダ式をSerializableやCloneableにするためかな。
(Lambda & Serializable)や(Lambda & Cloneable)でキャストするとコンパイラがSerializableやCloneableを導出する。
113デフォルトの名無しさん (ワッチョイ 82a3-QfcG [115.176.105.72])
2019/03/11(月) 23:15:46.61ID:+cXkYAGY0
>>112
ラムダをシリアライズとかきもいし、cloneできるようにするっていうのもキモいな…なんでだろう
それはともかく解説ありがとう
114デフォルトの名無しさん (スップ Sd5f-nIdv [49.97.105.39])
2019/03/15(金) 10:24:40.99ID:Ok3y758Id
servletの質問です

httpServletを継承したクラスで、web.xmlに記載されたコンテキストの初期化パラメータにアクセスしたいとき、まずServletContextオブジェクトを取得すると思います。

this.getServletContext()

getServletConfig().getServletContext()

その方法として上記2つがあるようですが、
ServletConfigオブジェクトを経由するかしないかの違いだけで、
どちらでも同じオブジェクトを得られると考えて大丈夫でしょうか?

また、どちらの方法が推奨される、または一般的などありますか?
115デフォルトの名無しさん (ワッチョイ 2361-YxN5 [218.231.194.55])
2019/03/15(金) 15:28:02.60ID:oN7LPR9/0
上は下のショートカット。
のはずなんだけど、どの実装だったか忘れた(tomcatかjetty)けど、上だとnullを返すものがあったりする。
116デフォルトの名無しさん (ワッチョイ efda-h1+v [223.218.107.217])
2019/03/15(金) 16:26:03.07ID:qau92T4C0
作ったプログラムがきちんと動作しそうもない初心者の匂い
117デフォルトの名無しさん (ワッチョイ 3fb9-geq4 [123.48.137.100])
2019/03/17(日) 20:07:31.39ID: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) {
}
}
118デフォルトの名無しさん (ワッチョイ 3fb9-geq4 [123.48.137.100])
2019/03/17(日) 20:09:43.63ID: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) {
}
}
}
119デフォルトの名無しさん (ワッチョイ 3fb9-geq4 [123.48.137.100])
2019/03/17(日) 20:11:36.70ID:WG0MhxwJ0
実行時のメモリ状況とかなんかそういうものに依存して変わってしまうのかどうか。
HashMapでなくConcurrentHashMapはどうか、HashSetはどうかとか、知りたいです。
120デフォルトの名無しさん (ワッチョイ bfa3-vdqk [115.176.105.72])
2019/03/18(月) 18:40:58.81ID:dcUw/hqV0
自分で確かめてみればいいのに(΄◉◞౪◟◉`)
予想としてはちゃんと復元できると思うけど
121デフォルトの名無しさん (ブーイモ MM5f-7Wyv [49.239.66.129])
2019/03/18(月) 18:46:45.54ID:YtFzpwnZM
たまたま同じになるのか
必ずそうなるのか確証が欲しいのでござろうよ
122デフォルトの名無しさん (ワッチョイ 3fb9-geq4 [123.48.137.100])
2019/03/18(月) 18:50:01.07ID:cWWfW/xk0
復元できるか、じゃなくて
どんな実行時状態でシリアライズしてもバイナリレベルで同値になるか、が知りたい
123デフォルトの名無しさん (ワッチョイ bfa3-vdqk [115.176.44.125])
2019/03/18(月) 22:49:36.52ID:XEyYngRi0
>>122
ま、おそらく同一でしょう。
https://ideone.com/bnSo8d
124デフォルトの名無しさん (ワッチョイ 5390-TzFu [182.20.42.120])
2019/03/18(月) 23:48:32.22ID:Hb2NJ3+s0
保証とかいってるから、そんな何々だろうレベルの言質じゃなくて仕様書レベルを求めてるんじゃねぇかな
125デフォルトの名無しさん (ワッチョイ b3da-gh5u [222.150.118.7])
2019/03/18(月) 23:55:46.27ID:5wxGaqei0
オラクルは儲かってるのかな?
126デフォルトの名無しさん (ワッチョイ 53da-h1+v [118.19.13.75])
2019/03/19(火) 09:51:49.84ID:9FtXmaQk0
おそらく計算機のど素人と推察される
127デフォルトの名無しさん (ワッチョイ cf7b-h1+v [153.198.51.41])
2019/03/20(水) 04:13:13.63ID:P9Hv23UK0
Java SE 12
http://www.oracle.com/technetwork/java/javase/downloads/
128デフォルトの名無しさん (ワッチョイ 1aa3-pM/3 [115.176.44.125])
2019/03/21(木) 01:07:42.56ID:KPwU/5400
業務で全部テストをパスしても100%瑕疵がないことを保証できないのと同じ
そんなに確実にしたいんだったらJavaの言語規格とjava.util.HashMapのソースでも嫁
129デフォルトの名無しさん (アウアウカー Sa73-9FTr [182.251.224.132])
2019/03/27(水) 22:59:38.84ID: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.
仕様に書いてある。

>>126の言う通りだろう。
130デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151])
2019/03/27(水) 23:36:48.05ID:BBWM5zqe0
goのように意図的にランダムにしない限り
一致すると思うけどね実装が変わるわけじゃないし
状態も同じになるっしょ
131デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151])
2019/03/27(水) 23:39:11.95ID:BBWM5zqe0
>>129
ハッシュテーブルがリサイズされるから保証されないだけなんじゃないかな、普通に考えてインスタンス生成して同じ数の同じデータ打ち込んだら同じ並びになると思うけど
132デフォルトの名無しさん (ワッチョイ bada-DTGA [125.203.169.233])
2019/03/27(水) 23:43:26.75ID:i+BOT5k20
素人が素人のフォローw
>どんな実行時状態でシリアライズして
>普通
133デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151])
2019/03/27(水) 23:47:11.56ID:BBWM5zqe0
>>132
シリアライズされる状態は一つじゃん
デシリアライズのたびに状態が変わるとは思えないなあ
134デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151])
2019/03/27(水) 23:48:33.66ID:BBWM5zqe0
チミたち考えが浅いよ薄っぺらい
135デフォルトの名無しさん (ワッチョイ f701-Bd21 [202.72.70.151])
2019/03/27(水) 23:52:10.28ID:BBWM5zqe0
質問者は鋭いよ
それに気づく僕も賢い
回答者は残念
136デフォルトの名無しさん (ワッチョイ 9fda-ZTi4 [125.203.169.101])
2019/03/28(木) 02:21:03.21ID:fobYAqGk0
>>133
素人さんこんばんは
137デフォルトの名無しさん (ワッチョイ b701-ep2I [202.72.70.151])
2019/03/28(木) 06:06:45.69ID:m1sw7rzN0
>>136
お前が素人
138デフォルトの名無しさん (ドコグロ MMdf-1rTY [119.241.244.226])
2019/03/28(木) 07:12:09.21ID:HZOnw3MEM
質問者は「保証しますか?」って聞いてるのにID:BBWM5zqe0は「思えないなあ」とかw
グダグダ言う前にもう少し落ち着いて質問読み返せよ
139デフォルトの名無しさん (ワッチョイ b701-ep2I [202.72.70.151])
2019/03/28(木) 07:40:15.21ID:m1sw7rzN0
>>138
保証されるかはわからないが僕の結論
>>129は質問の本質を理解してなかったようだから
それはおかしいよって
140デフォルトの名無しさん (ワッチョイ b701-ep2I [202.72.70.151])
2019/03/28(木) 07:43:49.09ID:m1sw7rzN0
質問読み直したけど129はアホ
141デフォルトの名無しさん (ドコグロ MMdf-1rTY [119.241.244.226])
2019/03/28(木) 08:13:59.98ID:HZOnw3MEM
どうみてもお前の方がアホとしか見えないけど…
142デフォルトの名無しさん (ブーイモ MM3b-ep2I [210.149.254.246])
2019/03/28(木) 08:27:35.24ID:td1zwKnnM
順番が保証されないコレクションの説明は
シリアライズでバイナリが一致することは保証されない
ことを意味するものではない

ニンジンが赤いからブタさんはピンク色なんだと言ってるようなもの
143デフォルトの名無しさん (ブーイモ MMbf-ep2I [49.239.68.160])
2019/03/28(木) 08:46:48.07ID:8uqRVz3RM
関連がありそうなものをあげてるだけで論理も何もない
雰囲気でJavaをやってるのかと

葉加瀬太郎をググったらパパイヤ鈴木が
表示されたから二人はプリキュアと言ってるようなものでしょうが!

ちなみに僕はJavaに魂と全財産を捧げる覚悟です
144デフォルトの名無しさん (ブーイモ MMbf-ep2I [49.239.68.160])
2019/03/28(木) 08:48:02.48ID:8uqRVz3RM
僕今汽車に乗ってるからip変わるよ
文体でわかるでしょ
145デフォルトの名無しさん (ブーイモ MMbf-ep2I [49.239.68.160])
2019/03/28(木) 08:57:19.80ID:8uqRVz3RM
素人呼ばわりしたことを僕に謝って欲しい
僕はJavaに残りの人生すべてかけてる
子供も恋人も友達も作らなかった
僕は30億のデバイスで動くJavaと共に生きるんだ
146デフォルトの名無しさん (アメ MM3b-Dmdl [210.142.96.138])
2019/03/28(木) 09:08:31.13ID:cT63rms5M
>>143
スゲェたとえw
147デフォルトの名無しさん (ドコグロ MM6b-1rTY [118.109.188.141])
2019/03/28(木) 12:30:23.43ID:yd30y0n6M
>>142
> シリアライズでバイナリが一致することは保証されない
> ことを意味するものではない
内部の順序は違うけどシリアライズする時には常に同じ順序でシリアライズするとか普通はやらないからやると言うならその根拠出してくれ
148デフォルトの名無しさん (ブーイモ MMbf-ep2I [49.239.68.160])
2019/03/28(木) 18:55:29.38ID:8uqRVz3RM
>>147
僕そんなこと言ってないから
その根拠出さない
149デフォルトの名無しさん
2019/03/28(木) 20:13:48.28
Java歴2年ぐらいです

Javaで独自のファイルリネームソフト作りたいんだけど、今の時代のJavaでのGUIに丁度いいフレームワークやライブラリって何がある?
5年ぐらい前にちょっとSwingに触れたんだけど、他にもあるみたいで、どう違うのかが分からない
それぞれの違いも強みも分からないんだが、何かアドバイスある?
150デフォルトの名無しさん (アウアウウー Sa9b-dxKi [106.132.131.237])
2019/03/28(木) 21:05:44.98ID:KhTRBxbZa
シーン
151デフォルトの名無しさん
2019/03/28(木) 21:09:30.98
Javaの入門書やJavaでのWeb関連の入門書については本は沢山出てるのに
GUIとなると全然本が無い
俺はJavaしか知らないからJavaだけでGUIやりたいのに
152デフォルトの名無しさん (アウアウウー Sa9b-dxKi [106.132.131.237])
2019/03/28(木) 21:10:36.27ID:KhTRBxbZa
AWTでも使っとけ
153デフォルトの名無しさん (ワッチョイ 9fda-ZTi4 [125.203.169.35])
2019/03/28(木) 21:26:32.87ID:DnYr279r0
FXが新しいけど
154デフォルトの名無しさん (ラクッペ MMcb-6d7l [110.165.218.188])
2019/03/28(木) 21:27:09.63ID:ccwG1GmHM
あれ消えたんじゃなかったっけ?
155デフォルトの名無しさん (ワッチョイ 9fda-ZTi4 [125.203.169.35])
2019/03/28(木) 21:44:55.82ID:DnYr279r0
Java SE 11で止めたみたいね
156デフォルトの名無しさん
2019/03/28(木) 21:59:24.58
じゃあJavaでGUIってどうなんの?
そもそも想定されてないの?
157デフォルトの名無しさん (アウアウエー Sadf-9gjM [111.239.67.116])
2019/03/28(木) 22:40:07.29ID:eBl2daiha
ググれば山のように出てくるのに何で聞くの?
158デフォルトの名無しさん (ラクペッ MMab-SZwg [134.180.1.223])
2019/03/28(木) 22:54:34.01ID:K2f2dATQM
ID消してる奴とか相手にするなよ
159デフォルトの名無しさん
2019/03/29(金) 00:02:31.06
とっかかりの所だけ教えて欲しい
アマゾンで書籍を検索してもSwingだのJavaFXだのヒットしても出版年がどれも4,5年以上前のモノばっかり
俺は新しい技術で学習したいのに、仮にSwingで学んだとしても世間で役に立たなくなってしまうようなのはさすがにいや
160デフォルトの名無しさん (ワッチョイ bf02-PjTv [175.134.57.7])
2019/03/29(金) 03:35:37.24ID:SC13fhfQ0
>>154
JDKに含めて配布するのを止めただけでは?あのライブラリそのものはフリーで生き続けてると思うが。
161デフォルトの名無しさん (ワッチョイ bf02-PjTv [175.134.57.7])
2019/03/29(金) 03:37:10.81ID:SC13fhfQ0
>>159
君が新しいの作って世界中に広めれば良い。
162デフォルトの名無しさん (ワッチョイ 9f01-1rTY [219.204.123.70])
2019/03/29(金) 06:19:17.41ID:K/KVc7630
>>159
Java自体の先行きが怪しいのに…
163デフォルトの名無しさん (アウアウエー Sadf-9gjM [111.239.60.188])
2019/03/29(金) 12:23:07.42ID:6mM1A6nEa
>>159
まあでも4,5年は生き残っている技術ではあるわけで
最新の技術は明日消えてもおかしくない
swing, spring, javafx あたりでいいんじゃないの
個人的には java そのものを進めないけどな
164デフォルトの名無しさん (アウアウウー Sa9b-dxKi [106.132.132.117])
2019/03/29(金) 13:43:50.35ID:yvHYr2oUa
Kotlinもよろしく
165デフォルトの名無しさん (ワッチョイ 3761-Syny [218.231.90.57])
2019/03/29(金) 14:20:06.19ID:sD1xGsa70
>>159
Swingが一番いい。昔から安定してるし、使いやすいし、
分かり易く、美しく、プログラマからはコントロールしやすい。
恐らく現存する ToolKit の中でも最も美しい設計だと思われる。
166デフォルトの名無しさん (ワッチョイ 3761-ycr5 [218.231.141.137])
2019/03/29(金) 17:55:11.26ID:ueEql8o20
Kotlinだと探せば、Swingを美しくラップしてくれるライブラリとかありそうだけどな。
DSLで宣言的に書けるような。
167デフォルトの名無しさん (ワッチョイ 9f80-TeGn [211.11.15.158])
2019/03/29(金) 18:49:42.37ID:Zeo6kkdW0
>>159
Java FXは死亡したのでSwingを使うことになるが
Swingは全然新しくなってないので古い資料で十分
新しくなる見込みもない

「JavaGUIプログラミング JavaSE6対応」のVol.1とVol.2買っとけ
168デフォルトの名無しさん (オッペケ Sr0b-zF5j [126.211.116.13])
2019/03/29(金) 20:21:36.86ID:llWWvfq2r
swingがいいと思う。
pure java で使いやすい。
169デフォルトの名無しさん (アウアウウー Sa9b-dxKi [106.132.132.117])
2019/03/29(金) 20:54:44.53ID:yvHYr2oUa
え?Swing はベースが awt だから pure java ではないよな?
170デフォルトの名無しさん (ワッチョイ bfda-ZTi4 [223.218.130.253])
2019/03/29(金) 21:02:05.08ID:FFMJozVB0
私の小鳥は何処?
171デフォルトの名無しさん (ブーイモ MM3b-ep2I [210.149.250.22])
2019/03/29(金) 22:41:41.56ID:jCJGGG5lM
>>169
ん?
172デフォルトの名無しさん (オッペケ Sr0b-zF5j [126.211.116.13])
2019/03/29(金) 22:59:32.50ID:llWWvfq2r
ちょっと何言ってんのか分かんないっす。
173デフォルトの名無しさん (ワッチョイ bfda-ZTi4 [223.218.130.253])
2019/03/29(金) 23:02:34.96ID:FFMJozVB0
馬鹿乙
174デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.134.139])
2019/03/30(土) 17:29:34.66ID:2+xyc9oI0
初心者なんですがクラスでインポートしたクラスインスタンスを作った後にそのインスタンスをメインメソッドで呼び出すって事は出来ないんですか?
175デフォルトの名無しさん (ワッチョイ bf01-Gaau [111.90.7.238])
2019/03/30(土) 19:26:42.86ID:M3wvGATb0
>>174
ちゃんと説明して!
176デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.171.50])
2019/03/30(土) 20:43:48.96ID:ngbl3dxd0
>>175
ちゃんとエスパーしてください
177デフォルトの名無しさん (ワッチョイ 97e9-r4m/ [222.15.235.177])
2019/03/30(土) 20:54:22.07ID:XWeRwMKO0
こんな感じか

public class Test{
static String s = new String("a");
public static void main(String[] args){
System.out.println (s) ;
}
}
178デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.166.59])
2019/03/31(日) 02:11:44.91ID:9aPRYZvk0
えーとですね例えばリストクラスとかをあるクラスにインポートしてインスタンス化した後そのインスタンスをメインメソッドのあるクラスで呼んで使う場合どうすればいいのかと考えたんです。

今のところメインメソッドのあるクラスでしかインポートした事ないので他のクラスでリストなどの配列処理をさせてその処理の結果をメインメソッドで出力したいのです。
179デフォルトの名無しさん (ワッチョイ bf02-9gjM [175.134.57.7])
2019/03/31(日) 06:06:39.63ID:x4Dlbn8C0
>>178
そのクラスのメソッドから List のインスタンス返せば良いだけでは?
何に悩んでるかよくわからない。
180デフォルトの名無しさん (ワッチョイ 3761-ycr5 [218.231.194.81])
2019/03/31(日) 09:18:12.51ID:RM3UTWN00
staticメソッドとインスタンスメソッドの区別がついてないだけだろ。
181デフォルトの名無しさん (ワッチョイ 3701-m1Ef [122.24.34.20])
2019/03/31(日) 10:00:29.29ID:bS6sgKsX0
staticでない変数をstaticコンテキストから参照することはできません
182デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.184.247])
2019/03/31(日) 10:11:45.90ID:CwgH065r0
>>179
返信ありがとうございます
そのやり方をコードで見せてもらえませんか?
183デフォルトの名無しさん (ワッチョイ 97e9-r4m/ [222.15.235.177])
2019/03/31(日) 10:14:59.85ID: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;
  }
}
184デフォルトの名無しさん (ワッチョイ 57da-ZTi4 [118.19.12.91])
2019/03/31(日) 10:21:19.41ID:dQUnpGay0
初心者スレでやれよ
185デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.184.247])
2019/03/31(日) 10:32:54.83ID:CwgH065r0
>>183
ありがとうございます!!メソッドの中でインスタンスを生成するのとそのインスタンスメソッドをメインメソッドで代入する時の型はどうすればいいのかが分かんなかったんです。

ただ自分のコードで書いたらメインJavaの操作は安全ではありませんと出てコンパイルエラーになる(´・ω・`)
186デフォルトの名無しさん (ワッチョイ 9701-g8C6 [126.161.184.247])
2019/03/31(日) 10:43:23.73ID:CwgH065r0
調べたらエラーじゃなくて警告なんですね実行できました!!初心者スレでするべきでしたね答えてくれた方々ありがとうございました^_^
187デフォルトの名無しさん (ワッチョイ 37a3-exnd [218.226.212.158])
2019/04/01(月) 01:52:33.40ID://wZRuJn0
>>177
こら!StringのコンストラクタにString渡すんじゃない!
188デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92])
2019/04/06(土) 13:59:48.50ID:2ennWA4x0
メインアプリのプロジェクトA
そのアップデータのプロジェクトB
があります。メインアプリもアップデータも自己完結型パッケージにして
1個のzipかインストーラでインストールする予定です。
あとBからAのクラスを参照したい。

それで今こう考えてるんですが妥当なのかどうか。
・プロジェクト参照でBの開発中にAのクラスやライブラリを参照することができる
・自己完結型パッケージにするときAとBでclassファイルやjarを共通化できる?
・実行可能ファイルが複数あっても自己完結型パッケージにできる?
189デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92])
2019/04/06(土) 14:08:17.53ID:2ennWA4x0
疑問を追加します
・自己完結型パッケージにおいて、アップデータを実行しているJREをアップデータが更新できるのか?
190デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92])
2019/04/06(土) 14:34:50.23ID:2ennWA4x0
加えます。
・Java8よりJava9以降のJigsaw対応バージョンの方が自己完結型パッケージのサイズは小さくなる?
・ライセンスを確認したところ独自のソフトウェアと同梱する場合JDKを再配布しても良いようだった。
https://www.oracle.com/technetwork/jp/articles/java/ja-topics/jdk-release-model-4487660-ja.html
>「ユーザーが開発したソフトウェアとともに配布すること」という制限事項があります
・アップデータでインストールされた自己完結型パッケージのJRE部分を丸ごと削除して新しいものに置き換える動作はライセンスの範囲内のように読める。

つまりデスクトップアプリでメインアプリ+アップデータという構成でどうやればいいのかなと。
自己完結型パッケージ+Java8とか考えてるんですが、
OpenJDKなのかOracle JDKなのかとか選択肢が多くてちょっと混乱してます。
191デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92])
2019/04/06(土) 14:45:29.44ID:2ennWA4x0
・AdoptOpenJDKというのがあり、OracleJDKやOpenJDKなどと異なる”ビルド”であると
説明されますが、ソースコードが同じなのにビルドでどれだけ変わるんですか?
これまでOracleJDKで開発してきたソースコードはAdoptOpenJDKに移行すると問題が生じますか?
192デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92])
2019/04/06(土) 15:18:21.79ID:2ennWA4x0
Javaのビルドについて考えてるとブラウザのタブがどんどん増えていく・・・
Correttoが良さそうですね。

HotSpotの代用としてGraalVMが作られているようで、じきにこれがHotSpotを性能で上回るでしょう。
しかも少なくとも商業的にはOracleが独占的ライセンスを維持する可能性が高く、
Oracle以外のJREでは利用できないでしょう。
つまりOpenJDKビルドが乱立している状況はHotSpotが自由なライセンスで公開されている事に依存していて、
OracleがGraalを始動させたら終わってしまうかもしれないということです。
現時点でGraalはHotSpotの性能を上回っていません。
193デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92])
2019/04/07(日) 10:19:05.70ID:cWSWTJIR0
何で自己完結型はJREを含めるのにexeを作るんだ?
同梱されたJREで ./path/to/jre/bin/java app.jar でいいだろ
194デフォルトの名無しさん (ワッチョイ 25da-BZhk [114.180.157.239])
2019/04/07(日) 11:27:31.20ID:PGBDtD6t0
それでいくら払えるの?
195デフォルトの名無しさん (ササクッテロ Sp49-CDF1 [126.33.102.109])
2019/04/08(月) 18:05:51.31ID:wSfHRAdHp
ポリモーフィズムって過程はともかく同じメソッドの呼び方で様々な結果が出れば良いって考えなんだけど違う?
196デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92])
2019/04/08(月) 18:13:17.86ID:4OqfLsPj0
クラス、抽象クラス、interfaceと多数の型を備えている事では?
197デフォルトの名無しさん (ワッチョイ abda-6m8T [121.115.237.243])
2019/04/08(月) 21:56:49.44ID:+97MZh9m0
異なる具象クラスのインスタンスを
まとめてメソッドに渡せる仕組みだと勝手に思ってる

象クラス、麒麟クラス、うさぎクラス
まとめて受け取る動物メソッドみたいなもん
198デフォルトの名無しさん (アメ MMe1-3NqX [210.142.96.72])
2019/04/09(火) 01:24:14.25ID:03qzHG/tM
バナナゴリラジャングル問題
199デフォルトの名無しさん (アウアウウー Sa91-T5wd [106.132.124.226])
2019/04/09(火) 13:15:30.33ID:xq+Mg1lAa
レールの幅が同じなら違う車両も乗せて走らせられるみたいな
200デフォルトの名無しさん (ワッチョイ e394-c04X [123.48.66.92])
2019/04/09(火) 22:43:07.81ID:3cQd1WBf0
”様々な結果が出れば良い”
これだと引数が違えば違う結果が出るから妥当じゃない
逆に異なる型の異なるメソッドを呼び出したとしても同じ出力になるかもしれない
1種類の型に対して定義されたメソッドが複数の型に対して機能する、ってことだ
201デフォルトの名無しさん (ワッチョイ 23a3-4FRu [218.226.211.189])
2019/04/11(木) 23:44:09.20ID:jdRk1pWI0
Function<A, B>とFunction<B, R>を合成してFunction<A, R>にしたい
そしてふたつのConsumer<T>を合成してConsumer<T>にしたい
教えてクレメンス
202デフォルトの名無しさん (ワッチョイ 1e01-AWLV [111.90.21.145])
2019/04/12(金) 00:40:24.29ID:lCQDwLY00
>>201
andThenメソッドでどう?
203デフォルトの名無しさん (ワッチョイ d302-eS/W [106.158.104.38])
2019/04/12(金) 01:37:06.31ID:kPkxqpeR0
>>200
歴史的な経緯もある。
オーバーロード・オーバー・ライドの多態性が先で、テンプレート(ジェネリクス)が後だから、時代によって勧める多態性が違う。
204デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131])
2019/04/12(金) 15:11:37.91ID:f02m+jwt0
EclipseでコンパイルレベルJDK11までしか選べないんだけど
まだJDTが12まで対応してないとか?
205デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131])
2019/04/12(金) 15:23:21.41ID:f02m+jwt0
自己解決。ベータ版のプラグインを入れる必要があったようで
206デフォルトの名無しさん (ドコグロ MMaa-x1Th [119.243.54.194])
2019/04/12(金) 16:44:45.43ID:LhXUTlO1M
>>204
eclipseはJDK8と心中だろう
そんな最新のJDK使える開発で未だにeclipseに拘る意味がわからない
いい加減IntelliJに乗り換えろよ
207デフォルトの名無しさん (ワッチョイ 6bda-yqpC [114.190.255.223])
2019/04/12(金) 16:47:18.07ID:ob9MV6nx0
有料じゃないと使えないとか
208デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131])
2019/04/12(金) 22:41:55.90ID:f02m+jwt0
IntelliJは使ったこと無いな
NetBeansよりオススメ?
209デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131])
2019/04/13(土) 00:02:18.39ID:UkAWtOas0
試しにNetBeans, IntelliJ両方入れてみたけど重くてもEclipseのUIが一番でしょ
210デフォルトの名無しさん (ワッチョイ 67e9-clLQ [222.15.235.177])
2019/04/13(土) 09:14:21.94ID:zAmtHmMK0
Eclipseって立ち上げが異様に遅くない?うちだと2分くらいかかるよ。Windowsのアップデートが来るとうんざりする。
211デフォルトの名無しさん (ワッチョイ 2387-IujH [218.41.189.138])
2019/04/13(土) 19:18:26.87ID:a4r2Gpw40
IBMは何でEclipseで無駄な開発をしたのかね。無償提供して何か報われたのかな。
212デフォルトの名無しさん (ワッチョイ d201-EjgJ [219.204.123.70])
2019/04/13(土) 19:27:05.58ID:vzJQEXVg0
当時はeclipseに代わるもの無かったし
213デフォルトの名無しさん (ワッチョイ 0f2e-AWLV [118.86.132.191])
2019/04/13(土) 20:14:34.32ID:osnUgzxu0
>>211
それを言うなら日本はなんでアメリカと戦争したのかね
核を落とされただけじゃないか
214デフォルトの名無しさん (ワッチョイ 6bda-yqpC [114.185.4.211])
2019/04/13(土) 20:57:38.93ID:Puj10Jqk0
爺さんのプライドのためだよ
215デフォルトの名無しさん (ワッチョイ 23a3-4FRu [218.226.211.189])
2019/04/14(日) 01:30:00.79ID:zEHeHyPc0
>>202
さんくす
ちゃんと合成できたわ
216デフォルトの名無しさん (ワッチョイ 23a3-4FRu [218.226.211.189])
2019/04/14(日) 01:33:26.33ID:zEHeHyPc0
>>208
オヌヌメ
UIが好き勝手にできる (そりゃ当たり前か?)しかっこの前にスペースを入れる入れないとか細かい次元で設定もできる、おまけにリファクタリングが充実してる
欠点としてはズームで拡大縮小ができないことぐらいかな
CommunityエディションでもすごいけどUltimateエディションだともっとすごい
OSSとか開発してるならただで手に入るから試してみ
217デフォルトの名無しさん (ワッチョイ 1e02-yKKz [175.134.57.7])
2019/04/14(日) 11:06:33.13ID:JuY/4ckm0
Kotlinもよろしく
218デフォルトの名無しさん (ワッチョイ 5294-U5P5 [123.48.66.92])
2019/04/14(日) 22:01:17.23ID:W2teM0KI0
jvmのgcは実際どれくらいのラグを引き起こすものなの?
例えばメモリ1GBくらい使ってるアプリで
219デフォルトの名無しさん (ワッチョイ 5294-U5P5 [123.48.66.92])
2019/04/14(日) 22:02:44.54ID:W2teM0KI0
java8のGCで。デフォだとパラレルGCだな。
コンカレントGCだとどれくらいなんだろう。
220デフォルトの名無しさん (ワッチョイ d26a-U5P5 [61.120.247.131])
2019/04/14(日) 22:39:42.36ID:JOroMq8K0
>>216
そんな機能いらんだろ・・・
221デフォルトの名無しさん (ワッチョイ 5294-U5P5 [123.48.66.92])
2019/04/15(月) 02:16:43.52ID:cuQSJXma0
JVMからデバイスドライバの機能を呼び出す事ってできます?
Javaで特殊デバイスと連携するプログラムは開発できるのかなとおもって
222デフォルトの名無しさん (ワッチョイ 1e02-yKKz [175.134.57.7])
2019/04/15(月) 10:56:39.66ID:JaYwanV70
>>221
普通はJNIで橋渡しする部分を作る必要があると思う。

しかしLinuxみたいに特殊なファイルに読み書きするだけである程度の操作ができるようなOS及びデバイスドライバならばファイルの読み書きだけでなんとかなってしまうかも知れない。
rootユーザーにならないと駄目かも知れないけど。
223デフォルトの名無しさん (ワッチョイ 1e02-XGqV [175.134.57.7])
2019/04/15(月) 11:14:12.89ID:JaYwanV70
しかし例え Linux だったとしてもなるべく /dev や /sys 以下の特殊ファイルを直接読むように作るんじゃなくて読み書き用のコマンド実行するように作った方が良いかも。
というのは kernel のアーキテクチャやバージョンによって同じファイルが違ったりなかったりするかも知れないから。

例えばLinuxでCPUの温度を取得する方法が書いてあるページが以下にあるが、 /sys/devices/platform/coretemp.0/temp[0-9]_input または /sys/class/thermal/thermal_zone0/temp を読めばいいことになっている。
https://qiita.com/koara-local/items/1fac13704123717f5cc8
しかし lm_sensors をインストールして sensors コマンドで読むようにした方が良い。
その方が違いがあってもそこで吸収してくれる可能性があるし、Windows 等の他の OS だったとしても同じ形式で出力をするコマンドがあれば(またはなければ自作すれば) Java の方のプログラムを変えなくて済むからだ。
224デフォルトの名無しさん (ワッチョイ 5294-U5P5 [123.48.66.92])
2019/04/15(月) 13:57:59.38ID:cuQSJXma0
OSGiの説明読んでたら実行時に依存ライブラリを置き換えれるみたいに書いてあったんだけど
危なくない?
225デフォルトの名無しさん (ワッチョイ 2361-La48 [218.231.194.129])
2019/04/15(月) 16:31:32.77ID:qwL+GUlh0
クソ古い機種でなければ、SELinuxが邪魔するはずだ。
226デフォルトの名無しさん (ワッチョイ 2361-La48 [218.231.194.129])
2019/04/15(月) 16:33:08.61ID:qwL+GUlh0
ごめん。Androidスレと勘違いした。
227デフォルトの名無しさん (ワッチョイ d26a-rI6A [61.120.247.131])
2019/04/17(水) 09:29:11.77ID:u6KluhBw0
新しいswitch構文いいね
Java13でも何か増えてほしい
228デフォルトの名無しさん (アウアウウー Sae3-UFLJ [106.132.123.80])
2019/04/17(水) 16:59:30.42ID:ZvmEwgGQa
まるで Kotlin のような switch だなあれ。
こうやって徐々に拡張してって気づいたら Kotlin そっくりになってたりしてなw
229デフォルトの名無しさん (ワッチョイ 7f94-61/s [123.48.66.92])
2019/04/18(木) 18:04:38.09ID:wChKEQpu0
JavaFX11をJava8で動かす事はできる?
例えばCorretto8とかで
230デフォルトの名無しさん (ドコグロ MM7f-4dYu [119.243.53.203])
2019/04/18(木) 20:11:19.95ID:Hosp3yF6M
JavaFXはもうJavaファミリーじゃなくて単なる野良ライブラリの一つだから他所で聞いて
231デフォルトの名無しさん (ワッチョイ 7f6a-61/s [61.120.247.131])
2019/04/19(金) 00:53:02.95ID:PyPy8gHp0
substance.jarとかlookandfeelのライブラリもみんな死んだよなあ
232デフォルトの名無しさん (オッペケ Sr33-EG0x [126.208.177.191])
2019/04/19(金) 20:15:42.29ID:9+uD8sSlr
arrayListのaddメソッドについて質問です。
中身のないリストに、インデックス無しのaddメソッドで中身を追加していくと
0.1.2.3〜順番に自動でインデックスを付けてくれました。

この挙動は信頼して良いでしょうか?
それとも引数無しでaddしていくと、稀にインデックスがおかしくなったりしますか?
233デフォルトの名無しさん (ワッチョイ 5f1d-s4yl [180.178.88.6])
2019/04/19(金) 20:33:56.27ID:8v3VlEds0
char型配列についてお聞きしたいことがあります。例えば
char[] array = {'J','a','v','a'};
とした時、array[4]が「何もない(空である)」ことはどうコードで検出すればよいのでしょうか?
if文などで、4要素目が「空である」ことを検出するコードを書きたいのですが…。
234デフォルトの名無しさん (ワッチョイ 5fe9-JNgg [222.15.235.177])
2019/04/19(金) 23:18:37.51ID:Bzn5o3i30
>>233
配列の長さを調べる。
235デフォルトの名無しさん (ワッチョイ 5f2e-R4YC [118.86.92.221])
2019/04/20(土) 00:35:16.58ID:CMR5Akfm0
>>232
ArrayListのaddはリストの最後に値を追加するから
値を追加した順番にインデックスがつけられることは保証されるよ
236デフォルトの名無しさん (ワッチョイ ffda-EG0x [223.218.244.7])
2019/04/20(土) 06:05:00.74ID:FdhFaaGT0
>>235
ありがとうございます。
237デフォルトの名無しさん (ワッチョイ 7f94-61/s [123.48.66.92])
2019/04/20(土) 20:06:24.28ID:JruJqlnL0

jar実行時のカレントディレクトリが環境によってまちまちだって聞いたんだけど本当?


コマンドラインでディレクトリAに居ながらjavaコマンドでディレクトリBのjarを起動したら
そのjarの中でカレントディレクトリはAとBどちらになる?
238デフォルトの名無しさん (ワッチョイ 7f94-61/s [123.48.66.92])
2019/04/20(土) 20:36:06.72ID:JruJqlnL0
2を自分で実験してみたんですが
コマンドラインのカレントディレクトリがjar内部でもカレントディレクトリですね。
つまり./folderを作成したら、コマンドラインの位置に出現する。
239デフォルトの名無しさん (ワッチョイ dfa3-imD6 [218.226.211.189])
2019/04/20(土) 22:30:51.50ID:ZG2GZstI0
new File(".").getCanonivalPath()
あってるかどうかは知らん
240233 (ワッチョイ 5f1d-s4yl [180.178.88.6])
2019/04/20(土) 22:53:08.89ID:8ST0JapT0
>>234
返信が遅くなりすいません。
ありがとうございました。
241デフォルトの名無しさん (ワッチョイ ff02-YIQo [175.134.57.7])
2019/04/21(日) 15:13:37.03ID:oGsU9OH20
>>239
シンボリックリンクを手繰っても良い場合はそれでも良くて、ダメな場合は Paths.get(relativePath).toRealPath(LinkOption.NOFOLLOW_LINKS) のようだ。
https://qiita.com/nwtgck/items/5dd7a3008a5a31bf964e
242238 (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/25(木) 08:51:23.69ID:ximnnd2X0
これやばくないですか?
プロジェクトのトップからの相対パスで色々なファイルを指定する事は珍しくないはずです。
そうして作られたjarをコマンドライン等から呼び出すとき
カレントディレクトリが狂わないように調整する必要がある。
相対パスのFileオブジェクトの参照先はカレントディレクトリ依存ですよね?
しかもカレントディレクトリがどうなるかは環境依存ですよね?

と思ったらjavaコマンドの引数で-Duser.dirを指定すればいいようです。
でも、デスクトップアプリだと、環境別に起動スクリプト書かなきゃまずいですね。
エンドユーザーは-Duserr.dirを指定しません。
どこから呼び出しても良いようにしたい、エンドユーザーの利便性のためなのに、
起動スクリプトを使うのは本末転倒な気がします。
と言ってもコマンドラインから呼び出す場合しか実際問題にならないだろうけど。

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4045688
user.dirは起動後だと修正不可能。
243デフォルトの名無しさん (ブーイモ MMfa-AiIk [49.239.65.125])
2019/04/25(木) 09:45:05.55ID:sal5bxLGM
>>242
カレントディレクトリに依存しないように
プログラム組めばよいし
カレントディレクトリに依存するなら
シェルスクリプトやバッチファイルで
カレントディレクトリを指定するのがセロリーですよ
244デフォルトの名無しさん (ブーイモ MMfa-AiIk [49.239.65.125])
2019/04/25(木) 09:46:41.65ID:sal5bxLGM
プロジェクトのトップからの相対パスになるんだなんて
思い込みがなければ問題ナッシング
245デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/25(木) 09:57:47.94ID:ximnnd2X0
カレントディレクトリに依存してはいけないというなら、
相対パスを使えないという事になるのでは?
しかし絶対パスはたびたびOSのユーザー名など個人情報が入ります。
できれば扱いたくない。
246デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/25(木) 10:11:29.05ID:ximnnd2X0
http://d.hatena.ne.jp/yomama/touch/20080718/1216394398
やはりいい方法が無いと。

それどころか、リソースファイルを取得する時URLクラスで相対パスを使うのが
ベストプラクティスとして紹介されている事がある。
それはカレントディレクトリに依存するのか?クラスパス依存だから問題ない?
そもそも、クラスパスが相対パスだったらカレントディレクトリ依存で解決されるだろう。

どうやって相対パスを使わずに組むんだ?
247デフォルトの名無しさん (ワッチョイ 6de9-MRXB [222.15.235.177])
2019/04/25(木) 10:44:52.10ID:w8/bGs7/0
エクスプローラーから直接実行ファイルをダブルクリックしたら、そこがカレントディレクトリじゃないの?
ショートカットを作成して、それをデスクトップとか他のフォルダに置いた場合、
そのショートカットのプロパティをみると、「作業フォルダー」ってのがあって、それがカレントディレクトリではないかと。
248デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.212.69])
2019/04/25(木) 11:24:18.30ID:DeQsB6RVM
>>246
どんな実行方法でもjarがある場所をベースにしたいってことならjarファイルのパスを取得してそこから相対パスで扱えばよいよ
249デフォルトの名無しさん (ワッチョイ da2c-vaK/ [219.162.237.2])
2019/04/25(木) 13:37:42.97ID:wpotMNKo0
各種リソースは、プロジェクトフォルダからの相対パスだろ

PROJECT_PATH などの定数・変数を作って、そこからの相対パスを定義すればよい
250デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190])
2019/04/25(木) 17:48:56.39ID:PdDg4Yo8M
>>245
パスを引数で渡したり
カレントディレクトリに依存するなら起動するときに
指定するのがセロリーだよ
251デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190])
2019/04/25(木) 17:53:11.84ID:PdDg4Yo8M
>>246
リソースファイルは普通クラスパスから読み込むよ
シェルスクリプトやバッチファイルで
起動時にリソースを配置したディレクトリを
クラスパスに指定するのがセロリーですよ
252デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190])
2019/04/25(木) 17:58:48.54ID:PdDg4Yo8M
例えば実行時にworkフォルダに相対パスでファイルを吐き出したいときは
シェルスクリプトで
cd work
のコマンドを実行してから
javaを実行するよ
253デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190])
2019/04/25(木) 18:14:02.08ID:PdDg4Yo8M
スクリプトからjarを実行すれば
プロキシを指定したり使用メモリの上限を指定したり
ログの出力を変えたりできるよ
エンドユーザーの利便性を考えるなら起動スクリプトを
作るべきだと思うよ
jarは直接実行するものじゃない
254デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190])
2019/04/25(木) 18:22:50.99ID:PdDg4Yo8M
>>249
プロジェクトフォルダってソースコードを管理する
ものだから実行時にその存在を前提にするのは設計としておかしいと思う
開発環境からしか実行しないなら問題ないけど
今回のようにjarを配布して実行してもらうならマズいですよ
255デフォルトの名無しさん (ブーイモ MMde-AiIk [163.49.214.190])
2019/04/25(木) 18:57:50.14ID:PdDg4Yo8M
>>237
の質問はよくわかる、なぜなら俺もむかしそう思ってたから
実行時にはjarの内部にいるんだと思いがちだけど
jarにはクラスファイルが入ってて
それを外から実行してるだけなんよ
256デフォルトの名無しさん (ワッチョイ 9161-KI0z [218.33.254.176])
2019/04/25(木) 22:38:36.18ID:O+x6W6lz0
>>249
すげぇな、お前。
257デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/25(木) 23:09:48.66ID:ximnnd2X0
http://aarkiton.blogspot.com/2011/09/getresourceasstream.html
>実行時にクラスがjarファイルなどに格納されている場合、実行環境によりなぜかgetResourceAsStream()でリソースが読み込めない場合があるようだ。

こういう記事があるから、リソースの読み込みをクロスプラットフォームにするには、
URLでアクセスするのが良いとされている。
ところがURLアクセスの方法は相対パスを使用している。

クロスプラットフォームかつどのフォルダからも実行できるようにする方法はない。
あるとすれば、環境別に起動スクリプトを書く場合だけ。
起動引数無しで起動されたら即終了するようにして、
必ずスクリプトから起動させるしかない。

でも、それって、JVMが動いてても起動スクリプトが無いと動かないから、
マイナー環境向けにスクリプト書かれないだろうから、
クロスプラットフォーム感激減だ
258デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/25(木) 23:11:54.85ID:ximnnd2X0
なんていうか、プログラムってしんどいね
環境ごとの無意味な違い(ファイルパスの区切り文字とか)で振り回されるし
259デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.130.229])
2019/04/25(木) 23:35:13.14ID:7lYh8BWfM
つーかその張ってるリンク先で言ってる話はまた別の話だと思う
読み込むpropertiesファイルもまとめてjarにいれた場合に読めないって話でしょ

結局やりたいことの為に何が必要なのか考えてみた方がよいと思う
260デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/26(金) 00:23:14.47ID:Q79mrf5i0
プログラム上の問題というより環境的な問題だから
自分じゃどうしようもない
これはプログラムが悪いんじゃなく、ソフトウェアエコシステムの問題だ
すんなりとクロスプラットフォームになって
カレントディレクトリとか余計な問題に悩まなくていい開発方法があればいいのに
261デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.130.229])
2019/04/26(金) 01:15:44.98ID:if9lRvGxM
カレントディレクトリを前提にパスを扱うからいけないだけ
jarファイルの場所を起点として相対パスを使えばいいだけだよ
262デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/26(金) 02:14:57.44ID:Q79mrf5i0
それは絶対パスを使う事になるから、できれば避けたい
でもそれしかないかもしれない
263デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151])
2019/04/26(金) 04:22:09.54ID:51IpWYw80
スクリプト書けばいいのに
シェルスクリプトならPOSIXに対応した環境で使えるし
WindowsならPowerShellとかBATファイルとかあるじゃん
スクリプトじゃなくてプログラムでも良いけど
それができない環境はないよ

JavaのクロスプラットフォームはJVMが環境の差異を吸収するからソースコードコンパイルし直さなくて平気だよってものなのでカレントディレクトリが実行環境によって変わりますっていうのは別の事柄だよ

Java製のV2CやEclipse、NetBeansといったソフトウェアもjarを直接起動することないよ、起動用のプログラムは別で用意されてて一緒に配布されてる

カレントディレクトリの概念は便利なものだよ
264デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/26(金) 04:28:32.96ID:Q79mrf5i0
便利なのはわかるんだ
例えばmkdirだって、どこかに置かれたプログラムで、カレントディレクトリにおいて作用するわけで。
関数的なプログラムはそれでいい。

でも状態を持つプログラムにおいてそのプログラムが置かれたフォルダに状態を作るというのも便利なものだ。
これはOOP的。
エンドユーザーからすれば、良く分からんところに状態を作られるのは嫌。
265デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151])
2019/04/26(金) 04:34:30.93ID:51IpWYw80
>>264
じゃあユーザーにはスクリプトを配布してそれを実行してもらうようにすればいいよ
266デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151])
2019/04/26(金) 04:50:17.67ID:51IpWYw80
カレントディレクトリ無視してjarのディレクトリで動作しますというのがユーザーにとって迷惑なこともあるわけでユーザーがコントロールできるのが望ましいのじゃないかな

OOPや関数型プログラミングは今回の件と関係があるとは思えない
267デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151])
2019/04/26(金) 05:21:05.77ID:51IpWYw80
・プログラムの動作上必要なファイルをjarと同じ場所に配置する
・プログラムではそのファイルに相対パスでアクセスする
という要件でしょ
268デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151])
2019/04/26(金) 05:55:44.11ID:51IpWYw80
相対パスはカレントディレクトリからのパスなので
カレントディレクトリを変えるしかなく
スクリプトでカレントディレクトリを変える

jarのパスを引数で渡すなり実行時に取得するなりして
Path.resolveメソッドで相対パスを解決する
269デフォルトの名無しさん (ワッチョイ 4101-AiIk [202.72.70.151])
2019/04/26(金) 06:01:41.80ID:51IpWYw80
他にあるかなー
270デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/26(金) 06:30:18.37ID:Q79mrf5i0
・個人情報が含まれることがあるから絶対パスを使いたくない。
271デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/26(金) 07:10:21.98ID:pn/dKCHp0
>>270
その理由がよくわからない
パスはプログラム内部で使用するだけじゃないの?
パスを公開するん?
272デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/26(金) 07:39:19.02ID:pn/dKCHp0
カレントディレクトリからの相対パスを使用したとしても
Path.of(".").toAbsolutePath()
としたらプログラムでは見れるので
プログラムに対して絶対パスを隠す意味はないですよね

絶対パスを指定するとしたら実行時にスクリプトで絶対パスを取得して
javaに渡すなり、javaから取得するなりすると思うんですよ

Path resourcePath = ...;
Path text = resourcePath.resolve("text.txt");

こんな感じで
ログに出力したくないというのであればtext.getFileName()をログに出力するようにすればよいかと
絶対パスを使いたくない意味がよくわからない
273デフォルトの名無しさん (ワッチョイ 9161-KI0z [218.231.167.11])
2019/04/26(金) 08:25:41.39ID:QL2+v1a40
>プログラムの動作上必要なファイルをjarと同じ場所に配置する
この要件が意味不明過ぎる。
初めからプログラムが知っているべきものなら、CLASSPATHから辿れるResourceでいいし、
外部から与えられるファイル(設定ファイルとかデータファイルとか)なら、
ユーザが「知っている」はずだから、それに従うだけ。
274デフォルトの名無しさん (ワッチョイ 6de9-MRXB [222.15.235.177])
2019/04/26(金) 09:02:13.01ID:yevOEnv90
自分ならjarのあるディレクトリに移動してプログラムを起動するバッチファイルを使うわ。
プログラムではカレントディレクトリにあるはずのファイルが無かったらエラーを吐いて止まる。
275デフォルトの名無しさん (アメ MMa1-GtBW [210.142.92.14])
2019/04/26(金) 09:21:40.52ID:v0BTRdTiM
それosごとに書くの?
write everywherewww
276デフォルトの名無しさん (アウアウウー Sa39-tnqD [106.132.130.249])
2019/04/26(金) 09:35:16.97ID:YRtkzMZRa
Write once
Bug anywhere
277デフォルトの名無しさん (ブーイモ MM99-AiIk [202.214.125.189])
2019/04/26(金) 09:44:37.15ID:pkS4CFHAM
>>275
シェルスクリプトならUnix系のOSで使える
WindowsならPowerShellでいんじゃないかな
実質2つだけかと
278デフォルトの名無しさん (ワッチョイ 9161-KI0z [218.231.167.11])
2019/04/26(金) 10:00:15.39ID:QL2+v1a40
頭悪すぎ。
権限とかセキュリティを考慮すれば、ワーキングディレクトリもユーザ側に委ねるべきもの。
279デフォルトの名無しさん (ワッチョイ da2c-vaK/ [219.162.237.2])
2019/04/26(金) 13:39:16.32ID:A/WNBxWE0
>>258
Ruby では、Windows のパス区切りも、/ で統一されている。
Dir.glob( 'C:/Users/Owner/Pictures/*' )

Rails では「設定より規約」というポリシーだから、何も設定しない場合には、
プロジェクトフォルダ内でのリソースの置き場や、
それらのdeploy 後の置き場や、アクセス方法も決まっている

このように、フレームワークを使うと、その規則に従うから、何も考えなくてよい!
280デフォルトの名無しさん (アウアウウー Sa39-tnqD [106.132.130.249])
2019/04/26(金) 14:10:43.88ID:YRtkzMZRa
>>279
え?Windowsって昔からプログラムでファイルオープンする時は / 使えなかったっけ?
昔々 Delphi とかで使えた記憶があるんだけど。言語の問題じゃなくて Windows API が / も受け付けてるって事ね。
コマンドラインから受け付けないようになってる理由は昔から / をスイッチとして使ってるからだと思う。
281279 (ワッチョイ da2c-vaK/ [219.162.237.2])
2019/04/26(金) 14:36:03.51ID:A/WNBxWE0
C:\Users\Owner\Pictures\

Python では、\ をエスケープするために、\\ を2つ使った、表記をよく見る。
C:\\Users\\Owner\\Pictures\\

一方、Ruby では、
C:/Users/Owner/Pictures/
282デフォルトの名無しさん (アウアウウー Sa39-tnqD [106.132.130.249])
2019/04/26(金) 14:41:28.21ID:YRtkzMZRa
>>281
わからんけど試しにWindowsのPythonで / でやってみな。多分できる。
Perl もできた。

てか、言語関係ない筈。
283デフォルトの名無しさん (ワッチョイ 89da-HJzg [114.185.1.67])
2019/04/26(金) 15:17:33.53ID:YKU/5GWf0
スレチ
284デフォルトの名無しさん (ワッチョイ 9161-KI0z [218.231.141.120])
2019/04/26(金) 21:05:21.66ID:sJC66QNU0
Rubyキチは黙ってスルー。
285デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 00:27:38.86ID:0PNVGbCs0
カレントディレクトリをユーザ側に委ねると
前回のセーブデータを必要とするとき、GUIとかでユーザーに設定してもらう必要がある。
アプリフォルダに入ってれば自動的に見つけれる。

俺はカレントディレクトリをユーザ側に委ねる使用法を否定していない。
ちゃんと読んでくれ。誰もそんな事は言ってない。
ただアプリによってアプリフォルダに状態を持つ方法が必要になると言ってる。
しかもそれを相対パスとして実現できる必要がある。

この話は、Oracleも必要性を認めていて、しかし問題があり却下していたはず
286デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 00:35:07.92ID:0PNVGbCs0
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.
287デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 00:38:18.41ID:0PNVGbCs0
カレントディレクトリを大部分のアプリにおいてユーザ側が制御できる事と
一部アプリにおいてアプリ側が制御できる事は両立する。
誰もカレントディレクトリをユーザ側で制御する事を否定してないのに、なんでそんな話が出てくる?
288デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 00:45:30.79ID: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を持たない事は欠陥だ。
アプリコードで実行されたクラスのパスを取得してそれをプリフィクスにすればいいと
上で意見が出ているが、それではライブラリの動作が透過的に変更されない。
289デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 00:53:45.71ID:0PNVGbCs0
俺の説明が正しいかは分からない。
俺は細かいところを間違えたかもしれない。

でも、javaが実行時chdirを持たない事が欠陥なのは間違いない。
290デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 01:06:06.63ID:0PNVGbCs0
カレントディレクトリをユーザーが指定しつつ
同時にプログラム側でchdirすべき場合があるじゃないか。

1プロセスでマルチユーザーからのアクセスを受け付けるプログラムで、
ユーザーがカレントディレクトリを指定して、
プログラム側でスレッド別にユーザーが指定したカレントディレクトリにchdirする場合。
291デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.179.32])
2019/04/27(土) 01:11:53.55ID:Je+FHpVzM
>>285
だからその用途の場合は実行時にjarの場所を取得して、そこからの相対パスで扱うべきって話をしてるわけだが
相対パス=カレントディレクトリを基準に使わなければいけない、みたいな謎ルールがあるのか?
292デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 01:17:58.25ID:0PNVGbCs0
これ2006年ごろ会社でBtoBtoCのシステム作っててやったの思い出した
クライアント別にchdir
ApacheとLinuxの仕組みを活用して達成できたけど、
クロスプラットフォームなやり方は無いと思う。
293デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 01:18:26.51ID:0PNVGbCs0
>>291
>それではライブラリの動作が透過的に変更されない。
294デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 01:19:54.56ID:0PNVGbCs0
>>286-288>>290>>292あたり読んでね
読まずに返信したらダメだよ
理解してから書いて

この話題は>>290が完ぺきな説得力を持って俺の中では終わってる
295デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 01:21:56.36ID:0PNVGbCs0
そのオラクルのサイトでもこう書かれてる。
>This needs co-operation from the runtime (if we chdir() the VM, then the
IO libariries would get transparently updated).

chdirはライブラリの動作を透過的に変更できる。
お前らが言ってるクラスファイルのパスを取得して接頭辞にしろというアイデアは、
ライブラリの動作で問題が生じる。
296デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/27(土) 10:12:27.47ID:Msh+cD000
>>294
自己完結
297デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/27(土) 10:12:49.27ID:Msh+cD000
自己完結しましたってことね
298デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/27(土) 10:13:08.94ID:Msh+cD000
ここは質問スレッドなので質問ありますか?
299デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/27(土) 10:28:47.67ID:Msh+cD000
カレントディレクトリのファイルを読み書きするライブラリなんてあるのかね
ファイルを読み書きするならFileなりPathなりInputStreamなりOutputStreamなり
を引数として取るように作るんじゃないかな

もともとはカレントディレクトリがプロジェクトのディレクトリになるという
勘違いから起こった話題だけど何を解決しようとしてるのかよくわかんない
300デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 11:40:58.78ID:0PNVGbCs0
もともとは「カレントディレクトリが何になるか環境依存で決まる」という話。

ライブラリでカレントディレクトリに依存しているものはたくさんある。
301デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/27(土) 12:51:28.78ID:Msh+cD000
>>300
具体的になんてライブラリなの?
たくさんあるうちから比較的有名なものを教えていただけると
302デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 15:14:58.99ID:0PNVGbCs0
具体例をあげさせようというのは、
「そんなライブラリ存在しない」と本気で思えるからなのか?
言語仕様的にカレントディレクトリへの依存なんてFileを相対パスで使ったら生じるもので
それが一般に無いなんて前提は持ちようがない。
お前は単に俺に無駄な手間をかけさせようとしているだけとしか思えないんだが?
お前の本心は何だ?”本気でその質問がここに居る人たちをより優れた認識に導くと思っているのか?”
あるいはただのクズか?
303デフォルトの名無しさん (ラクッペ MMa5-AA9Y [110.165.176.48])
2019/04/27(土) 15:17:25.68ID:0mLMZlTmM
まあ解決したみたいだしもういいでしょ
304デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 15:35:16.29ID:0PNVGbCs0
Javaを使う全ケースで共通のカレントディレクトリ依存のファイル作成処理。
https://docs.oracle.com/javase/jp/8/docs/technotes/guides/troubleshoot/felog001.html
このファイルが作成される事はプログラム側の問題だから
プログラム側のフォルダに作成されるのは基本的に正しい。

多重起動防止テクニック
http://d.hatena.ne.jp/knowledgefort/20090902/1251885412
1フォルダにつき1つしかプログラムを起動させたくないなら、
プログラム側のフォルダにロックファイルを作るのが正しい。

HTTPサーバつきのDBはプログラム側のフォルダにDBを作る事が多いだろう。

他にも全利用のログや統計が必要な場合。

結局一人で調べて一人で解決したほうがいいんだなと思った。
正しい着眼点と方向性で進めててもアホ呼ばわりされる。
こいつら極限まで分かり易く示さない限りアホ呼ばわりしてきそうだ
305デフォルトの名無しさん (ワッチョイ 5a94-BP9Y [123.48.66.92])
2019/04/27(土) 15:41:51.22ID:0PNVGbCs0
ああ・・・エラー処理はカレント側に作成されてるな

ただ、これもそうだが、分かり易い事例を示すのが難しいだけで俺の意見が正しい。
現実のプログラムであればそういうシステムを多々見てきたし、
プログラム側のフォルダに状態を作るべき場合は存在する。
たとえ事例が無くてもそれが存在するのが分かる。

オラクルのエンジニアだってそういうメリットがあるから
スレッド別の継承型chdirが望ましいと書いてたろ?

「自分でわかる」「著名人もそう言ってる」
この段階からさらにお前らが分かるような事例を持ってこいってのはさらに難しい
306デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/27(土) 16:11:19.17ID:Msh+cD000
>>302
俺はカレントディレクトリのファイルを読み書きするライブラリを知らない
君はそれをたくさん知ってるということだったので
教えてもらいたかっただけだよ

https://docs.oracle.com/javase/jp/8/docs/technotes/guides/troubleshoot/felog001.html
これはファイルパスを指定できるようになってて
デフォルトではカレントディレクトリだよってことですね
ライブラリではなくてjavaの仮想マシンがそういう動作をするってことですよね

http://d.hatena.ne.jp/knowledgefort/20090902/1251885412
これはカレントディレクトリを使ってはいけないんだってことを
君は言いたいのかな、よくわかんなかったけど
307デフォルトの名無しさん (アメ MMa1-GtBW [210.142.92.39])
2019/04/27(土) 16:12:22.32ID:nhVWQaIpM
例の一つもしめせない正しさなんかいらない。
連休明けにお前の席、ねーからー!w
308デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/27(土) 16:38:17.73ID:Msh+cD000
>>305
君が見てきたいろんなシステムはjarを直接起動するシステムばかりだったの?
特殊な環境にいたのかなと

プログラム側のフォルダに状態を作るべき場合が存在するのは否定しないよ
そういうこともある、その場合はjavaを実行する前に指定しましょうというのが
一般的なやり方だよ

前にも挙げたけどEclipseとかV2CとかNetBeansとか
Java製のソフトウェアは起動用のプログラムとjarが別れてるよ

アプリケーションサーバのTomcatなんかもそうだよ
起動用のスクリプトの中でパラメータを指定したり環境変数を定義したり
して実行環境を整えてjavaを実行してるよ
309デフォルトの名無しさん (ワッチョイ 052e-om8u [118.86.92.221])
2019/04/27(土) 16:55:22.93ID:Msh+cD000
↓ここみるかぎりworking directoryをJavaで変えるのはできそう
https://stackoverflow.com/questions/840190/changing-the-current-working-directory-in-java
310デフォルトの名無しさん (アウアウカー Sa4d-4vDe [182.251.141.244])
2019/04/30(火) 23:09:51.16ID:ase7yW+4a
お前ら6ヶ月超えたLTSはどうしてる?
ぶっちゃけAdapt OpenJDKとOpen J9しか無かった頃はOpen J9は影響力無いだろうからAdapt OpenJDKがupstreamに変更内容pushしてくれれば済んだじゃん。
ディストロ乱立した今Azulみたいに大してupstreamに貢献してない所あるからディストロ毎の変更の差が広がるけど。
311デフォルトの名無しさん (ワントンキン MM8a-ahOC [153.237.89.209])
2019/05/03(金) 17:48:48.96ID:iE5UbyHCM
JAVAも人気が無くなっちゃったね
勉強しようかと思ってたけど今は何がおすすめ? C++あたりかな?
312デフォルトの名無しさん (アウアウウー Sa47-H3I8 [106.133.160.237])
2019/05/04(土) 00:54:34.37ID:wCMSKwhZa
Kotlin もよろしく
313デフォルトの名無しさん (ラクッペ MM67-jbV9 [202.176.21.141])
2019/05/06(月) 13:16:22.90ID:ial3K7dNM
天の邪鬼なんで今からjava勉強しようと思います
もとの専門が強電と計装なんですけどつながる所ありますか?
314デフォルトの名無しさん (ドコグロ MMcb-jhVB [110.233.245.115])
2019/05/06(月) 13:40:45.97ID:9LoLzBoXM
理系脳があれば文系Javaマの大多数よりは上
現場のレベルの低さは想像を絶する
315デフォルトの名無しさん (ワッチョイ e3da-R0y6 [60.41.119.133])
2019/05/06(月) 13:44:38.65ID:iQFGW4dP0
プログラムの才能は理系・文系とは別
316デフォルトの名無しさん (アウアウウー Sa47-vI8p [106.132.125.254])
2019/05/06(月) 20:21:56.86ID:NYoOX9LAa
なんだろうね。数学的能力はあった方が良いがそれだけではないし。
手順を言葉で表現する能力もある必要があるがそれだけでもないし。
317デフォルトの名無しさん (ラクッペ MM67-jbV9 [202.176.22.176])
2019/05/06(月) 23:47:19.20ID:HTogq+szM
よくわからんまとめサイトにjavaって読書好きな人向けみたいに書いてあったんだけど本当?
何時間も細かい文章読んでても気にならないタイプなんだけど
ただイメージわかない物は苦手ですが(英語とか辞書とか)
318デフォルトの名無しさん (ドコグロ MMba-jhVB [49.129.186.151])
2019/05/07(火) 00:32:26.40ID:nFO0GtdSM
>>317
長くて複雑な資料を読んで理解できる能力は言語関係なくITエンジニアにとって極めて重要
応用情報の午後の過去問なんかをダウンロードして見てみたらイメージ掴みやすいと思う
あれはよく読めば大して知識なくても解けるもので、そういう人は向いてる
319デフォルトの名無しさん (ラクペッ MMf3-jbV9 [134.180.6.121])
2019/05/07(火) 06:49:28.50ID:VFlw4N8yM
>>318
ありがとうございます
読んでみます
320デフォルトの名無しさん (ワッチョイ 9a6a-ef0B [61.120.247.131])
2019/05/08(水) 00:47:24.78ID:S67A12g30
Kotlinはjsにコンパイルする環境がすでに整ってるけど
Javaはgwtがコケて完全に死んだよね
321デフォルトの名無しさん (ワッチョイ f6da-R0y6 [223.218.111.99])
2019/05/08(水) 09:32:17.94ID:86ZxxcQ40
KGBに監視されている
322デフォルトの名無しさん (ラクッペ MM7d-giyY [110.165.132.199])
2019/05/09(木) 21:35:28.39ID:qPClD7aOM
某組み込み系の比率が高い県の未経験者です
組み込み系(C言語)とWeb系(PHP)両方の経験を積みたいんですが最初にjavaをがっつりやるのはありですか?

javaがっつりやって流れでC言語もPHPも出来るようになる作戦なんですが虫が良すぎでしょうか

それとももっと良い言語がある?
323デフォルトの名無しさん (ワッチョイ b12e-rDrf [118.86.92.221])
2019/05/09(木) 21:52:11.67ID:pU2pcSqk0
JavaがわかればPHPは余裕
C言語はクラスがなかったりポインタとかメモリ管理とかJavaの常識が通用しない
ループとか条件分岐とか関数はほとんど同じだけど
やってみたらいいじゃない1週間あればいけるっしょ
324デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.184.205])
2019/05/09(木) 23:28:52.95ID:vGDrZ5vaa
>>323
なるほど、古いほど難しい感じ?なんですかね?
とりあえず今やってるjavascript終わったらしばらくjava一本に絞ってみます
325デフォルトの名無しさん (アメ MM05-XE84 [210.142.92.67])
2019/05/10(金) 13:49:52.47ID:sZdncDhCM
brainfuckはcより新しいぞ
326デフォルトの名無しさん (アウアウウー Sad5-L9AJ [106.180.6.159])
2019/05/10(金) 20:42:23.89ID:eVjZi54sa
https://sbfl.net/blog/2016/05/20/javascript-danmaku-stg-3/
にある回転弾幕を参考に同じように回転弾幕を作成しているのですが、回転しません。
radianの計算が違うのでしょうか?

https://pastebin.com/wFCdcf0A
327デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.185.51])
2019/05/13(月) 15:18:49.84ID:LmLPA4i2a
すいません、今からならjava8やるべきですかそれとも11ですか 
まあ11は探しても本無いんで何すべきかわかんないですが
328デフォルトの名無しさん (アウアウクー MM5d-/JuY [36.11.224.36])
2019/05/13(月) 16:07:46.34ID:fPgpveE6M
11でコード書いたら下方互換がないのってLambdaのvarくらいか。
非互換さえ理解しておけば、11から始めてもいいんじゃないか。
どうせそんなこと聞いているくらいだから、Tiger時代くらいのAPIしか
使わんのだろうし。
329デフォルトの名無しさん (アウアウウー Sad5-wdoq [106.132.131.39])
2019/05/13(月) 17:30:27.34ID:rnX6vlMta
Kotlinもよろしく
330デフォルトの名無しさん (アウアウカー Sa2d-NQ/5 [182.251.157.124])
2019/05/13(月) 22:00:41.33ID:Il2FdqNea
今からやるならモジュールから入ったほうが良いから11かな。
下位互換のためだけにあるunnamed moduleとautomatic moduleの
ルールが複雑だから9以降初学者は最初に普通のモジュール使ったほうが覚えるの簡単だと思う。

あとは>>328の言う通り8以降でapiかなり変わってるからapi覚え直したほうが良い。
331デフォルトの名無しさん (アウアウエー Sa23-y0Vo [111.239.57.90])
2019/05/13(月) 22:16:51.52ID:9QsNbP8la
今からやるんだったら
まず Java をやらない方がいい
としか言いようがないな
332デフォルトの名無しさん (ワッチョイ d102-wTlH [124.211.214.20])
2019/05/13(月) 22:23:05.62ID:nkZ+yA1j0
Javaのめんどくさいところを知っておくとよい
333デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.185.196])
2019/05/14(火) 08:21:57.15ID:YPQOCYqpa
ありがとうございますm(_ _)m
334デフォルトの名無しさん (ワッチョイ 93ad-f7zA [203.165.185.130])
2019/05/14(火) 22:58:57.58ID:/fg2d0W/0
関数型インターフェースを使いたいときって自分で作ったほうがいい感じ?
実行するときに.accept()とか書いてあっても何するのかわかりずらかったりするかなーって思った
335デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.184.246])
2019/05/15(水) 02:24:44.79ID:heW47YQ/a
未経験者です
すっきりわかるjava入門上下2冊とeffective java第3版どちらにするか迷うんですがeffective javaシリーズは初心者が触っても大丈夫なものですか?
336デフォルトの名無しさん (アウアウエー Sa23-nP+x [111.239.171.52])
2019/05/15(水) 07:56:51.46ID:IyGA5vUia
>>335
effective javaは将棋に例えるなら定跡集
駒の動かし方は書いていないから初学者には一ミリも理解できない
337デフォルトの名無しさん (アウアウエー Sa23-giyY [111.239.184.142])
2019/05/15(水) 09:09:39.48ID:QPuK5v7oa
>>336
ありがとうございますm(_ _)m
338デフォルトの名無しさん (ワッチョイ 138f-a7XR [123.216.11.41])
2019/05/15(水) 14:54:29.15ID:B4kpdfPw0
出たなwスッキリ厨w
339デフォルトの名無しさん (アウアウウー Sad5-wdoq [106.132.134.99])
2019/05/15(水) 16:09:43.87ID:k0yjAgrYa
俺は物事がわかってスッキリしたという感覚がわからない。わかるかどうかとスッキリするかどうかは無関係ではないか?
340デフォルトの名無しさん (ワッチョイ e93d-MbjZ [218.229.147.47])
2019/05/15(水) 17:15:57.03ID:jEyRSl6N0
悩んでいる時間に依存するのでは
341デフォルトの名無しさん (オッペケ Srdd-f7zA [126.211.116.164])
2019/05/15(水) 18:35:02.55ID:3H13F0iFr
スッキリてどゆこと?
保守するときにメソッド名が関係なかったら理解するのに時間かかるじゃん
342デフォルトの名無しさん (ワッチョイ cfda-G5S0 [121.113.186.83])
2019/05/16(木) 01:58:48.56ID:bT0soUog0
質問、Javaでint型変数だけを宣言すると初期値は何も入らないんですか?


Cの場合はint型変数を宣言した時点で変数に初期値を入れない場合、乱数が格納されると記憶に残ってるんですけども
343デフォルトの名無しさん (ワッチョイ af02-XAPB [175.134.57.7])
2019/05/16(木) 02:52:56.95ID:VmtTFfWG0
>>342
https://qiita.com/java-beginner/items/9fc60e3754445a57266e
344デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202])
2019/05/16(木) 02:57:46.45ID:/8K02Lja0
jniでネイティブコードを呼び出した場合、
オーバーヘッドじゃなくて実行中の性能に差は出るんだろうか?
345デフォルトの名無しさん (アウアウウー Sa57-RNyv [106.132.125.81])
2019/05/16(木) 09:17:37.19ID:m1+/MMjMa
それはそのnativeなコードがどう作られているかによるのでは?
346デフォルトの名無しさん (ワッチョイ 4fe3-/Pzg [218.231.123.4])
2019/05/16(木) 11:31:30.57ID:FdIcaypr0
>>344
結構、出るはず。
特に、C/C++ は GC が無いので、体感速度に影響が出るくらい速く動く場合
も少なくないはず。実際、現実にC#とC++でもかなりの速度差があるのは、GCの
せいだと考えられるし。
347デフォルトの名無しさん (ワッチョイ 4f61-/Pzg [218.231.123.4])
2019/05/16(木) 13:56:57.10ID:jfYFXUay0
native バイナリで動く言語は、システムへの保護がCPUレベルの #GPE などで
コスト0で行えるのに対し、VMで動く言語は通常、VMシステムへのデータ保護
がソフトウェアレベルで行われていることが多く、JITコンパイラでバイナリ
コードに変換されても、その部分による速度差が埋まらない。
だから、アプリ自身のコードは、nativeバイナリに比べて3〜5倍程度の
遅さで動いていることが多い。
348デフォルトの名無しさん (ラクペッ MMb7-wc1K [134.180.0.133])
2019/05/16(木) 14:43:58.42ID:EcUEf5OyM
>>344が聞きたいのはそういうことじゃないと思うよ
349344 (ワッチョイ 1fb9-Q2B8 [123.1.16.202])
2019/05/16(木) 16:45:48.62ID:/8K02Lja0
JNIから呼び出されたネイティブコードvs純粋なネイティブコード
の話。
オーバーヘッドがあるのは分かるけど、
それ以外の実行中の性能にも差があるのか?
350デフォルトの名無しさん (ワッチョイ bfda-8NB0 [223.217.43.217])
2019/05/16(木) 17:03:52.02ID:NDYfZfUA0
後出し乙
351デフォルトの名無しさん (ワッチョイ 4fe3-/Pzg [218.231.123.4])
2019/05/16(木) 17:08:54.38ID:FdIcaypr0
>>349
ああ、そういうことなら、原則的に「無い」ハズ。
本当に CPU が Linux の普通のbinaryのコマンドと同じように
実行してるだけだから。実際、JNI のC/C++部分のコードは、
shared library の libxxxx.so になっていて、Activity の
クラスの初期化時にプロセスの中に動的にロードされて使われている。
この so ファイルは、linux の elf 形式の arm バイナリ・コード
になっていて、Androidではない、UbuntuなどのLinuxの普通の
共有ライブラリと全く同じように実行されている。
352デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202])
2019/05/16(木) 17:32:47.73ID:/8K02Lja0
むしろ>>344をほかにどんな意味に受け取るのか教えて欲しい
353デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202])
2019/05/16(木) 17:35:08.03ID:/8K02Lja0
GraalVMだとネイティブコードでも配列の境界チェックとかをしてるとかで
ちょっと遅いらしいんだけど
JVMだとそれは無いのか
354デフォルトの名無しさん (ワッチョイ d3a3-MhG5 [218.226.211.189])
2019/05/16(木) 17:44:56.12ID:716ODGdI0
>>334
1. 3つ以上の引数を受け取りたい時はそうしなきゃいけないし、Byte、Float、Short、Booleanのボクシングのコストを許容しない場合もそうしなきゃいけない。
2. FuctionalInterfaceは主にラムダ式用だから明示的にacceptはよびださないとおもう。
355デフォルトの名無しさん (ワッチョイ d3a3-MhG5 [218.226.211.189])
2019/05/16(木) 17:46:32.67ID:716ODGdI0
>>353
Java言語規格で境界チェックは必須になってたような?でもJITで境界チェックが(明示的に安全なfor-eachとかで)取り除かれるとかはあるかも?
356デフォルトの名無しさん (ブーイモ MMbf-12ew [163.49.206.55])
2019/05/16(木) 17:47:35.25ID:HsyFIqWHM
>>350
早漏ハゲ
357デフォルトの名無しさん (ワッチョイ 4f61-/Pzg [218.231.123.4])
2019/05/16(木) 18:35:49.90ID:jfYFXUay0
>>353 >>355
JNI の native コードは、単純にCPUが NO CHECK で実行するだけなので、
JVMもろとも壊そうと思えば壊せるはず。
逆に言えばなんでも出来て、推定だけど、Linuxのシステムコールは基本的に
自由に呼べると思う。ただし、su, sudo コマンドみたいなものまで
作れるかどうかは良く知らない。
358デフォルトの名無しさん (ワッチョイ 4f61-/Pzg [218.231.123.4])
2019/05/16(木) 18:40:34.35ID:jfYFXUay0
コマンドの permission に 「setuid bit」が立ってないと sudo のような
コマンドは作れないらしいね・・・。s
359デフォルトの名無しさん (アウアウカー Sa5f-ctyG [182.251.146.133])
2019/05/17(金) 23:18:07.90ID:B7prjqK/a
たぶんID:/8K02Lja0はgraalのどこかを勘違いしてるんだと思う。
graalはまず、javaでjitコンパイラ書くapiが新しく作られて、それを利用したjitを持つランタイムでjavaとは全く別の製品だからjavaの仕様は無関係。
ネイティブコード吐くときに境界チェックするとかはこのコンパイラ挙動で、それを実装するのがjitコンパイラ書くapiのユーザーの仕事なんだよ。
360デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202])
2019/05/19(日) 22:14:02.97ID:0ps74q4q0
jarに同梱されてるクラスと
クラスパスに与えられたjarのクラスで
パッケージ名やクラス名が重複していたら
どっちが優先して使われる?
361デフォルトの名無しさん (ドコグロ MMc7-9mjA [122.130.225.248])
2019/05/19(日) 22:20:29.30ID:3AX6EsSbM
>>360
未定義
Javaでは同一の修飾名をもつクラスは絶対に存在してはいけない
362デフォルトの名無しさん (ワッチョイ 432e-IJ5s [118.86.140.191])
2019/05/19(日) 22:21:58.50ID:iZGlVtrY0
>>360
クラスパスに指定されてる順に優先されるよ
-cp A.jar:B.jar
だったらA.jarが優先される
363デフォルトの名無しさん (ワッチョイ 432e-IJ5s [118.86.140.191])
2019/05/19(日) 22:23:56.93ID:iZGlVtrY0
>>361
んなこたーない(タモさん
パッケージプロテクテッドのメソッドをオーバーライドするときに
同じパッケージにクラス作ることあるよ
364デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202])
2019/05/19(日) 22:32:27.85ID:0ps74q4q0
>>362
でも-jar xxx.jarみたいな場合、-cpじゃないんですが
365デフォルトの名無しさん (ワッチョイ 37da-8NB0 [114.185.1.124])
2019/05/19(日) 22:34:16.82ID:wxi6QMEK0
さすが国際派弁護士
366デフォルトの名無しさん (ワッチョイ 37da-8NB0 [114.185.1.124])
2019/05/19(日) 22:34:55.56ID:wxi6QMEK0
86才か、十分だろ
367デフォルトの名無しさん (ワッチョイ 37da-8NB0 [114.185.1.124])
2019/05/19(日) 22:35:22.57ID:wxi6QMEK0
誤爆、すまそ
368デフォルトの名無しさん (ワッチョイ 432e-IJ5s [118.86.140.191])
2019/05/19(日) 23:01:48.29ID:iZGlVtrY0
>>364
-jarが優先されるよ
-jarと-cpは併用できない
369デフォルトの名無しさん (ワッチョイ 1fb9-Q2B8 [123.1.16.202])
2019/05/20(月) 00:00:36.14ID:ljCiVFHi0
https://stackoverflow.com/questions/18413014/run-a-jar-file-from-the-command-line-and-specify-classpath

ここによると-cpの時Mainメソッドを含むクラスを指定しなきゃいけないみたいだけど
発見されるマニフェストファイルが1つだったらそれを頼りにMainメソッドを特定できそうだけど
いちいち指定するしかないの?
370デフォルトの名無しさん (ワッチョイ 432e-IJ5s [118.86.140.191])
2019/05/20(月) 00:11:29.34ID:9bk38djr0
>>369
指定するしかないよ
マニフェストファイルのMain-Classは実行可能Jarで使用されるものだから
それが使われるのは-jarを使ったときのみ
371デフォルトの名無しさん (ワッチョイ bfda-8NB0 [223.217.45.89])
2019/05/20(月) 22:21:09.99ID:gJcgFuWQ0
Javaは有償ではないそうだ
https://www.itmedia.co.jp/news/articles/1905/20/news123.html
372デフォルトの名無しさん (アウアウカー Sa5f-ctyG [182.251.148.68])
2019/05/20(月) 22:54:45.29ID:KADFzuXRa
>>360
JVMS§5.3.4.かな。
373 ◆QZaw55cn4c (ワッチョイ 5f47-8NB0 [131.129.117.60])
2019/05/21(火) 08:06:04.69ID:CTqbZzlK0
>>371
詭弁ですね…
@OpenJDK は新しいバージョンが出るとサポートが打ち切られる
A8年間のサポートが保障される LTS は有償

ど う 考 え て も   J a v a   は 有 償
374デフォルトの名無しさん (ブーイモ MM6f-12ew [210.149.251.213])
2019/05/21(火) 08:28:08.82ID:+KjL9pSSM
>>373
新しいバージョンがサポートされるよ
375デフォルトの名無しさん (ブーイモ MM6f-12ew [210.149.251.213])
2019/05/21(火) 08:32:04.98ID:+KjL9pSSM
アダプトとかアマゾンとかが数年単位のサポートは提供するよ
376デフォルトの名無しさん (ワッチョイ 4fda-53Kk [211.16.249.52])
2019/05/21(火) 09:10:10.78ID:QjYRL2JZ0
古いバージョンそのまま使い続けたらどうなるん?
何か困るんかね
377デフォルトの名無しさん (ブーイモ MMdf-BTmB [49.239.64.235])
2019/05/21(火) 11:19:38.99ID:EK+TFNQDM
アプリの実装に問題がなくても、
Javaの脆弱性を突かれて問題が発生したりして、
偉い人に怒られる。
378デフォルトの名無しさん (ブーイモ MM6f-yzpl [210.149.254.87])
2019/05/21(火) 13:27:05.00ID:qWv1RF+mM
インターフェースやジェネリクスの勉強がてらqueueの実装をしてみたいのですが、
何かお手本になるOSSやクラスありましたら教えて下さい。
379デフォルトの名無しさん (ブーイモ MM6f-12ew [210.149.251.213])
2019/05/21(火) 14:29:45.10ID:+KjL9pSSM
>>378
JavaのArrayDequeとか
380デフォルトの名無しさん (ドコグロ MM9f-A+mh [49.129.186.34])
2019/05/21(火) 20:16:18.82ID:kdkwqODuM
>>378
queue java 実装 とかでググれば色々出てくるだろ
https://www.atmarkit.co.jp/ait/spv/1010/14/news127.html
381デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202])
2019/05/24(金) 10:11:59.56ID:h3dkW7YJ0
javaの各バージョンの利用者割合の最新情報ある?
382デフォルトの名無しさん (ドコグロ MM33-BVry [49.129.184.178])
2019/05/24(金) 13:54:03.96ID:MvD1XNgcM
>>381
それを知ってどうするの?
SIなら要件上許される範囲で最も新しいLTSを選べばよい。
自社(or個人)サービスなら非LTSの最新を選べばよい。
まさかとは思うがデスクトップアプリの話してるのだとしたら、スタンドアロンJREは廃止されたから、クライアントに元々インストールされているJavaに依存することはできない。
好きなバージョンをアプリに同梱して配布することになる。
いずれにしてもJavaのバージョンは開発者がコントロールするものであり、シェアを気にする意味はない。
383デフォルトの名無しさん (アウアウエー Sae3-PvHu [111.239.185.39])
2019/05/24(金) 16:01:25.52ID:UCsdq/wma
wordpressとかいうのをいじるのつまらなくなったからスッキリわかるjavaかったがやっぱり勉強ってこういう分厚い参考書でやるのが楽しいんだよな!
という事でweb系からjavaの勉強に切り替えます!
俺だけ?
384デフォルトの名無しさん (ワッチョイ 79da-Fpyl [220.220.34.58])
2019/05/24(金) 16:14:23.31ID:Wq593JaR0
アホ、これでいいか
385 ◆QZaw55cn4c (ワッチョイ d347-SwLn [131.129.114.156 [上級国民]])
2019/05/24(金) 20:48:44.65ID:0N6+tWvP0
>>382
永劫 Java8 で固定される(LTSも延長される)未来が見えます…
386 ◆QZaw55cn4c (ワッチョイ d347-SwLn [131.129.114.156 [上級国民]])
2019/05/24(金) 20:49:26.05ID:0N6+tWvP0
>>383
奇遇ですね、私は Java8 から web 系(rails)に乗り換える予定なのです
387デフォルトの名無しさん (ワッチョイ 7bda-Fpyl [223.217.147.110])
2019/05/24(金) 21:47:32.07ID:olKCCVcV0
>>385
日本国籍持ってるの?
388 ◆QZaw55cn4c (ワッチョイ d347-SwLn [131.129.114.156 [上級国民]])
2019/05/24(金) 21:50:52.46ID:0N6+tWvP0
>>387
個人番号通知票は持っています
389デフォルトの名無しさん (ワッチョイ 7bda-Fpyl [223.217.147.110])
2019/05/24(金) 21:58:56.05ID:olKCCVcV0
>>388
帰化したのか
390381 (ワッチョイ 13b9-9b2Z [123.1.16.202])
2019/05/24(金) 22:28:19.75ID:h3dkW7YJ0
>>382
私はJavaエコシステムがJava8に留まってJava9+を無視するのではないかと思っています。
私自身はそうします。
Jigsawや自己完結型というアイデアを拒否します。

それで、世界の動向がどうなのか知りたかった。
391デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202])
2019/05/24(金) 22:29:20.10ID:h3dkW7YJ0
言語仕様が無駄に複雑化していく事も嫌です。
392デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202])
2019/05/25(土) 05:46:59.17ID:7Hh+Cor80
Javaについて調べていると「Javaはサンドボックスを持つ」みたいな記述が出てくるんですが
それはアプレットの事で現在のJavaにはありませんよね?
393デフォルトの名無しさん (ワッチョイ 0b63-rgvw [153.229.160.113])
2019/05/25(土) 09:59:05.83ID:GthOBKy30
>>392
ある
394デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202])
2019/05/25(土) 11:08:34.34ID:7Hh+Cor80
何で検索したら出てきますか?
395デフォルトの名無しさん (ワッチョイ 13b9-9b2Z [123.1.16.202])
2019/05/25(土) 16:15:01.18ID:7Hh+Cor80
executable jar fileはどの環境でもダブルクリックで起動できますか?
396デフォルトの名無しさん (ワッチョイ 992e-dNxZ [118.86.132.227])
2019/05/25(土) 16:17:42.52ID:BD9fwrcm0
>>395
・javaがインストールされてる
・拡張子.jarがjavaに設定されている
の条件が必要かと
397デフォルトの名無しさん (ワッチョイ 0b63-rgvw [153.229.178.3])
2019/05/25(土) 17:40:31.80ID:gn+NIEQb0
>>394
一番堅いのはJVMの仕様書を読むこと

昔も今もJVM上で動くプログラムはすべてSandboxで実行される
その外に出ようとする動作はSecurityManagerが許可不許可を判断して、ダメなら例外を投げて落ちる仕組み
ただし、ローカルで実行されるアプリはデフォルトがすべて許可なので例外が起きることはない
398デフォルトの名無しさん (ラクペッ MMd5-PvHu [134.180.3.217])
2019/05/25(土) 23:22:06.84ID:R40PP6XIM
未経験の他業種工業系アヘアヘ資格マンなんだがオラクル資格は制作物作った後にそのレベル相応の色の奴を取った方がよいの?
それともアヘ顔でgoldの参考書から先に手をつけても良いの
399デフォルトの名無しさん (ワッチョイ e169-NteT [114.169.11.246])
2019/05/26(日) 03:25:14.35ID:mqz5L0en0
goldでも実務経験ないと「で?」って対応されるで
400デフォルトの名無しさん (アウアウエー Sae3-PvHu [111.239.185.146])
2019/05/26(日) 08:07:49.28ID:+MRcn5Kya
>>399
やっぱりな 
電験3種と同じか
401デフォルトの名無しさん (ワッチョイ 115f-k3B8 [106.72.163.96 [上級国民]])
2019/05/26(日) 12:05:01.48ID:heQPrNEA0
>>400
そもそも電気主任技術者は実務が簡単で、さらに試験が実務とかけ離れていて、とにかく謎資格だから比較対象として挙げるべきではない。
402デフォルトの名無しさん (ワッチョイ 2198-SwLn [184.75.214.131 [上級国民]])
2019/05/26(日) 15:39:35.06ID:CpBTYp0n0
>>400-401
あれは地頭をみるための篩なんですよ、持ってればエントリーできる、持ってなければ門前払い、ってやつです
証書番号で試験組か認定組かを判別できるようにしてあるのも、そういう理由によるものです
403デフォルトの名無しさん (アウアウカー Sa75-u6yZ [182.251.149.67])
2019/05/27(月) 00:08:07.02ID:+OdnEgpaa
sandboxなんてとっくの昔にない。大昔からパーミッションと特権で動いてる。
AccessControllerのjavadoc読め。いつまでsandboxとか言ってんだ。
404デフォルトの名無しさん (ワッチョイ 0b63-rgvw [153.229.178.3])
2019/05/27(月) 07:04:51.95ID:Pjuubp9p0
>>403
その機構をオラクルがsandboxって呼んでるじゃん
405デフォルトの名無しさん (ワッチョイ 0b14-Fn1g [153.190.205.213])
2019/05/28(火) 01:15:52.38ID:fEVmQ8I80
eclipseのクラス図自動生成ができない
ドラッグ&ドロップしてもプログラムのタブが開くだけ
406デフォルトの名無しさん (アウアウカー Sa75-u6yZ [182.251.147.74])
2019/05/28(火) 22:43:22.31ID:irfCDf6Aa
>>404
呼んでないからSecurity関連の文書読め。
407デフォルトの名無しさん (ワッチョイ 992e-7KW8 [118.86.129.230])
2019/05/28(火) 23:31:39.52ID:/Hk6Z6hT0
宇宙刑事ジャバン
408デフォルトの名無しさん (ワッチョイ b901-5PYY [126.27.70.174])
2019/05/31(金) 01:42:20.40ID:DmEc6oV20
https://qiita.com/rubytomato@github/items/e4fda26faddbcfd84d16

この記事のHello Worldを表示させるところが分かりません。何故そう表示されるのでしょうか?因みにそのところまで書いてmvn compileやmvn packageは成功してます
409デフォルトの名無しさん (ワッチョイ b901-5PYY [126.27.70.174])
2019/05/31(金) 01:43:15.06ID:DmEc6oV20
>>408
補足: hello worldとどこにも書いてないのにそのように出力されるらしい理由を知りたいです
因みに私の環境ではhelloworldと出てません
410デフォルトの名無しさん (ワッチョイ b901-bUoT [126.27.70.174])
2019/05/31(金) 03:32:40.79ID:DmEc6oV20
springでentityクラスの最後にこのようなメソッドがありました。
どういう意味ですか?

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);
411デフォルトの名無しさん (スッップ Sda2-8eb3 [49.98.153.100])
2019/05/31(金) 08:24:32.49ID:3KxflSzbd
>>408
多分著者の勘違い
ただSpring Bootで特にView作らずに動かしてブラウザで見に行ったら画面上には出てこなかったっけ?

>>410
toStringがわからんというならjava.lang.Objectのjavadoc読め
中に書いてることがわからんというならimport文に書いてる通りcommons-langのメソッドだからそっちのjavadoc読め
412デフォルトの名無しさん (スッップ Sda2-8eb3 [49.98.153.100])
2019/05/31(金) 09:11:45.92ID: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で出す
413デフォルトの名無しさん (ワッチョイ ee14-Vgpo [153.190.205.213])
2019/06/02(日) 04:21:29.06ID:jVO0SlD80
エクリプスでクラス図自動生成できる人いたらバージョンいくつか教えて
414デフォルトの名無しさん (ワッチョイ 0294-LWbF [123.48.112.52])
2019/06/13(木) 22:16:22.39ID:t9tRfwUY0
抽象クラスに設定したアノテーションは子クラスでも有効ですか?
つまりアノテーションは継承されますか?
415デフォルトの名無しさん (ワッチョイ 0294-LWbF [123.48.112.52])
2019/06/13(木) 22:18:45.84ID:t9tRfwUY0
@SomeAnnotation
public abstract class Base{}

public class Child extends Base{}

このときChildはSomeAnnotationを持っていますか?
416デフォルトの名無しさん (ワッチョイ 822c-oZrO [219.162.237.2])
2019/06/13(木) 23:50:57.53ID:NulSwGzN0
「java annotation 継承」で検索!

通常、Java ではアノテーションを継承したり合成したりできませんが、
Spring のアノテーションはできます
417デフォルトの名無しさん (ワッチョイ 822c-oZrO [219.162.237.2])
2019/06/14(金) 02:33:03.12ID:gXbRy3uY0
>>410
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 }"
#=> インスタンスです!
418デフォルトの名無しさん (ワッチョイ b34e-ulgk [210.138.216.243])
2019/06/14(金) 02:47:10.99ID:apjsiMiU0
rubyはマイナー糞言語なので説明には適さない。
未知の物事を基地の物事で言い換えるのが説明。
rubyなんて誰も知らないので説明には適さない。
419デフォルトの名無しさん (ワッチョイ 87da-vI2o [60.35.97.61])
2019/06/14(金) 08:14:55.87ID:4YvVrWmf0
JavaスレでRubyで解説するタコ
420デフォルトの名無しさん (ワッチョイ 0294-LWbF [123.48.112.52])
2019/06/15(土) 05:11:52.42ID:6gRe3JZA0
java雑談スレってないの?
421デフォルトの名無しさん (ワッチョイ 8b3d-zOIz [218.229.147.47])
2019/06/15(土) 09:53:31.26ID:jGa3QHvM0
>>420
http://2chb.net/r/oversea/1553515361/
422デフォルトの名無しさん (ワッチョイ 1701-tPtk [118.1.232.48])
2019/06/15(土) 16:38:39.22ID:N0yWBKZL0
overseaってw
423デフォルトの名無しさん (ワッチョイ 0f01-ITJd [126.27.70.174])
2019/06/16(日) 20:10:04.64ID:sKatPFbV0
SpringのModelAndViewってhtmlのフォームから送られてきた値が同じメソッドの引数に書かれたxxxFormクラスやxxxBeanクラスのインスタンスに勝手にバインドされないの?

されるようにするにはどうすればいいの?
https://qiita.com/yakumo3390/items/4d4214fc4ded78f40517
424デフォルトの名無しさん (ワッチョイ 02b0-bbbA [123.224.100.119])
2019/06/18(火) 06:23:13.55ID:3nOE2mBA0
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
http://2chb.net/r/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
425デフォルトの名無しさん (ワッチョイ 0f01-ITJd [126.27.70.174])
2019/06/18(火) 19:31:12.22ID:BOIyU+dK0
thymeleafのth:attrってどう使うの?タグがリプレイスされるのは分かるけど条件指定とかは?多言語のメカニズムはどうなってる?
426デフォルトの名無しさん (アウアウウー Sa6b-7DQ/ [106.132.132.141])
2019/06/19(水) 09:54:49.03ID:WYELJAwQa
何の話?
427デフォルトの名無しさん (ワッチョイ 8b3d-zOIz [218.229.147.47])
2019/06/19(水) 20:48:44.66ID:96uVR6tp0
Springちゃうの?
428デフォルトの名無しさん (ワッチョイ 87da-vI2o [60.34.155.119])
2019/06/19(水) 20:51:20.38ID:U/2T24gw0
Spring has come
429デフォルトの名無しさん (ワッチョイ 0301-/t5l [126.27.70.174])
2019/06/20(木) 21:08:39.15ID:BroFGJyi0
Mavenがオワコンな理由が分からん
確かにXMLはダルいけどMavenに関してはmvn repositoryでググって切った張ったするだけじゃん
GradleやBezelとやらが必要な理由は?
430デフォルトの名無しさん (ワッチョイ 7e46-RkCp [153.166.249.38 [上級国民]])
2019/06/22(土) 16:15:50.52ID: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(異常)
}
}
}
431デフォルトの名無しさん (ワッチョイ 7e46-RkCp [153.166.249.38 [上級国民]])
2019/06/22(土) 16:21:51.00ID:USNyaIVz0
>>430続き
----------------------------------------------------
A.properties中身

お前は
天才

----------------------------------------------------
正常テスト
@Test
test00{
main()
}

mainで例外発生テスト
@Test
test01{
mainで即例外を発生させる処理 ←わからん
}
A.propertiesの中身が"アホ"だったテスト

@Test
test02{
Main.Calc()の"天才"を格納した変数を書き換える処理? ←わからん
}
432デフォルトの名無しさん (ワッチョイ 7e46-RkCp [153.166.249.38 [上級国民]])
2019/06/22(土) 16:28:41.86ID:USNyaIVz0
>>430>>431続き

A.propertiesが読めなかったテスト
@Test
test03{
Read.ReadTxt()の読み込みパスを一時的に書き換える処理? ←わからん
}

・一回一連のテスト流してバレッジ100%にしたい

・main側で即例外がでる処理が分かりません。

・Test01でA.txtを読んだ値を格納した変数を”天才”"→アホ"へ変更する処理が分かりません。

・・Test03で読み込み先を一時的に変更する処理が分かりません。
433デフォルトの名無しさん (ワッチョイ ff5f-JPFb [106.72.163.96 [上級国民]])
2019/06/23(日) 02:34:01.51ID:14HOOLCC0
テストのやり方を知らない者同士でテストをやっているのかね?
434デフォルトの名無しさん (ワッチョイ ff5f-JPFb [106.72.163.96 [上級国民]])
2019/06/23(日) 02:36:31.66ID:14HOOLCC0
テストだと思ってないということか?
435デフォルトの名無しさん (ラクペッ MM0b-wH6t [134.180.5.17])
2019/06/23(日) 03:58:19.27ID:Qs981YkgM
二次元配列をsortするのってどうやればいいの?
436デフォルトの名無しさん (ワッチョイ e602-Im5L [175.134.57.7])
2019/06/23(日) 04:20:32.18ID:tw+Py36V0
>>435
java.util.Arrays.sort(T[] a, Comparator<? super T> c) 使えば良いのでは?
Comparator 自分で書く事になるから1次元だろうが2次元だろが何次元だろうがソートできる。
437デフォルトの名無しさん (ラクッペ MMa3-wH6t [110.165.195.98])
2019/06/24(月) 08:10:50.49ID:+C8ZS5/NM
springとかの依存性の注入ごわからないんだけど
コーディングしている時にコンパイルエラーが出ない以上の意味があるの?
438デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50])
2019/06/24(月) 20:09:20.96ID:218UFAwP0
継承より委譲と言われるけど、逆に継承のメリットってなんですか?
439デフォルトの名無しさん (ワッチョイ 3eda-mDEe [121.118.76.205])
2019/06/24(月) 20:14:26.19ID:vFVmaW5L0
spring has com
440デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50])
2019/06/24(月) 21:02:09.88ID:218UFAwP0
合成使えっていうけど、合成用にセットしたオブジェクトが複数あったとして、それらの間に依存関係を
作りたい場合、実はそれって多重継承みたいなものじゃないですか?
441デフォルトの名無しさん (ラクペッ MM0b-Ozek [134.180.0.94])
2019/06/24(月) 21:10:43.67ID:S4tOibHdM
継承は多様性のために使え
機能の流用のために(それだけを目当てに)使うなってことかと
442デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50])
2019/06/24(月) 21:44:19.82ID: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{}

こんな感じにしていけるから、ほとんど常に継承は委譲に置き換えれるのでは?
443デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50])
2019/06/24(月) 21:52:32.50ID:218UFAwP0
Animalに対してDog,Catが定義されるのは多様化だと思うけど
この場合に継承を使う事は妥当なんだろうか?
この調子で多くの動物を扱っていくとして。
検索してみるとそのような事すら否定されてる気がする
444デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50])
2019/06/24(月) 22:07:32.22ID:218UFAwP0
https://qiita.com/tutinoco/items/6952b01e5fc38914ec4e
>コンポジションの使い方は、下記のコードを見ただけですぐ理解できるでしょう。

車によって自動ブレーキシステムを搭載しているかが違うが、
Carクラスは自動ブレーキシステムのフィールドを一応持っておいて
自動ブレーキシステムを持たない車種ではnullにしておくんですか?
そうすると車のあらゆる概念を扱っていった時、nullだらけになりませんか?
50年前の車が持っていた概念、非常にマイナーな車が持っていた概念とかどう扱う?
継承なら共通概念を括りだせる()からマイナーな車は単に抽象Carクラスを継承して
自分が持つマイナーなフィールドを追加するだけです。
445デフォルトの名無しさん (ワッチョイ aa2c-udt/ [219.162.237.2])
2019/06/25(火) 05:40:48.77ID:/8kFlQVi0
継承は例えば、Ruby on Rails みたいな、フレームワークを使う場合だろ

http://localhost:3000/friends/new

ここで、自分で定義した(カスタム)コントローラーは、friends で、アクションは、new とする。
カスタムコントローラーは、フレームワークのコントローラーの、ApplicationController から継承して作られる。
その中には、アクションのメソッドを定義する

class FriendsController < ApplicationController
def new
end
end

ファイル名は、friends_controller.rb, application_controller.rb

このように、継承は作り方がきっちり決まっている、フレームワークの主要クラスで使われる。
お作法!
446デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50])
2019/06/25(火) 06:04:13.20ID:Cc6pu6kp0
そういうのは分かる。明らかに継承が便利。
でもアプリ独自のモデルクラスで継承を使うのはどうなのかと思って。
447デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50])
2019/06/25(火) 06:36:55.33ID:Cc6pu6kp0
継承を合成に書き換えるとしたら、
継承における上下の依存関係、つまり親クラスのprotectedな要素へのアクセスや
仮想メソッドを通じた子クラスによる振る舞いの変更は、合成でどう書くのか?
つまり委譲先オブジェクトが多数ありそれらが相互に依存しているような場合。
AllDependencyHolderみたいなインターフェースをホストオブジェクトに実装して
各種委譲先オブジェクトのゲッターを宣言して
委譲先オブジェクトのメソッドにいちいちthisを渡すような実装しかない気がするんだけど合ってる?
448デフォルトの名無しさん (ワッチョイ 2ab9-br4T [123.48.158.50])
2019/06/25(火) 18:10:32.10ID:Cc6pu6kp0
継承使ってく事にした
自分的にそれで納得できた
449デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/06/28(金) 22:42:05.64ID:k4pW0x/X0
Project Loomのfiberと呼ばれている技術で100万スレッドできるらしいですが
ExecutionServiceに100万タスクを登録するのと何が違いますか?
定期実行のもあるわけですが
450デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/06/28(金) 22:47:02.46ID:k4pW0x/X0
通常のスレッドよりスイッチングが高速、とあるな。
ExecutionServiceは内部でThread使ってるからタスクの切り替えコストが違うのか
451デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/06/30(日) 16:43:29.01ID:y+UHg1Q80
Process#getOutputStream
これでパスワードを送信するのは安全?つまり他プロセスに傍受される心配はある?
localhost内で、送信元と送信先は自分のアプリのプロセスで。
452◆QZaw55cn4c (ワッチョイ ff47-QJ8z [131.129.114.156 [上級国民]])
2019/06/30(日) 16:48:10.42ID:4WWIfODW0
>>451
インテル脆弱性の前には何をやっても無駄なのでは?
453デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/07/01(月) 19:10:48.80ID:PRpBlBSs0
Javaの日時系クラスってバカが作ってるのかな?
454デフォルトの名無しさん (アメ MM07-rSnO [210.142.96.198])
2019/07/01(月) 19:20:18.37ID:MoEwNeEzM
それを丸パクリしたJavaScriptでも大変不評です
455デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/07/02(火) 12:07:42.78ID:I3kswGZV0
Javaのモジュールという構想は本当に必要なの?
456デフォルトの名無しさん (アウアウウー Sa47-jhwL [106.132.127.162])
2019/07/02(火) 13:11:09.01ID:duTOXDdLa
知らない。俺はまだ扱い方がよくわかってない。
457デフォルトの名無しさん (ラクッペ MM67-eD7e [110.165.128.15])
2019/07/02(火) 13:32:42.49ID:LfC41+BGM
まあ必須では無いと思う
458デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/07/02(火) 13:40:47.49ID:I3kswGZV0
Mavenと比較すると一部のクラスを完全に非公開にできるというだけでしょ。
でもその程度では結局後方互換性の問題の完全解決ではないから
強制導入させて何がやりたいのか
459デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/07/03(水) 03:08:24.72ID:C46248vl0
Javaの高速リリースとかいって無駄に複雑化させまくってる面がかなりある
460デフォルトの名無しさん (ラクッペ MM47-eD7e [202.176.18.142])
2019/07/03(水) 07:05:27.23ID:YhvjepvzM
Javaの良いところ殺してるからな
言語仕様ころころ変えられて迷惑でしかない
461デフォルトの名無しさん (ワッチョイ 5361-Ij2G [112.136.82.127])
2019/07/03(水) 07:12:38.31ID:DRDew2U40
8と11で3年以上空いてるだろ。次のLTSも2年以上先だ。
462デフォルトの名無しさん (アウアウウー Sa47-jK3L [106.180.2.16])
2019/07/03(水) 07:39:05.54ID:ZPqKMvhJa
>>460
Javaの良いところは安い人員をバルクで調達できるところだからねえ
言語仕様の拡張は人員のクオリティにムラが出る原因になる
463デフォルトの名無しさん (アウアウウー Sa47-jhwL [106.132.127.48])
2019/07/03(水) 12:47:59.60ID:0rGzsSa9a
Kotlinもよろしく
464デフォルトの名無しさん (ワッチョイ 6f90-uAY+ [119.83.220.183])
2019/07/03(水) 14:44:39.62ID:IwG6dpwN0
しばらく高速リリースでいいよ。今までがチンタラしすぎて、言語機能やらライブラリかなり他と比べて見劣りしてた。どんどん新機能追加がんばれ
465デフォルトの名無しさん (ドコグロ MM9f-jK3L [49.129.185.136])
2019/07/03(水) 15:11:11.12ID:hoHjSSrxM
Enterprise Java とか称してjavacのソースバージョンを6に指定するのが流行りそう
466デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/07/03(水) 17:26:52.20ID:C46248vl0
https://docs.oracle.com/javase/jp/8/javafx/layout-tutorial/size_align.htm
>border.setPadding(new Insets(20, 0, 20, 20));
>vbButtons.setSpacing(10);

こういう大きさとか座標系の数値はピクセル?
調べても単位が不明なんだが。
467デフォルトの名無しさん (ワッチョイ 7fb9-a57L [123.48.158.50])
2019/07/03(水) 17:28:29.94ID:C46248vl0
https://stackoverflow.com/questions/41241885/setheight-in-jfx-set-height-in-which-unit
pixelみたいだな

うーん
468デフォルトの名無しさん (ワッチョイ ffb9-T0Pq [123.48.158.50])
2019/07/04(木) 14:57:00.44ID:1bFHm9QF0
module-info.javaのrequiresはバージョンを指定しないから
依存性解決として不十分だと思うんだけど
もし実行時環境にバージョンが異なる複数のモジュールがあったらどうするの?
しかもいずれも必要で他のモジュールから参照されていたら。
pom.xmlを標準で採用してjarに含めるようにしたほうがよかったんじゃないの?
469◆9GoCDasLbI (ワッチョイ ffb9-T0Pq [123.48.158.50])
2019/07/04(木) 16:48:48.61ID:1bFHm9QF0
トリップつける
470デフォルトの名無しさん (ワッチョイ 6f01-VtwU [111.90.18.234])
2019/07/07(日) 01:06:12.15ID:HGCAr90Y0
あるディレクトリの1階層に下にあるファイルとディレクトリを取得したいのですが
簡単な方法ありますか?

あるディレクトリはPath型で指定して
取得するファイルやディレクトリはPath型のListに格納したいです
471デフォルトの名無しさん (ワッチョイ 6f01-VtwU [111.90.18.234])
2019/07/07(日) 01:37:07.01ID:HGCAr90Y0
>>470
自己解決しました
472デフォルトの名無しさん (ワッチョイ ff2c-NenP [219.162.237.2])
2019/07/07(日) 12:04:32.79ID: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
473デフォルトの名無しさん (ドコグロ MMc7-c4tc [118.109.189.52])
2019/07/07(日) 12:36:49.37ID:CK++WJ+eM
>>472
グロ
474デフォルトの名無しさん (ワッチョイ 0346-VkkL [180.0.70.244 [上級国民]])
2019/07/09(火) 23:54:05.37ID: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」というものは出てきませんでした。
475デフォルトの名無しさん (ワッチョイ 6f01-3xYg [111.90.12.92])
2019/07/10(水) 00:18:52.26ID:9g1OJL4d0
他に意味はありません
476デフォルトの名無しさん (ワッチョイ 6f01-3xYg [111.90.12.92])
2019/07/10(水) 00:20:58.93ID:9g1OJL4d0
定数をまとめてるだけ
privateはそのクラス内でしか参照しないってこと
477デフォルトの名無しさん (ワッチョイ 6f01-3xYg [111.90.12.92])
2019/07/10(水) 00:21:49.62ID:9g1OJL4d0
大したことやってない調子に乗るなとコメントに書いといたが良い
478デフォルトの名無しさん (ワッチョイ 2301-rgZK [60.126.40.87])
2019/07/10(水) 02:33:49.57ID:1RE3v5Jp0
テストコード書いたことなくて勉強してるんだけど
どんな粒度で書けばいいのか分からない

どこかいいソースとかサイト誰か教えて
JavaのArrayListとかってテストコードあるの?
479デフォルトの名無しさん (スプッッ Sd92-uYoH [1.75.233.111])
2019/07/13(土) 22:05:57.64ID:cGtMHMBed
streamに対する操作として、max(Comparator::natualOrder)みたいにメソッド参照で操作できますか。どの参考書にもComparator.natualOrder()を使ってるのですが
480デフォルトの名無しさん (ワッチョイ 9e02-24gz [175.134.57.7])
2019/07/13(土) 22:46:57.40ID:8ITWxw560
だから?
481デフォルトの名無しさん (ワッチョイ 9e01-R2Rk [111.90.18.234])
2019/07/13(土) 22:53:55.53ID:ceXHLd/u0
>>479
やってみればわかるけどmax(Comparator::natualOrder)はコンパイルエラーになるよ

maxの引数はComparator型のオブジェクト
Comparatorは任意の型の値を2つ受け取ってint型の値を返すもの

Comparator::natualOrderは0個の引数を受け取ってComparatorを返すもの

natualOrderが返すものがComparatorであってnatualOrder自体はComparatorじゃないからムリ
482デフォルトの名無しさん (ワッチョイ 522c-i8Xk [219.162.237.2])
2019/07/13(土) 23:05:17.14ID:3z2XwFOM0
>>478
RSpecで書かれたRailsチュートリアル 第6章のテストコードをレビューしてみた

@YouTube



伊藤淳一のRuby on Rails のテスト動画ならあるけど
483デフォルトの名無しさん (ワッチョイ 9746-qIgc [180.0.70.244])
2019/07/14(日) 02:22:08.36ID:PhrrbKHI0
固定リスト(aslist)と不変リスト(list.of)の意味の違いがわかりません。

addとか操作できないなら同じじゃないんですか?
484デフォルトの名無しさん (ワッチョイ d2b9-YtL5 [123.48.158.50])
2019/07/14(日) 03:04:54.15ID:uKA/y8Qo0
プロジェクトをjarに出力しようとしてる。
jarのmeta-infフォルダの内容をカスタマイズしたいがどうすればできるか?
485デフォルトの名無しさん (ワッチョイ d2b9-YtL5 [123.48.158.50])
2019/07/14(日) 04:34:56.16ID:uKA/y8Qo0
Javaプロジェクトで作成してソースフォルダ直下に置いたらできた
でもMavenプロジェクトだとソースフォルダ直下に何かを置くという操作ができないな
486デフォルトの名無しさん (ワッチョイ 9e02-24gz [175.134.57.7])
2019/07/14(日) 04:53:07.55ID:VYOKuUQn0
>>483
https://codeday.me/jp/qa/20190310/372440.html
487デフォルトの名無しさん (ワッチョイ 8701-XC/u [126.90.90.45])
2019/07/17(水) 13:24:48.47ID:AbaZohHR0
Javaのアップデートに関する質問です。
環境はwindows8.1で、タスクバーにJavaのアイコンが現れて「Java Update利用可能」の状態なのですが、
アイコンをダブルクリックすると

スクリプトエラー
このページでスクリプトエラーが発生しました。
ライン; 1
文字 : 1
エラー: ')' がありません。
コード: 0
URL:

と表示されてインストールが出来ません。
どうすればアップデートできるのでしょうか?
488デフォルトの名無しさん (ワッチョイ 2bda-TPoM [114.185.9.58])
2019/07/17(水) 13:30:46.74ID:fonZVrUF0
それプログラムの話か?
489デフォルトの名無しさん (アウアウウー Saa3-KZVA [106.132.129.79])
2019/07/17(水) 18:03:20.99ID:YN7zKeiTa
>>487
わからない。一度アンインストールしてから新しいやつ自分でダウンロードしてインストールし直したら?
490デフォルトの名無しさん (アークセー Sx27-AvHN [126.228.18.101])
2019/07/17(水) 19:44:43.28ID:Dw6BLpSrx
>>487
アインストールして入れ直せばできたぞ
491487 (ワッチョイ 0501-/r7K [126.90.90.45])
2019/07/18(木) 01:34:31.80ID:KhUYMYet0
>>489,490
ありがとう、公式からインストーラーダウンロードして手動でインストールしたら出来ました。
しかしインストール後 Javaコントロールパネル を覗いてみると 「アップデート」のタブがなくなっています。
「アップデート」のタブって消えたりするものでしたっけ?
492デフォルトの名無しさん (オッペケ Sr11-KwlG [126.179.118.91])
2019/07/23(火) 12:11:44.39ID:J+ZHGa1Mr
初心者なんですが

ホームページ作るんですけどmysql使ってデータ入力して
そのデータを例えばプルダウンメニューからa-zの頭文字をクリックして引き出して表示させる、みたいな感じにしたいんですが
色々調べたらphp使った方がいいみたいな記事ばかりなんですが
javaだと難しいんでしょうか?
493デフォルトの名無しさん (ワッチョイ 6b02-tWJ1 [113.158.53.138])
2019/07/23(火) 12:23:47.74ID:zKHHLY/G0
javaを使える人が試しにphp使うとphpの楽さがわかる程度に楽なはず
odbcを難なく使えるならばjavaですんなり作れる腕のはず
494デフォルトの名無しさん (ドコグロ MM13-fHem [119.241.244.73])
2019/07/23(火) 12:25:49.33ID:pMPIgbDXM
難しいというかゴキブリを殺るのにショットガンを持ち出すようなもの
495デフォルトの名無しさん (ブーイモ MM2b-lP7j [163.49.214.163])
2019/07/23(火) 20:28:53.96ID:sDqE/UWhM
最近のGは殺虫剤耐性あるらしいから、確実性を狙うならあるいは…
496デフォルトの名無しさん (ワッチョイ 23ad-0ngu [27.139.18.89])
2019/07/24(水) 02:44:47.37ID:S0ZgllDI0
凍らすやつ使いなさい
497デフォルトの名無しさん (ワッチョイ 35f0-ONaZ [58.98.134.167])
2019/07/25(木) 23:39:46.79ID:uj29tKpW0
eclipseいれたんですが、重すぎて全然動かなくて困りまして‥
軽くておすすめのIDEありますか?みなさんは何を使っているんでしょうか
498デフォルトの名無しさん (ワッチョイ 1201-2tjw [123.216.109.150])
2019/07/25(木) 23:52:41.82ID:uZl1AFvy0
NetBeansしか使ってないけど、ふつうに快適だお。
499デフォルトの名無しさん (アウアウウー Sa4d-LsNC [106.180.6.193])
2019/07/25(木) 23:57:00.32ID:BYStTgyKa
今だとIntelliJかVSCodeだな
eclipseが重いならIntelliJも辛いかも
VSCodeは設定が少々面倒だが軽いしeclipseとかいうゲロ糞よりは遥かに使いやすい
500デフォルトの名無しさん (ワッチョイ 9e12-xrbd [121.103.136.72])
2019/07/26(金) 00:00:45.33ID:4WOlvOyb0
俺もvscodeしか使わなくなってしまったけど、eclipseのリファクタ機能は神がかってたと思う
501デフォルトの名無しさん (ワッチョイ d5a3-+Thh [218.226.211.189])
2019/07/26(金) 10:42:10.57ID:FYq97nVK0
>>429
増分コンパイルされないから
502デフォルトの名無しさん (ラクッペ MMe9-3F5L [110.165.180.240])
2019/07/26(金) 11:09:47.00ID:bozmWfe6M
>>497
netbeans使ってるわ
動き自体は軽くて快適だよ
apacheに移って将来性良くわからんけどね
503デフォルトの名無しさん (ワッチョイ 92f0-wm0+ [61.193.209.32])
2019/07/27(土) 11:44:00.92ID:Ly9dgVjB0
5Gの時代だとJAVAの需要って増えるんでしょうか?
504デフォルトの名無しさん (ワッチョイ b6da-KIok [223.218.149.148])
2019/07/27(土) 12:34:46.96ID:+u70Cj0O0
増えるよ
505デフォルトの名無しさん (ワッチョイ 92f0-wm0+ [61.193.209.32])
2019/07/27(土) 12:43:20.69ID:Ly9dgVjB0
オラクルすごいっすね
506デフォルトの名無しさん (オイコラミネオ MM11-CDeu [150.66.67.123])
2019/07/27(土) 23:34:08.27ID:gfq5vQssM
javaってなんでjavaって名になったんですか?
507デフォルトの名無しさん (ワッチョイ 3601-FpXu [111.90.8.52])
2019/07/27(土) 23:44:51.88ID:6Xw13KxI0
>>506
「私は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
https://www.javaworld.com/article/2077265/so-why-did-they-decide-to-call-it-java-.html
508デフォルトの名無しさん (ワッチョイ a5ad-f/ht [42.145.105.241])
2019/07/28(日) 14:56:11.60ID:K7yfQMT20
通知バーのJAVAアイコンからインストールしようとするとかっこがありませんっていう構文エラーが出てきてうんともすんとも言わなくなるんだけど何なの?
509デフォルトの名無しさん (ワッチョイ a5ad-f/ht [42.145.105.241])
2019/07/28(日) 14:58:28.50ID:K7yfQMT20
>>487
よくみたらこれだわ
7でも10でも会社のPCでももれなく起きるわ
公式で何か言ってくれてたりしないのかな
510デフォルトの名無しさん (ワッチョイ d561-JDM+ [218.231.141.143])
2019/07/28(日) 18:28:52.54ID:FY1e9//S0
ライセンス変更になって、OTNに登録していないとDLできないようになったからじゃね?
どのみち、Java8を最後にJRE単体配布もなくなるし。
511デフォルトの名無しさん (ワッチョイ a5ad-f/ht [42.145.105.241])
2019/07/28(日) 18:35:57.14ID:K7yfQMT20
仮にそれだとして)がありませんエラーでタスクバーにアイコン表示させっぱなしにするという糞対応する?
512デフォルトの名無しさん (ラクッペ MMe9-lxW0 [110.165.178.16])
2019/07/28(日) 23:05:49.68ID:6yOnmo+3M
java silverとるなら8と11どっちがいいんだろ?
513デフォルトの名無しさん (ワッチョイ b6da-KIok [223.218.153.168])
2019/07/28(日) 23:13:42.22ID:fQf3JBTW0
お好きなように
514デフォルトの名無しさん (ドコグロ MM9a-LsNC [119.243.54.127])
2019/07/29(月) 08:45:19.65ID:f73BLAzPM
どっちも等しく意味はないからどっちでも
515デフォルトの名無しさん (スププ Sdb2-6AdZ [49.98.65.158])
2019/07/29(月) 21:45:18.18ID:CSar0obtd
★★Java質問・相談スレッド182★★ 	YouTube動画>12本 ->画像>6枚
516デフォルトの名無しさん (ワッチョイ b6da-9Rzn [223.218.251.239])
2019/07/29(月) 22:07:22.51ID:ah/mqMgZ0
>>515
グロ
517デフォルトの名無しさん (ワッチョイ f6a6-CDeu [119.240.124.4])
2019/07/30(火) 07:18:51.66ID:VrpHK0hY0
またウン○か!
518デフォルトの名無しさん (ワッチョイ e3ed-J+AI [61.203.126.217])
2019/08/14(水) 21:20:43.55ID:k4UWt8la0
mutex
519デフォルトの名無しさん (アウアウクー MM4f-m73o [36.11.225.87])
2019/08/21(水) 16:15:25.16ID:0yVqkKpPM
public <T> T & Cloneable makeItCloneable(final T it) {
return (T & Cloneable) it;
}
みたいなことってどうやったらできるんですか?このソースコードだとマーカーアノテーションのくせにCCEが投げられるんですけど
520デフォルトの名無しさん (アウアウウー Sa2b-ZOU2 [106.132.128.168])
2019/08/21(水) 20:08:48.99ID:8NVHTeeBa
&?
521デフォルトの名無しさん (ワッチョイ 87ed-MlRc [122.135.18.167])
2019/08/27(火) 00:51:52.57ID:A4w3mNFW0
わらた
522デフォルトの名無しさん (ワッチョイ 87ed-MlRc [122.135.18.167])
2019/08/27(火) 00:52:40.01ID:A4w3mNFW0
Classってクラスにそんなメソッドあったかも、
523デフォルトの名無しさん (アウアウエー Sae3-J8OI [111.239.252.142])
2019/10/03(木) 14:17:38.96ID:FzwUXprsa
図書館で2007年出版の参考書借りてきたんですがまだ使えますか?
524デフォルトの名無しさん (アウアウウー Sa9d-J8OI [106.180.10.197])
2019/10/03(木) 21:24:07.43ID:Y8ReZprUa
使ってみたらライブラリDLするところでリンク切れてて実行環境作れませんでした・・・出直してきます

環境変数とドキュメントの入手は成功したんですが古い参考書はダメですね
525デフォルトの名無しさん (ワッチョイ 1394-o6K/ [123.48.64.125])
2019/10/08(火) 00:59:42.36ID:pe44plco0
awtは今後もサポートされ続けるの?
打ち切りの話とか出てる?
526デフォルトの名無しさん (アウアウウー Sa9d-8Spd [106.132.135.144])
2019/10/08(火) 10:24:59.08ID:UHIrT7RMa
さあ?しかし swing のベースにもなっているので無くなれば swing ごと消滅になると思うよ。
527デフォルトの名無しさん (ワッチョイ 1394-o6K/ [123.48.64.125])
2019/10/08(火) 17:43:19.07ID:pe44plco0
Desktopクラスがawtだから
javaでURLを開いてデフォルトブラウザで開こうとしたらawt必須でしょ?
javafxにDesktopクラスに相当するものがないし
awtはGUIフレームワークというよりもっと広い範囲の機能を持ってしまってる
528デフォルトの名無しさん (アウアウウー Sa9d-8Spd [106.132.138.94])
2019/10/08(火) 21:06:48.90ID:gO+Oxfwra
ネイティブ環境との橋渡し的なものだな
529デフォルトの名無しさん (ワッチョイ 2302-6CKJ [125.52.64.191])
2019/10/11(金) 08:20:28.90ID:OWmYpcgG0
Javaの課題が大量に出たのですがメソッドがうまく理解できず全く進めません

厚かましいですが問題を解いて解説できる方がいらっしゃったらお願いします

★★Java質問・相談スレッド182★★ 	YouTube動画>12本 ->画像>6枚
★★Java質問・相談スレッド182★★ 	YouTube動画>12本 ->画像>6枚
530デフォルトの名無しさん (ブーイモ MM59-pmjG [210.149.253.103])
2019/10/11(金) 08:26:49.78ID:Z7kWidgaM
>>529
どこまで自分でかけたのか晒してくれないと教える気にならん
531デフォルトの名無しさん (ワッチョイ 2302-6CKJ [125.52.64.191])
2019/10/11(金) 08:38:54.76ID:OWmYpcgG0
すみません、問題を間違えてました
こちらの問題です
かけたのはここまでです


★★Java質問・相談スレッド182★★ 	YouTube動画>12本 ->画像>6枚

★★Java質問・相談スレッド182★★ 	YouTube動画>12本 ->画像>6枚
532デフォルトの名無しさん (オッペケ Sr61-II0b [126.34.6.182])
2019/10/11(金) 09:29:43.97ID:R6n+lsqkr
メソッドの書き方自体は問題無いから中身だね
a % b == 0 のときaはbの倍数
これとfor文とif文を組み合わせてカウントして出力しよう
533デフォルトの名無しさん (ワッチョイ 2302-6CKJ [125.52.64.191])
2019/10/11(金) 09:40:24.96ID:OWmYpcgG0
ありがとうございます…!
やってみます!
534デフォルトの名無しさん (アウアウクー MMe1-mT29 [36.11.225.124])
2019/10/12(土) 02:36:24.75ID:w1B6WBqOM
とりまpc使おうず
535デフォルトの名無しさん (ワッチョイ 23d2-cmrh [125.175.139.232])
2019/10/15(火) 22:14:15.26ID:d4ecUmga0
DateTimeFormatterについて教えて。

日付を月と日にフォーマットしたいのですが簡単な方法はありませんか?
システムの言語が日本語だったら10月15日で英語(US)だったらOctober 15などと表示したいです。
DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG).format(localDate)とすると
2019年10月15日となってしまって年が不要です。

JDK1.8でandroidアプリです。
536デフォルトの名無しさん (ブーイモ MM43-t7gx [49.239.64.101])
2019/10/16(水) 11:46:30.44ID:WGPalTIjM
>>535
https://developer.android.com/reference/android/text/format/DateUtils.html?#formatDateTime(android.content.Context,%20long,%20int)
537デフォルトの名無しさん (ワントンキン MMd2-j/w9 [153.248.231.150])
2019/10/17(木) 07:07:53.32ID:8j+Ah9oeM
ありがとう
簡単にできそうです
OSによって微妙に動作が違うっぽいけどいろいろ使えそう
538デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125])
2019/10/25(金) 14:12:30.48ID:RuWUXZ3V0
javaとc#で総称型の実装が違うけど
javaのイレージャというのは実際どう思う?
実際書いてるとなんとかなるけど、総称型情報が実行時に取得できないというのは、
処理系の評価としてはどうなんだろうか?

つまりjavaは付け焼刃の中途半端な実装をしているんだろうか?
それともイレージャが理想なんだろうか?
539デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125])
2019/10/25(金) 15:36:15.49ID:RuWUXZ3V0
SecurityManagerで動的にロードされたプログラムにポリシーを適用するという方法で
「動的にロードされたプログラムはこれらのパッケージ(またはメソッド)にのみアクセスしていい」
というような制限は実現できる?
540デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125])
2019/10/25(金) 15:50:04.14ID:RuWUXZ3V0
AWTPermissionみたいないろんなパーミッションがあるけど
そもそもある動作がどんなパーミッションを必要とするか?をカスタマイズできるのかどうか。
自分の独自クラスが独自パーミッションを必要とする、という事は可能なのか?
541デフォルトの名無しさん (ブーイモ MM7f-0VxI [163.49.201.129])
2019/10/25(金) 21:18:19.60ID:XWvZhZOSM
>>540
可能
https://wiki.sei.cmu.edu/confluence/plugins/servlet/mobile?contentId=88487519#content/view/88487519
542デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125])
2019/10/26(土) 08:22:00.87ID:eCInqrX90
そのページにSecurityManagerに関したことは何もないと思うが?
543デフォルトの名無しさん (ブーイモ MM5f-0VxI [49.239.66.178])
2019/10/26(土) 10:07:30.29ID:NCT+ojVgM
>>542
ハッシュの有無で表示されるページが変わる(5chはurl encode/decodeしてないからjumpページでハッシュが消費される)

デスクトップ版のURL
https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=88487519
544デフォルトの名無しさん (ワッチョイ 3f94-MZfN [123.48.64.125])
2019/10/26(土) 11:01:22.96ID:eCInqrX90
おお、ありがとう。できるみたいだな。
545デフォルトの名無しさん (スップ Sd5a-vNqd [49.97.108.16])
2019/10/31(木) 11:55:26.14ID:uuxNXwwOd
今swingでアプリ作ってるんだけど
JButtonで別クラスの処理を呼び出してその進捗をJTextAreaとかに表示させたい場合は引数としてJTextAreaの変数を持たせるのでいいのかな?
546デフォルトの名無しさん (スップ Sd5a-vNqd [49.97.108.16])
2019/10/31(木) 11:56:19.01ID:uuxNXwwOd
すまん書き忘れた
一応動いてはいるけどこれが正しい手法なのか知りたい
547デフォルトの名無しさん (ブーイモ MMef-rMnR [210.138.176.17])
2019/10/31(木) 14:42:41.53ID:ovdADILrM
>>545
Observerパターン使うかコールバック関数渡すかして進捗報告のタイミングでコールバックさせる
548デフォルトの名無しさん (スップ Sdfa-vNqd [1.75.3.131])
2019/11/02(土) 14:26:37.67ID:9S5zkDTmd
>>547
なるほどありがとう

あとずっと気になってたんだけど
時々コンストラクタじゃなくてそのクラスのstaticメソッド使ってインスタンスを初期化するようなクラスがあるけど
アレってどんな意味があるの?
549デフォルトの名無しさん (ブーイモ MMef-rMnR [210.149.255.69])
2019/11/02(土) 22:26:37.87ID:UpyqzFZSM
>>548
Effective JavaのItem1なので
「"static factory method" "effective java"」で検索して解説を読むといいと思う
550デフォルトの名無しさん (ワッチョイ 575f-HgEL [106.72.163.96 [上級国民]])
2019/11/02(土) 22:43:41.51ID:qsr44g5y0
>>548
必ずコンストラクタで初期化するものなら、コンストラクタそのものがいらないことに気づかないのか?
551デフォルトの名無しさん (ワッチョイ 575f-HgEL [106.72.163.96 [上級国民]])
2019/11/02(土) 22:51:03.49ID:qsr44g5y0
間違った。コンストラクタで同じ初期化をされると都合が悪い場合だった。

コンストラクタは常に同じ初期状態を作るために存在しているので、初期状態を複数パターン持ちたい場合は、コンストラクタが邪魔になる。
552デフォルトの名無しさん (ワッチョイ d642-vNqd [175.41.64.207])
2019/11/03(日) 06:15:26.16ID:Z7LNI9940
>>549
ありがとう
ちょっと内容紹介してるブログ読んだけどこの本わかりやすくていいな
553デフォルトの名無しさん (アウアウウー Sab7-a5T4 [106.132.122.50])
2019/11/03(日) 17:36:34.34ID:+YBSyx/ia
>>548
実装を隠したい時とかかな。
interface または abstrct クラスを公開して実装したクラスを非公開にして直接 new させない。
しかしどこかで new する必要があるので stasic メソッド作ってそこでやる。
554デフォルトの名無しさん (ワッチョイ d642-vNqd [175.41.64.207])
2019/11/03(日) 20:17:58.07ID:Z7LNI9940
>>553
隠したいってのは知的財産的な意味で?
完全な趣味でやってるからその辺の事情となるとよくわかんないや
555デフォルトの名無しさん (ワッチョイ 3aad-LfSi [27.139.18.89])
2019/11/03(日) 21:18:47.91ID:ax9Okew10
>>554
例えばLocaleによって実装クラスを変えたい時とか。
556デフォルトの名無しさん (ワッチョイ 575f-HgEL [106.72.163.96 [上級国民]])
2019/11/03(日) 22:13:21.53ID:z6AvjLYh0
コンストラクタは初期化処理部分を明示するために存在しているブロックにすぎない。
557デフォルトの名無しさん (ワッチョイ 238f-6BDJ [118.7.1.66])
2019/11/06(水) 21:18:18.94ID:YMOIABpf0
以下の場合、オブジェクト指向で考えると、
何をクラスにし、何をメソッドにするのが良いのかを教えてください。

・商品の状態がテキストファイルに記録されていて、それをExcelへ一覧出力します。
 テキストには、商品ID、名前、製造日がスペース区切りで記録されていて、
 それら情報を毎日、Excelのセルへ入力する部分をjavaで実装します。
・本を読むと、Id、Name等を宣言して、Item.name等で名前を管理すべきかとも思います。
 (以下は文法上誤りですが雰囲気として書きます)

class Item{
public void Id()
public void Name()
public void date()
}

今は商品ID、名前、製造日を2次元配列に読み込ませて処理しています。
558デフォルトの名無しさん (ワッチョイ d601-9lYZ [111.90.14.57])
2019/11/06(水) 22:09:08.17ID:i1VxEute0
俺ならこうかな
・商品クラス
・テキストファイルから商品を読み込むクラス
・エクセルに商品を出力するクラス
559デフォルトの名無しさん (ワッチョイ 238f-x9nz [118.7.1.66])
2019/11/06(水) 22:19:59.95ID:YMOIABpf0
クラスは対象物テキストやエクセル()、
メソッドは動作(読み込みや書き出し)と言う風に作るという事ですか?
560デフォルトの名無しさん (ワッチョイ 238f-x9nz [118.7.1.66])
2019/11/06(水) 22:20:58.67ID:YMOIABpf0
書き間違えました。
----

クラスは対象物(テキストやエクセル)、
メソッドは動作(読み込みや書き出し)と言う風に作るという事ですか?
561デフォルトの名無しさん (ワッチョイ d601-9lYZ [111.90.14.57])
2019/11/06(水) 22:54:04.65ID:i1VxEute0
読み込みと書き込みは分けた方がテストしやすいだろうなってだけ
概念的なことは何も考えてない
562デフォルトの名無しさん (アウアウクー MMcb-qG8t [36.11.224.107])
2019/11/07(木) 15:31:41.64ID:Htm+xBrDM
その分け方はオブジェクト指向のクラス分けではなくモジュール分けにすぎないが否定はしない。
563デフォルトの名無しさん (アウウィフ FF5b-WuPA [106.171.65.44])
2019/11/07(木) 21:00:09.74ID:OX40Pd+4F
>557です
単に手続きを分けるだけなら考えついたのですが、
ちょっとオブジェクト指向ではないと思っています。

商品というオブジェクトをどう管理するのかが
肝だと思うんですが、言い分け方ないでしょうか。
564デフォルトの名無しさん (ブーイモ MMbf-eyeu [49.239.67.125])
2019/11/07(木) 21:58:56.04ID:UdwTKafpM
>>563
スペース区切りのデータをCSVにしてExcelで管理してる台帳に追記するだけだと理解したんだけど、もしそうなら商品をオブジェクトとして扱う価値はあんまりないよ

それ以上の処理かあるのかな? 例えば名前、製造日についてビジネスルールに沿ったバリデーションがあったり、DBに保存や専用のUIに表示したり、そういう値の中身を意識する必要のある処理
565デフォルトの名無しさん (ワッチョイ 178f-WuPA [118.7.1.66])
2019/11/07(木) 22:48:14.42ID:k1TXPQAL0
>>564
目的は自分がオブジェクト指向を理解する為です。
簡単な例で理解したいと思いまして。

プログラムをこれ以上修正する要件はありません。
566デフォルトの名無しさん (ワッチョイ f79f-9HXo [122.133.97.37])
2019/11/08(金) 07:26:56.73ID:98dXBVGk0
なるほど勉強用ね
商品と商品たちはそれぞれクラスにする
ItemクラスとItemListクラス
ただし一般的な用件ならjava.util.Listで十分なので商品たちはList<Item>とすればいい
JavaでOOPらしくしたいなら配列はまず使わない

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

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

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

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

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

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

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

>566さんのやり方で1度作ってみます。
571デフォルトの名無しさん (ブーイモ MMfb-eyeu [210.149.250.76])
2019/11/09(土) 20:58:38.34ID:DEKDELV2M
>>570
Readerで読みつつWriterで書き出せばいいから、配列とかにデータを保持する必要ないよ

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

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

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

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

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

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

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

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

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

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

ひたすら精進あるのみ
579デフォルトの名無しさん (ワッチョイ 9f2c-E8Ce [219.162.234.204])
2019/11/13(水) 22:06:42.16ID:PTDdhEKV0
Java と言えば、オブジェクト指向を学ぶ、歴史を変えた本!
スッキリわかる Java入門 第2版、2014

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

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

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

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

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

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

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

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

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

aho=new baka1();

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

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

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

なんかいい方法はないでしょうか?
587デフォルトの名無しさん (ワッチョイ dfda-BEIG [220.144.30.46])
2019/11/21(木) 15:21:53.56ID:/5GdDHEF0
「メゾット」じゃなくて「メソッド(method)」、
あと
new Hoge();
はメソッドではなくコンストラクタの呼出し。

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

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

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

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

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

「spring boot post」で検索して!
594デフォルトの名無しさん (ワッチョイ 935f-o5/b [106.72.150.32])
2019/11/21(木) 21:23:20.19ID:oMz9B2oV0
>>587
コストラクトの連番の簡略化できました。ありがとうございます。

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

これでできました!
595デフォルトの名無しさん (ワッチョイ 522c-4eZD [219.162.234.204])
2019/11/21(木) 22:49:32.49ID:t93OqxgW0
ハァ? クラス名の連番?w
メタプログラミングじゃあるまいし、Ruby から、学び直せ!w

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

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

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

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

class TopController < ApplicationController
def index
end
end

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

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

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

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

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

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

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

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

だからIDE使う

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


1
2
5
4
9
31
6

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


inteface Hage {
void pushShigeki();
}


class Tako implements Hage
class Hanako implements Hage

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

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


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


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

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

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


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

まだふさふさしてるのは

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



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

だな
630デフォルトの名無しさん (ブーイモ MMce-r1hd [163.49.202.177])
2019/11/25(月) 14:27:28.62ID:/ltgl4TyM
すごくつまらないです
631デフォルトの名無しさん (スップ Sd92-8uw/ [1.72.1.157 [上級国民]])
2019/11/25(月) 16:01:07.05ID:sIY9dxa6d
頭の中で勝手にエンジニアと決めつけてキレてるやつ怖いわ
どう見ても素人だろこんなん
というかどんな現場だろうがこのレベルの奴が自分で設計なんてさせられるわけないわ
632デフォルトの名無しさん (ワッチョイ 9e01-r1hd [111.90.14.57])
2019/11/26(火) 01:08:20.80ID:bgFIZV9Y0
現場にもいろいろあるんやで
失敗を積み重ねて人は成長するんやで
633デフォルトの名無しさん (ワッチョイ cf9f-G4l2 [118.109.43.71])
2019/11/26(火) 09:44:25.60ID:i6eVGflj0
画面部品を一つ一つ異なるクラスにする意味あるの?
インスタンスが連番なのじゃなくて?

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

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

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

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

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

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

どなたかこのポンコツめに実装方法を教えてください……よろしくお願いします…
658デフォルトの名無しさん (ドコグロ MM03-oPxD [118.109.190.240])
2019/12/13(金) 09:55:14.47ID:ftjAwgQIM
>>657
プロファイラ使え
659デフォルトの名無しさん (オッペケ Srbb-s/7w [126.34.41.167])
2019/12/13(金) 15:58:33.51ID:JQqa66DGr
試してないけどこんな感じかな

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

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

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

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

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

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

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

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

ご指摘の通りに書いてみたら上手く動作してくれました!ありがとうございます!
https://wandbox.org/permlink/jl8r7LPtWxuNBPkh
型推論…便利だけど仕様理解してないとなんか不思議な感覚ですね
664デフォルトの名無しさん (ワッチョイ 9aad-kWkR [27.139.77.105])
2019/12/14(土) 21:02:02.41ID:SgtXLdNQ0
Kotlin もよろしく
665デフォルトの名無しさん (アウアウウー Sa15-M3rQ [106.154.139.194])
2019/12/23(月) 20:12:08.00ID:Tcm1zA7za
アプリを開く→(複数のユーザーが)学習時間を入力→サーバーにデータを送信・保存→管理者がcsvで出力
というようなスマホアプリ(ユーザーが複数)を作りたいと思っているのですが
参考になる書籍等ありませんでしょうか。そもそも、実現可能なものでしょうか。
スレ違いでしたらすみません。
666デフォルトの名無しさん (ドコグロ MMa3-5TeV [119.243.55.47])
2019/12/24(火) 09:51:50.98ID:FDV9SMo9M
>>665
その辺詳しくて暇な学生でも知り合いにいたら焼肉でも奢って作ってもらえるレベル。
自分でやりたいならサーバーもアプリ開発も入門書から。
667デフォルトの名無しさん (ワッチョイ 132c-1ZZR [219.162.234.204])
2019/12/24(火) 12:51:56.91ID:3XzgnZW70
>>657-663
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)
668デフォルトの名無しさん (ドコグロ MMa3-On3P [119.241.50.165])
2019/12/24(火) 14:04:13.96ID:4hGbK3LLM
>>667
ゲロ遅Rubyでベンチマークとかアホかな
巣に帰れ
669デフォルトの名無しさん (ワッチョイ c101-XIG2 [126.186.241.113])
2019/12/24(火) 18:06:43.25ID:MO/D1HWx0
C#erですけどこれからjava学ぶ価値はありますか?
煽り抜きで有償化後から敬遠されてるように見えて
670デフォルトの名無しさん (ワッチョイ f1da-prDO [118.16.215.6])
2019/12/24(火) 20:21:12.52ID:FXbIETKP0
知らんがなー
671デフォルトの名無しさん (ワッチョイ 53f0-edvE [115.65.255.37])
2019/12/24(火) 20:32:08.30ID:jY4syNMl0
ここで聞くより自分の勤め先に聞いた方がいいんじゃね?
672デフォルトの名無しさん (アウアウウー Sa15-On3P [106.180.1.135])
2019/12/24(火) 21:22:10.62ID:dq3QkvTpa
C#ができるならJavaの現場にいきなり投入されても全然問題ないから、あえて自分で勉強しておく必要はないと思う
JavaはC#でいうところのVB的なバカの受け皿がないので、C#に比べるとプログラマの平均レベルはかなり落ちる
673デフォルトの名無しさん (アウアウエー Sa23-prDO [111.239.71.7])
2019/12/24(火) 22:22:24.92ID:QaElcG77a
>>665
google sheet じゃいけないの?
674デフォルトの名無しさん (ワッチョイ 13da-prDO [125.204.53.169])
2019/12/25(水) 10:31:51.95ID:0RAirXGC0
イミフ
>JavaはC#でいうところのVB的なバカの受け皿がないので、C#に比べるとプログラマの平均レベルはかなり落ちる
675デフォルトの名無しさん (アウアウウー Sa15-zFmU [106.132.121.34])
2019/12/25(水) 18:36:38.53ID:T30j/zfya
ポインタがない時点で平均以下の
プログラマ向けだとは思うが・・・。
676デフォルトの名無しさん (アウアウウー Sa15-M3rQ [106.154.139.33])
2019/12/25(水) 18:40:52.69ID:QLybXwoka
>>666それならちょっと頑張ってみようと思います。ありがとうございます。
>>673入力作業が面倒だったら時間を記録をしないのです。googlesheetでもできはしますが
続くような、入力がシンプルな、学生でも馴染みのあるアプリなシステムを作りたいのです。
677デフォルトの名無しさん (ドコグロ MMa3-On3P [119.241.245.113])
2019/12/25(水) 18:59:14.49ID:DT9LgkyTM
だったらMicrosoftのPowerAppsとかでいいんじゃね
ノンコーディングで入力フォーム付きのDBアプリができるよ
678デフォルトの名無しさん (アウアウウー Sa15-M3rQ [106.154.139.33])
2019/12/25(水) 19:34:19.72ID:QLybXwoka
>677こんな便利そうなものがあったのですね!・・・ちょっと調べてみます。
679デフォルトの名無しさん (ワッチョイ 1b01-0vNI [111.90.14.57])
2019/12/25(水) 19:45:21.98ID:cJWtSi8V0
>>675
年収が? IQが? 技術力が?
言語にポインタがあったらそれが上がると?
680デフォルトの名無しさん (ワッチョイ 1b01-0vNI [111.90.14.57])
2019/12/25(水) 19:50:04.62ID:cJWtSi8V0
ポインタを極めて生活が豊かになるなら
組み込みエンジニアはもっと幸せなのじゃないだろうか
給料高いって話聞かないし身の回りを見渡してもそういう人いないから
ポインタにそんな価値はありません
681デフォルトの名無しさん (ワッチョイ 1b01-0vNI [111.90.14.57])
2019/12/25(水) 19:57:01.15ID:cJWtSi8V0
VB.NETもC#も変わらぬ
VBがバカの受け皿ならC#もバカの受け皿だ
使う言語によって賢さが変わるものではない
ただしProlog使いだけは侮るな、変態だから
682デフォルトの名無しさん (JP 0Hab-zFmU [61.199.190.35])
2019/12/25(水) 21:15:16.60ID:ALfGM20+H
>>679
コーディング技術力は上がると思う。
683デフォルトの名無しさん (ワッチョイ 0bda-BXgI [60.46.142.56])
2019/12/26(木) 02:59:14.29ID:FdHruebH0
ポインタの理屈は単純だけど、ポインタのポインタのポインタのポインタのポインタの・・・・・と増えていくと
見落としや勘違いが増えるの実感して、単純なほうがいいと思ってるのでせいぜい4〜5段階までにしてる。

頭が悪いのは否定しない。
684デフォルトの名無しさん (ドコグロ MM7f-Nxir [119.243.53.251])
2019/12/26(木) 08:19:37.09ID:Fsuom43iM
>>683
4~5ってスゲーな
使っても3段までだわ
685デフォルトの名無しさん (アウアウウー Sa57-hoej [106.132.126.245])
2019/12/26(木) 08:38:03.99ID:n7PujD85a
ポインタは、全体把握とどの情報を実領域に
持たせるかという構想が必要だから、
バグの温床になって嫌われた。

逆に言うと、全体把握と構想力がある人(コーディング力が高い人)は、
ポインタがある言語を使った方が高性能のプログラムを使えていいと思う。
686デフォルトの名無しさん (ブーイモ MMdf-M7II [49.239.65.54])
2019/12/26(木) 09:02:47.60ID:YvaHujGZM
ポインタは元々少ないメモリ空間の昔に使われてきた
プログラム自体を書き換えることで、違う処理をさせてきたわけだ
今はそんなことする必要は無く、ワークエリアも十分ある

その中でわざわざポインタ使ってやる方がおかしい
687デフォルトの名無しさん (オッペケ Sr5f-WinK [126.179.107.202])
2019/12/26(木) 10:48:00.02ID:MgSP500ir
個人的にはポインタよりも高度な関数型言語の方が難しい
メモリの制約が少なくなって並列処理の必要が増した昨今に
ポインタを理解していることに自尊心を持ち続けているようではまずいと思う
688デフォルトの名無しさん (ワッチョイ 4bda-K0SF [118.16.214.20])
2019/12/26(木) 11:30:29.67ID:LEe51FxT0
えへん
689デフォルトの名無しさん (ワッチョイ eb01-GEpG [126.168.93.13])
2019/12/26(木) 12:17:46.05ID:IcXenUI20
ポインタ使えるC#のがプロ向けなんですか?
C系言語で最もバランスの取れた言語を集中的に覚えたいです
690デフォルトの名無しさん (ドコグロ MM7f-CuJz [119.243.54.251])
2019/12/26(木) 12:26:40.52ID:EWaoVvrbM
スレ違いも甚だしい
691デフォルトの名無しさん (ワッチョイ 77da-K0SF [58.89.131.191])
2019/12/26(木) 15:19:27.46ID:6rKDuvH70
balancedC
692デフォルトの名無しさん (アウアウクー MM1f-K4/I [36.11.225.139 [上級国民]])
2019/12/26(木) 16:33:20.56ID:P2pgmRUJM
>>689
目的なく言語選びをしても意味がない。
693デフォルトの名無しさん (ワッチョイ d7da-K0SF [121.114.133.196])
2019/12/26(木) 16:40:18.13ID:REAQMzC80
受験勉強の弊害だろ、何の為にするのかが考えられない
694デフォルトの名無しさん (アウアウウー Sa57-1jI+ [106.132.121.87])
2019/12/26(木) 20:59:53.58ID:jGVvGCFqa
               .|  
               .|  
    ∩___∩    |  
    | ノ\   ,_ ヽ  .|  
   /  ●゛  ● |   .J  
   | ∪  ( _●_) ミ 
  彡、   |∪|   |     
 /     ∩ノ ⊃  ヽ
 (  \ / _ノ |  |
  \  "  /  | |
   \ / ̄ ̄ ̄ /
      ̄ ̄ ̄ ̄
695デフォルトの名無しさん (アウアウウー Sa57-hoej [106.132.126.245])
2019/12/26(木) 23:41:10.21ID:n7PujD85a
ポインタは処理速度が速いからね。
(代入処理が少なくなるせい)
696デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
2019/12/26(木) 23:46:20.90ID:AOHRGRKj0
恐らく逆じゃないかな。
スタック上にオブジェクトを作れるとメモリーの確保が必要ないし常にキャッシュに載るので速い。
ポインタがない言語はだいたいポインタと同程度の大きさを持ついくつかのプリミティブしかスタック上に配置できないので、常にポインタを介した演算と同程度の速度しか出せない。
ってことでは。
697デフォルトの名無しさん (アウアウエー Sa5f-K0SF [111.239.59.219])
2019/12/26(木) 23:55:41.06ID:7SX4HwC3a
ポインタと実際の実装はまた別の話では?
コンパイラが頑張ればかなり最適化できるが
698デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
2019/12/27(金) 00:00:34.84ID:2RWoWvTN0
すべてのオブジェクトをスタックにしか置けないと、事前にすべてのオブジェクト領域を用意しないといけない。
それは現実的ではないのでヒープが必要になり、ヒープへの効率的アクセスにポインタが用意される。
という順番かと。
699デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
2019/12/27(金) 00:01:57.53ID:2RWoWvTN0
スタックポインタの指す場所をキャッシュしないプロセッサはないので、コンパイラ関係なくスタック上は有利じゃないでしょうかね。
キャッシュミスで1000クロック失うこともあるわけですし。
700デフォルトの名無しさん (アウアウウー Sa57-hoej [106.132.126.245])
2019/12/27(金) 00:13:29.51ID:FGT7rX6da
ポインタの利点は、メモリ上でデータコピーの頻度が下がることだよ。
ポインタはデータを参照するだけで、コピー(代入)しないから。
701デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
2019/12/27(金) 00:20:45.16ID:2RWoWvTN0
>>700
Javaのオブジェクトもコピーしませんよ。
702デフォルトの名無しさん (ワッチョイ cf8f-hoej [118.7.1.66])
2019/12/27(金) 00:41:11.11ID:TGHw1m2h0
まじで?
703デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
2019/12/27(金) 00:42:32.50ID:2RWoWvTN0
そりゃそうでしょう。
プリミティブ以外は全部参照という割り切った仕様なんですから。
704デフォルトの名無しさん (ワッチョイ cf8f-hoej [118.7.1.66])
2019/12/27(金) 00:44:18.84ID:TGHw1m2h0
じゃあJAVAのオブジェクトが持つデータの本体はどこにあるの?
705デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
2019/12/27(金) 00:44:57.33ID:2RWoWvTN0
>>704
GC上にありますよ。
706デフォルトの名無しさん (ワッチョイ cf8f-hoej [118.7.1.66])
2019/12/27(金) 00:52:40.10ID:TGHw1m2h0
あーそういう事ね。
それは話にならん。
結局、変数宣言する度にGC上にエリアとるんでしょ。
それじゃ遅いんだよ。
707デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
2019/12/27(金) 00:57:03.69ID:2RWoWvTN0
ポインタと同様遅いということです。
708デフォルトの名無しさん (ワッチョイ 5b5f-1gZu [106.72.163.96 [上級国民]])
2019/12/27(金) 03:23:21.04ID:zc200dFE0
ポインタは物理アドレスを辿れることにメリットがある。

当然、重大バグを埋め込み安くなる。
709デフォルトの名無しさん (ワッチョイ 4301-Mkmj [126.242.217.97])
2019/12/27(金) 03:51:35.21ID:2RWoWvTN0
いまどきJavaが使われるような用途でプログラムは物理アドレスにアクセスできませんよ。
物理アドレスはOSが管理しているので、言語によって変わる事は有りません。
710デフォルトの名無しさん (アウアウエー Sa5f-K0SF [111.239.58.235])
2019/12/27(金) 11:00:48.46ID:Z74RNOkKa
1. ポインタを使う言語(具体的になに?)
2. Java
3. ポインタを使わない言語(具体的に何?)

で、どれがどう早いのかまとめてくれ
711デフォルトの名無しさん (ワッチョイ d7da-K0SF [121.114.134.15])
2019/12/27(金) 11:11:52.93ID:eoDvpAED0
答え スレチ
712デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
2019/12/27(金) 13:15:25.80ID:zc200dFE0
>>709
文法も内容もおかしいぞ?
713デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
2019/12/27(金) 13:16:21.22ID:zc200dFE0
>>710
早い遅いの話だったのか?
714デフォルトの名無しさん (アウアウウー Sa57-1jI+ [106.132.120.196])
2019/12/27(金) 13:54:39.03ID:OSUAtXdGa
君たちにはこれをプレゼントしよう。

NullPointerException
715デフォルトの名無しさん (ワッチョイ 77da-K0SF [58.89.132.170])
2019/12/27(金) 14:38:37.47ID:29a4DvgC0
throw GUT
716デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
2019/12/27(金) 16:23:18.89ID:zc200dFE0
>>714
それ単に誤ったところにアクセスしようとしたという意味で、それを頻発させるプログラマはダメすぎる。
717デフォルトの名無しさん (アウアウウー Sa57-1jI+ [106.132.120.196])
2019/12/27(金) 19:43:06.37ID:OSUAtXdGa
Javaにはポインターが無いと聞いていたのにいきなりこんなもんが出ちゃってインド人もびっくり。

NullPointerException
718デフォルトの名無しさん (アウアウクー MM1f-K4/I [36.11.224.140 [上級国民]])
2019/12/27(金) 19:47:41.94ID:c4efkuh5M
ポインタ変数とポインタの区別がつかない阿呆
719デフォルトの名無しさん (ブーイモ MM07-cCQ4 [210.138.176.74])
2019/12/27(金) 20:26:01.32ID:S+olTiDxM
>>717
ぬるぽはオブジェクトがヌルのときに投げられるから
Javaのポインタはオブジェクトを指すものなのだろうね

C言語のポインタはメモリアドレスを指す

名前は同じだけど概念が違う
720デフォルトの名無しさん (ブーイモ MMdf-7gm+ [49.239.71.113])
2019/12/27(金) 20:53:02.39ID:uD1rHSskM
おいおいマジかよw
ちなみに「指すもの」を英語でpointerと言います。
721◆QZaw55cn4c (ワッチョイ 5f47-7AkR [131.129.114.156 [上級国民]])
2019/12/27(金) 20:57:44.42ID:9iE1xeZJ0
>>717
Java は c++ のある種の進化系・理想形ですからね、今でも c++ で丁寧に書こうと思ったら自然に Java に近くなりますよ
722デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229])
2019/12/27(金) 22:29:49.28ID:2d2dVtvP0
初心者です。問題集で勉強中です
宜しくお願いします。

会員顧客データを更新する時のプログラムなんですが
未実装と記入ある箇所にどうのようなコードを入れてら良いでしょうか
ざっくりで申し訳ありません


/**
* 顧客情報テーブルの指定の顧客情報を更新する
* @param cutomer 顧客情報Bean
* @return エラーメッセージ(処理成功時、null)
*/
public String update(CustomerBean cutomer) {
LogUtil.println(this.getClass().getSimpleName() + "#update");

// TODO 未実装
return null;
}
723デフォルトの名無しさん (ワッチョイ effd-HAwK [143.189.66.24])
2019/12/27(金) 22:37:53.02ID:XCpPzAzW0
>>722
// TODO 未実装
return null;

これを

// なぜか更新できない
return "エラーです";

って直すを呼び出した人が治してくれると思う。
724デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
2019/12/27(金) 23:39:06.28ID:zc200dFE0
>>722
未実装もなにも、なんも書かれていないメソッドだろうにw
725デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
2019/12/27(金) 23:41:14.61ID:zc200dFE0
ログ出力しているだけw
726デフォルトの名無しさん (ドコグロ MM2f-CuJz [118.109.188.99])
2019/12/27(金) 23:47:00.87ID:lxjmCiaLM
突っ込むところがズレてて気持ち悪い
727デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
2019/12/27(金) 23:50:52.21ID:zc200dFE0
>>726
自分が面白いと思っているの?
728デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229])
2019/12/28(土) 00:07:06.19ID:Nw+g0oHm0
>>724
はい。ここに何を書き込むべきか教えてください
729デフォルトの名無しさん (ワッチョイ 6f01-hoej [126.83.84.73])
2019/12/28(土) 02:36:10.83ID:Rw3GVoxd0
更新すべき項目と更新値を書けばいいんじゃない?
730デフォルトの名無しさん (ワッチョイ 2fd2-Bxcu [221.191.212.228])
2019/12/28(土) 15:01:05.86ID:VCBq52Cm0
java インターフェイスでググると
インターフェイスを実装したクラスを作って
そのクラスのインスタンスからインターフェイスのメソッドを使うやり方しか
でてこないんだけど
インターフェイスって基底クラスみたいにつかえないの?
731デフォルトの名無しさん (ワッチョイ 0302-txmj [124.212.87.121 [上級国民]])
2019/12/28(土) 15:18:09.71ID:jHoXf9TZ0
坂口渚沙
★★Java質問・相談スレッド182★★ 	YouTube動画>12本 ->画像>6枚
732デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229])
2019/12/28(土) 15:48:54.66ID:Nw+g0oHm0
>>729
有難うございます
もうちっと考えてみます
733デフォルトの名無しさん (アウアウクー MM1f-K4/I [36.11.225.235 [上級国民]])
2019/12/28(土) 18:20:50.79ID:p8R0Q+BHM
>>730
インターフェイスの意味がわかっていますか?
734デフォルトの名無しさん (バッミングク MMf7-DL3T [124.102.46.53])
2019/12/28(土) 19:53:00.32ID:KI7KpILmM
>>730
基底クラスみたいに使う、って漠然としすぎだけど、
Java8からinterfaceに実装を記述できるようにはなったよ。
735デフォルトの名無しさん (ワッチョイ 4301-csov [126.194.183.121])
2019/12/29(日) 11:49:13.66ID:IzML/7jR0
>>606
Proguard使えよタコ
736デフォルトの名無しさん (ワッチョイ abb0-yGK/ [180.46.73.208])
2019/12/30(月) 19:30:26.98ID:ZLko78Lo0
Java シルバー取りたいんだけどSE8と11なら11にしておいた方がいいの?
737デフォルトの名無しさん (ワッチョイ 63da-K0SF [118.18.7.176])
2019/12/30(月) 20:31:48.82ID:u0MtUvRs0
しらんがなー
738デフォルトの名無しさん (ワッチョイ b79f-WinK [118.109.43.71])
2019/12/30(月) 20:36:19.50ID:yKHaMa8w0
11にしようぜ
たいして難しくなってないし、知識としてあえて古い方に限定することもない
739デフォルトの名無しさん (アウアウウー Sa57-+yl6 [106.180.3.16])
2019/12/30(月) 21:14:40.48ID:3kEURnema
初心者で2月に受けるけど全く黒本がわからない
なんとなくコードは打てる
理解っているの?Java
740デフォルトの名無しさん (オッペケ Sr5f-baxb [126.179.99.147])
2019/12/30(月) 22:16:53.88ID:Za1Wf1ynr
初心者から脱する気が無いなら理解する必要は無いよ
ただ初心者のまま時間が経つとそれはもう初心者じゃなくてただの無能だからね
741デフォルトの名無しさん (ワッチョイ ff01-NWon [111.90.14.57])
2019/12/30(月) 22:17:58.31ID:fFRqMrLq0
謎のマウンティング開始
742デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229])
2019/12/31(火) 01:49:08.07ID:tPXUyNvp0
数値の比較などの判定式の結果boolean型の仕組みが理解できていません
int count =3;
int limit =2;
System.out.println(count <= limit);
結果はfalseなのですが、「3<=2」がなぜfalseなのでしょうか。
比較の左側ならfalse、右側ならtrue、などあるのでしょうか
743デフォルトの名無しさん (ワッチョイ 7fad-SvJ4 [27.139.41.170])
2019/12/31(火) 01:55:01.88ID:wQOusfvX0
>>742
君は3が2以下だと思うのかい?
744デフォルトの名無しさん (ワッチョイ ff01-NWon [111.90.14.57])
2019/12/31(火) 01:57:35.04ID:yv9yhyfZ0
>>742
<=は小なりイコールの演算子だから
左の値が右の値より小さいか、もしくは左の値と右の値が同じときtrueになる

3 <= 2は、3は2以下であるということを表してて当然false
745デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
2019/12/31(火) 02:57:47.47ID:II4RvmaH0
>>742
まずはif文から勉強してくださいよ。
746デフォルトの名無しさん (ワッチョイ 5b5f-K4/I [106.72.163.96 [上級国民]])
2019/12/31(火) 02:58:58.61ID:II4RvmaH0
数学もわかっていないのかな?
747デフォルトの名無しさん (ワッチョイ f7ad-RbSw [110.133.143.229])
2019/12/31(火) 03:19:08.80ID:tPXUyNvp0
>>744
適切な解答有難うございます
「左の値が右の値より小さいか、もしくは左の値と右の値が同じときtrueになる」
この文章で理解できました。
748デフォルトの名無しさん (アウアウエー Sa5f-K0SF [111.239.63.198])
2019/12/31(火) 13:29:22.42ID:9+YIWQboa
言葉で書くとかえってわかりにくいよね
749デフォルトの名無しさん (ワッチョイ 6bad-E95m [110.133.143.229])
2020/01/01(水) 03:24:48.37ID:yEYEASGU0
>>744
本当に有難うございます。
性格イケメンさんの解説のお陰で適切に解答できるようになりました
750デフォルトの名無しさん (ワッチョイ 6bad-E95m [110.133.143.229])
2020/01/01(水) 03:27:37.39ID:yEYEASGU0
>>748
問題集やってると混乱してきます
私48の婆なんですが
>>744の性格イケメンさんに高3の娘を嫁に出したいわ。
751デフォルトの名無しさん (ワッチョイ 9fad-cEPd [27.139.77.105])
2020/01/01(水) 20:37:50.12ID:fUaq4dOi0
>>706
よかったな。めでたしめでたし。

           おわり
752デフォルトの名無しさん (ワッチョイ 9fad-cEPd [27.139.77.105])
2020/01/01(水) 20:38:19.57ID:fUaq4dOi0
アンカミスった
753デフォルトの名無しさん (ワッチョイ 7d46-CCy/ [58.88.17.246])
2020/01/09(木) 00:07:25.24ID:r2AVr9JT0
JavaでGUI作ろうと思ってJavaFXの情報探そうと思ったら全然出てきません……
日本語の本でまともなのってないですか?
754デフォルトの名無しさん (ラクッペ MMd1-6NT+ [110.165.204.206])
2020/01/09(木) 00:31:43.96ID:mNT5CRRbM
>>753
JavaFXはもう終わりでしょ
需要ないしろくに本も無いのでは?
755デフォルトの名無しさん (ワッチョイ 7d46-CCy/ [58.88.17.246])
2020/01/09(木) 00:33:05.00ID:r2AVr9JT0
ネット見た感じ取り敢えずSwingは終わりっぽいのでOpenJFX使って開発しようと思ったんですが、どちらも厳しいんですかね?
756デフォルトの名無しさん (アウアウウー Sa19-JyDu [106.180.2.225])
2020/01/09(木) 01:33:41.97ID:TONSU376a
終わるとか以前に、JavaでGUIは始まったことすらない
ガチで今も昔も誰も使ってない
757デフォルトの名無しさん (ワッチョイ 5b01-Ru/f [111.90.14.57])
2020/01/09(木) 07:57:06.34ID:wvbDpdNb0
昔は性能が悪くて使われず
今はクライアントアプリが斜陽
758753 (ワッチョイ 7d46-CCy/ [58.88.17.246])
2020/01/09(木) 18:03:22.21ID:r2AVr9JT0
皆さん返答ありがとうございました、参考になります
JavaではGUIアプリを作るのは取り敢えず辞めにして、コンソールで適当なゲームでも作って覚えることにします
759デフォルトの名無しさん (ワッチョイ a301-ErPi [221.33.176.17])
2020/01/10(金) 12:19:03.17ID:MA7SUINg0
javaのソースコードの見方がわからない
androidアプリをとりあえず逆コンパイルして.classを抽出して中身のコードを見ることはできるようになったんだけど
沢山.classのファイルがあってどこが何がスタートになってるの?
順番ってどうなってるの?
そのアプリはa.class b.class c.classってタイトルが全部アルファベットなんだけど
760デフォルトの名無しさん (ワッチョイ 2390-mHUb [59.85.250.241])
2020/01/10(金) 13:53:24.38ID:kNTR9GPN0
aとかbとかは君のように解析しようとする試みを防ぐため難読化されてるってこと。
エントリポイントはActivityを継承したクラス見っけて...かな?
761デフォルトの名無しさん (スップ Sd03-B9Rj [1.72.8.135])
2020/01/10(金) 14:29:37.98ID:zQO7dZXUd
zxingでQRコードとJANコードが入った画像を読み取りたいんだけど
JANコードだけを読み取りたい。みたいな事ってできない?
762デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
2020/01/10(金) 15:04:57.68ID:+8yrOvaU0
>>760
メソッド名は“main”である(すべて小文字)

どっかにmainってファイルが必ずあるはずで、これがこのアプリの入口になってて他のclassのファイルは小部屋みたいなもんなんでしょ?
mainってファイルがどこ探してもないんだけどこれどういうことなん?
763デフォルトの名無しさん (オッペケ Srf1-tc1A [126.234.11.188])
2020/01/10(金) 15:08:39.67ID:9j5+BVSIr
メソッドって自分で言ってんのにファイル名探すとは
764デフォルトの名無しさん (ワッチョイ 6501-eaUz [126.168.224.177])
2020/01/10(金) 18:11:08.65ID:D+gtbuRW0
C#erに、まだフィールド使って接頭語にアンダースコア付けてるんでしょ?と言われて何か悔しいです。
ギャフンと言わせる方法はあるでしょうか?
765デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74])
2020/01/10(金) 18:13:03.87ID:ujZrkvpm0
音楽プレーヤーをカスタマイズしたいのですが教えてください

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) ;
766デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74])
2020/01/10(金) 18:13:27.27ID: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;
767デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74])
2020/01/10(金) 18:15:06.30ID: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を追加するにはどうすればよいでしょうか?

よろしくお願いいたします
768デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.141.99])
2020/01/10(金) 18:50:23.24ID:915LIh+yM
>>764
言語面ではJavaはあらゆる面でC#に劣るから、正攻法で戦ってはいけない
C#er相手にマウントを取るには、でもWindowsなんでしょ?wwwが一番効く
お前もWindowsでJavaを運用していたり、そのC#erが.NET CoreをLinuxで運用してたりUnity開発者だったりするなら諦めろ
769デフォルトの名無しさん (ワッチョイ 5b01-zcZG [111.90.14.57])
2020/01/10(金) 22:38:24.06ID:ALcwyMXE0
>>765
foobar2000のJavaScriptっぽいなー
770デフォルトの名無しさん (ワッチョイ 23ad-UU8b [27.139.41.170])
2020/01/10(金) 23:24:28.51ID:u5Uqllm50
>>761
EANReaderってQR反応したっけ?
771デフォルトの名無しさん (ワッチョイ b59f-pLzZ [118.109.43.71])
2020/01/11(土) 02:43:04.54ID:14sFduQs0
>>764
・ゴメン俺Haskellに乗り換えたからJavaやってねーんだわ
・ゴメン俺マネジメントが忙しくて最近プログラミングさせてもらえねーわ
好きなほうどーぞ
Haskellは嘘だろと追及されそうならKotlinかLombokで
772デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
2020/01/11(土) 08:57:49.30ID:qa2D3VNz0
>>763
>メソッド名は“main”である(すべて小文字)

これネットでggって書いてあったんだけど
じゃあファイル名はもう何かわからないってこと?mainメソッドの拡張子も.class?
この沢山ある**.classファイルの数々からmainを自分で見つけるしかないってこと?
773デフォルトの名無しさん (ワッチョイ 2361-alJZ [61.245.59.106])
2020/01/11(土) 09:07:22.58ID:+T4LytQN0
AndroidはJVMじゃないし。
774デフォルトの名無しさん (ワッチョイ 8b0d-0qp1 [121.2.61.211])
2020/01/11(土) 10:10:11.51ID:vwcaMfZA0
テキスト検索すらできない実力でリバースエンジニアリングできると思ってるの?
煽りじゃないよ
775デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
2020/01/11(土) 11:18:07.93ID:qa2D3VNz0
うん思ってる
776デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
2020/01/11(土) 11:42:50.55ID:qa2D3VNz0
指定した全部のファイルから
メソッドだろうが修飾子だろうが全部の文字列検索してるツールとかってないの?
javaDecompiler使ってるんだけど、なぜか修飾子検索してくんないから全く使い物にならない
777デフォルトの名無しさん (ワッチョイ a5e9-G18V [222.15.235.177])
2020/01/11(土) 11:52:19.94ID:as9AOr230
普段プログラム書くのに使ってるツールにgrep機能が付いてないの?
778デフォルトの名無しさん (ワッチョイ 55da-lZna [220.144.30.68])
2020/01/11(土) 13:39:02.07ID:5ateKhzY0
Androidのアプリならmainメソッド探しても仕方ないよ。
mainメソッドはアプリ側でなくてAndroidのシステム側にあるから。
(って話はすでに>>760が書いてくれてるんだけど)

というか、解析したいアプリがどんなものかわからないけど、
- Native Activityで実装されていればdexファイルではなくsoになってる
- Unityとかで開発されていれば実質的なアプリ本体はC#なりで実装されている
とか普通にあるんで、必ずしもdexをclassにしてデコンパイルすれば中身見放題ってわけじゃないです。
779デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
2020/01/11(土) 14:48:30.35ID:qa2D3VNz0
わかりました。
どうやらそのようです。
soファイルありました。
どうもありがとうございました。
780デフォルトの名無しさん (ワッチョイ a301-tgR8 [221.33.176.3])
2020/01/11(土) 14:49:56.63ID:qa2D3VNz0
詳しく教えてくれてありがとうございました。
ggったら全く同じ事が書いてありました。
781デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221])
2020/01/11(土) 15:29:29.31ID:MXX/X4cZ0
>>762
Javaの場合、mainという名前のメソッドはテスト用にどのクラスでもそれぞれ書いても良いとされている。
Androidの場合、Activityを継承したクラスに所属している main という名前のメソッドからプログラムが開始される。
public指定されて外にexportされているクラスの名前を XXX とすると、そのクラスを書くソースファイルの名前は、XXX.javaとなる。
XXX.javaをコンパイルするとXXX.classになる。
本物のJavaは、XXX.classをまとめたものが、*.jarであるが、Androidの場合は、まず、*.classが*.dexに変換された後、さまざまなファイルとアーカイブされて*.aptになる。
782デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221])
2020/01/11(土) 15:35:49.54ID:MXX/X4cZ0
>>781
すまん。Activityの場合は、main()ではなく、onCreate()メソッドだったかも知れん。
Androidの場合でも、dexコマンドで直接起動するようなCUIプログラムの場合は、main()でよかったと思う。
ただし、Javaの場合は外部関数がないので当たり前かもしれないが、このmainは、C/C++のような外部関数ではなく、メンバ関数。
783デフォルトの名無しさん (ワッチョイ 2361-6Ucs [123.230.238.221])
2020/01/11(土) 16:27:06.17ID:MXX/X4cZ0
>>781
*.aptじゃなく、*.apk。
dexも細かい関係性は忘れた。
784デフォルトの名無しさん (ワッチョイ fd61-alJZ [112.136.82.104])
2020/01/11(土) 17:33:12.71ID:lHngeS9z0
ActivityじゃなくてApplicationだ。
答える方もわかってないしスレ違いだし、いい加減向こうでやれや。
785デフォルトの名無しさん (アウアウウー Sa19-JQ6m [106.154.130.141])
2020/01/11(土) 19:55:11.85ID:Dn3xIqPda
Javaの有償化について教えてください
PC内に入っているものは「Java SE Development kit 8」なのですが
これでアプリ作って公開したら有償ですか?
Kotlin使っても有償になるのでしょうか?
786デフォルトの名無しさん (ブーイモ MM29-oH9J [210.149.252.155])
2020/01/11(土) 21:34:49.76ID:1VjCQQNwM
Javaをやろうとするやつは総じてバカなのか? それともこのスレだけなのか?
最近pythonやろうとしてるやつも大概バカばっかだがここはそれ以上
787デフォルトの名無しさん (ワッチョイ 1d5f-tgR8 [106.72.150.32])
2020/01/11(土) 23:44:29.27ID:Fe8pyJct0
私思うんです
他のクラスに変数を受け渡すとき
例えばclass1からd=class2(a,b,c);みたいにひとつずつ変数を渡さないで
d=class2(this);にすればいいと思うんです
私思うんです
788デフォルトの名無しさん (ワッチョイ 9d7f-G18V [128.28.60.74])
2020/01/12(日) 00:46:32.13ID:7vCp3mje0
>>769

はい、foobarです
これって専用なのですね?
専門のページで質問してみます
有難うございました
789デフォルトの名無しさん (ワッチョイ b59f-pLzZ [118.109.43.71])
2020/01/12(日) 00:51:10.15ID:FbSdnFnB0
>>787
モジュールの結合度について学び今後意識していくとよいでしょう
密結合になると変更に弱くなります
弱くなります
790デフォルトの名無しさん (アウアウウー Sa19-htaX [106.132.121.116])
2020/01/12(日) 19:22:47.94ID:T1GQsdFba
弱くなります
791デフォルトの名無しさん (ワッチョイ 05b0-H9u6 [180.46.73.208])
2020/01/12(日) 19:44:41.84ID:N/CHSK/80
>>786
何このバカw
どっから湧いたんだよ
792デフォルトの名無しさん (ワッチョイ db02-ErPi [119.106.128.249])
2020/01/13(月) 02:41:58.54ID:D6MgPK0q0
初質問させていただきます、JAVA初心者です。

Javaにて簡易的なチャットの実装を試みています。
基本部分の仕様は以下の通りです。

・ソースコードはサーバ側プログラムとクライアント側プログラムの2つ
・チャット参加者数は最大5名とし、参加時には他の参加者に「***さんが加わりました」といったメッセージが表示されるようにする。
・参加者は好きなタイミングでメッセージを送信できるようにする。
・他の参加者からのメッセージはサーバが送信してきたタイミングで受信して画面上に表示するようにする。
・他の参加者が抜けた(切断した)場合には、「***さんが抜けました」といったメッセージが表示されるようにする。

現在、サーバ・クライアント間の通信確立までは実装できています。

考え方、実装例をご教授いただけると幸いです。

お手数おかけしますが、ご助力ください。
793デフォルトの名無しさん (ワッチョイ e3a3-qRB+ [115.176.101.180])
2020/01/13(月) 12:20:04.08ID:Jh+AJgi90
宿題をここに投げるな
794デフォルトの名無しさん (スププ Sd43-Acsm [49.96.12.123])
2020/01/13(月) 17:57:40.86ID:wJyWxns1d
今、新規開発のFWは選定するとSpring1択になる?
PlayはScalaの方に行ったしStruts2は避けられてるし。
マイクロフレームワークはポコポコ出てきてるけどさ。
795デフォルトの名無しさん (ワッチョイ 1d5f-pWSs [106.72.163.96 [上級国民]])
2020/01/13(月) 18:13:43.46ID:PNIqRh180
>>794
SpringとSpring bootの区別はできているのか?
796デフォルトの名無しさん (ワッチョイ 232c-JQ6m [219.162.234.204])
2020/01/14(火) 04:41:29.56ID:3sd16sWN0
>>792
0から手を動かして作るRailsチャットアプリ【チュートリアル】

@YouTube



とだこうきの動画。
通信には、WebSocket を使ってる

他には、Node.js, Electron でも作れるかも
797デフォルトの名無しさん (ササクッテロラ Spf1-gopL [126.193.125.144])
2020/01/14(火) 14:29:55.91ID:m1u1XKORp
なんでinterface作ってクラス名にimplつけた実装クラス作るの?最初からクラスだけじゃダメなの?
798デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.142.88])
2020/01/14(火) 14:45:34.94ID:/8RfG7cVM
>>797
並行作業のスケジュールの都合により、使われる方のクラスを作る前に使う方のクラスを先に作る必要がある場合のためだよ。
使われる方のinterfaceさえ定義しとけばImplがまだ無くても使う方を作れるでしょ。
現実にはこのような逆転した作業は極めて非効率で、たいてい後で不整合が起きて無駄になる。
でもジャップランドのSEはプログラマの稼働率を下げないためにそうせざるを得ないの。
799デフォルトの名無しさん (ブーイモ MMd9-Ru/f [202.214.167.212])
2020/01/14(火) 18:43:28.37ID:0xXDWcnxM
ジャップアイランドは今日もハッピーです
800797 (ササクッテロラ Spf1-gopL [126.193.125.144])
2020/01/14(火) 19:29:37.55ID:m1u1XKORp
>>798
ありがとうございます。
並行作業のため、理解です。でも本当にそれだけなのでしょうか?interfaceが書ける時点で引数と戻り値は決まっているはずなので、最初からクラスを書いてダミーの戻り値を返すようにしておくのと変わらない気がします。
801デフォルトの名無しさん (ドコグロ MM13-JyDu [119.240.142.88])
2020/01/14(火) 20:09:08.05ID:/8RfG7cVM
>>800
よい質問だ。
SE様に作業完了の確認を貰って深夜残業を切り上げるには、当然、作ったものを単体テストしなきゃいけない。
でも使われる側がnull返すか何もしないだけのダミー実装じゃ普通に考えてテスト通るわけない。
どうするか?自分で都合のいい実装をでっち上げてそれを代わりに使うんだよ。
この手法は脳内彼女を相手に恋愛の練習をしているようなもので、どれだけ無駄かは容易に想像できるだろう。
態々interfaceを通さなくても脳内彼女の実装を対象クラスに直接書けばいいじゃないかと思うかもしれないが、
そうするとA君の脳内彼女とB君の脳内彼女が同一人物なのに違う実装になってしまって衝突したり、
いざ本物を実装しようとしたときに既に変なオナニー実装があって混乱するなど不都合が生じる。
ちなみに実は自動テストの都合という面もあるのだが、ドカタITではそんなものはファンタジーだから気にしなくてよい。
802デフォルトの名無しさん (ワッチョイ 9d02-Qvx6 [124.212.87.121 [上級国民]])
2020/01/15(水) 21:30:47.56ID:I5kvS7DO0
int a=10;
a=a+1
System.out.println(a);
803デフォルトの名無しさん (ワッチョイ 455f-0x+Z [106.72.163.96 [上級国民]])
2020/01/16(木) 00:49:53.70ID:aFCqpdJ/0
>>800
決まった名前のメソッドを実装させるため。
804デフォルトの名無しさん (アウアウウー Sa21-SNGL [106.132.129.104])
2020/01/16(木) 21:21:25.94ID:zJukF7BCa
>>800
違う実装を後からセットできるじゃない。
805デフォルトの名無しさん (アウアウエー Sa13-mgaX [111.239.153.45])
2020/01/16(木) 22:22:37.65ID:rwq+tT6ga
>>804
典型的な「不必要な抽象化」だね
〇〇Implなんて名前の時点で、ほぼ間違いなく実装の差し替えはテスト目的以外には行われないよ
806デフォルトの名無しさん (ワッチョイ fb01-C1bT [111.90.14.57])
2020/01/16(木) 23:07:38.38ID:Z0H9lpow0
わかるわーw
807デフォルトの名無しさん (ドコグロ MM41-mgaX [122.130.225.133])
2020/01/16(木) 23:23:00.28ID:afqzkFYPM
Goなんかは言語のコンセプトとして「実際に必要になる前の抽象化は糞」と(暗にJavaを指して)言ってるね
その通りだと思う
808デフォルトの名無しさん (ワッチョイ fb01-C1bT [111.90.14.57])
2020/01/16(木) 23:39:59.75ID:Z0H9lpow0
Goを設計したのはUnixの開発者たちだからねー
Unixはできるだけグルーコードを薄くすることで移植しやすく堅牢で保守しやすいシステムになった
Javaもそうしたが良いのかもわからんね
809デフォルトの名無しさん (ワッチョイ e3ad-nP71 [27.139.77.105])
2020/01/17(金) 00:36:40.53ID:VVaP2eJK0
Kotlin もよろしく
810デフォルトの名無しさん (ドコグロ MM03-rWIW [49.129.184.242])
2020/01/17(金) 00:37:06.20ID:Lhu1rqyiM
ことりん
811デフォルトの名無しさん (アウアウウー Sa21-SNGL [106.132.131.54])
2020/01/17(金) 09:07:32.24ID:4YEO+2r4a
>>805
そう?Swingの見た目変えるのとかで使ってない?
その他ライブラリーでOSや環境の違いを吸収する所とか。
812デフォルトの名無しさん (ドコグロ MM41-mgaX [122.130.225.133])
2020/01/17(金) 10:04:29.73ID:0sb73h15M
>>811
君はSwingを作っているのか?
俺も元々独学だったからよくわかるんだが、独学プログラマは不特定多数向けのプロダクトしか手本がないから、
ユースケースを特定せずに一般的や抽象化を行うことを必須と思い込みがちなんだよ
現実のアプリケーションプログラミングにおいては、一般に、極力絞り込んだ必要最低限のコードを書くほうが継続的な開発が容易になる
813デフォルトの名無しさん (オッペケ Sr19-uB0D [126.34.59.159])
2020/01/18(土) 00:55:57.15ID:6oxaDxGzr
OSや環境の違いを吸収するコンクリートクラスはOSや環境ごとの名前になるはずで、Implなんて無色透明な名前にはならないよ
それにテストだけならモックアップを動的生成させればいい
フレームワークと実装を分けたいときとか、Implが好ましい状況もあるけど、インターフェースを将来のため柔軟さのためにと増やすのはYAGNI原則とKISS原則に反する
814デフォルトの名無しさん (ワッチョイ 455f-0x+Z [106.72.163.96 [上級国民]])
2020/01/18(土) 01:00:29.14ID:vFXF5Tw00
典型的なJava信者のご登場。

こだわっているところがズレまくり。
815デフォルトの名無しさん (アウアウエー Sa13-mgaX [111.239.153.45])
2020/01/18(土) 01:23:04.05ID:AhPxC9uwa
実際、開放閉鎖原則がまともに機能してる現場なんか存在するんだろうか
経験上、むやみやたらとinterfaceが定義されててもそれらがポリモーフィズムに活用されることはほぼ無いし、
ほとんどの修正は既存の具象クラスに対して直接加えられる
日本のIT土方のレベルが低いとかそういう話ではなく、自社サービスでも海外のOSSでも同じだ
816デフォルトの名無しさん (スププ Sd03-heHR [49.96.13.73])
2020/01/18(土) 12:34:09.50ID:XaNWIYwld
結局インターフェースごと差し替えるから意味内わかるわー
817デフォルトの名無しさん (アウアウクー MM99-0x+Z [36.11.225.57 [上級国民]])
2020/01/18(土) 13:25:24.64ID:0gCd/F0VM
狂ったJava信者は仕様を満たすことよりもコードにこだわり、いつまでたっても物ができあがらない。

保守性が高いと自信満々だったのに、いざ保守になると面倒なロジックになっていて変更に時間がかかる。

最初にリリースしたものを最適化しすぎる傾向があって、使用が変わるたびにたくさんコードを修正しなくてはいけなくなる。

保守性が高いコードとは、少しダサい感じのコードなのに、この現実を受け入れられない。
818デフォルトの名無しさん (ワッチョイ fb01-C1bT [111.90.14.57])
2020/01/18(土) 14:47:55.78ID:meR2Lc880
>>817
わかるわー
819デフォルトの名無しさん (ワッチョイ fb01-C1bT [111.90.14.57])
2020/01/18(土) 14:48:34.90ID:meR2Lc880
みんな同じこと思ってるんだなー
820デフォルトの名無しさん (ワッチョイ 75da-A78j [114.184.58.168])
2020/01/18(土) 15:12:21.42ID:G/K26Ddi0
最適化するな、有効なジャバ
821◆QZaw55cn4c (ワッチョイ 2347-ieYb [131.129.114.156 [上級国民]])
2020/01/18(土) 16:56:09.39ID:2kvawVDh0
>>817
>保守性が高いコードとは、少しダサい感じのコード
なるほど、そうなんですか…
822デフォルトの名無しさん (ワッチョイ 6b63-6zBS [153.228.65.196])
2020/01/18(土) 16:58:42.51ID:NF270nDn0
そうなんだ
823デフォルトの名無しさん (ワッチョイ 4502-VyS5 [106.167.99.164])
2020/01/18(土) 23:06:18.65ID:Ov2B9gue0
HttpURLConnection使ってjson文字列をGETで送信したい
bodyになにか書き込むと勝手にGET通信じゃなくて
POST通信に書き換わってしまうんだがどうすればGETのままbodyに書き込める?
824デフォルトの名無しさん (ワッチョイ 5dda-JESV [220.144.30.68])
2020/01/18(土) 23:09:15.22ID:CUwsiqTs0
そもそもHTTPの仕様上、どうやってGETでbodyが送れると?
825デフォルトの名無しさん (ドコグロ MM93-rWIW [119.241.53.113])
2020/01/19(日) 01:01:44.39ID:Sewbs9bsM
どんだけでかいデータか知らんがurlエンコードしてクエリにセットすりゃいいんじゃね
826デフォルトの名無しさん (ワッチョイ e32c-Sfrr [219.162.234.204])
2020/01/19(日) 01:13:46.61ID:qcodQ+dh0
URL のクエリー部分に、JSON を入れる人は、いないw

普通に、キー・値で書け!
827826 (ワッチョイ e32c-Sfrr [219.162.234.204])
2020/01/19(日) 06:36:58.45ID:qcodQ+dh0
以下は、VSCode の拡張機能、REST Client のサンプルだけど、
たぶん、JSON は、POST しかないと思う

以下を、test.http として保存して、
URL を、http://localhost:8888 などに変えて、REST Client でやってみれば?

GET https://example.com/comments/1 HTTP/1.1

###

GET https://example.com/topics/1 HTTP/1.1

###

POST https://example.com/comments HTTP/1.1
content-type: application/json

{
"name": "sample",
"time": "Wed, 21 Oct 2015 18:27:50 GMT"
}
828デフォルトの名無しさん (ワッチョイ 455f-FGhO [106.72.150.32])
2020/01/19(日) 11:55:03.03ID:Qx904AID0
publicとかprevateとかつける意味あるの?
メンドウクサイんですけど
829デフォルトの名無しさん (ワッチョイ a501-H2qE [122.16.239.38])
2020/01/19(日) 12:12:33.24ID:iFGOF6Al0
>>828
YOU、全部グローバル変数にしちゃいなYO!
830826 (ワッチョイ e32c-Sfrr [219.162.234.204])
2020/01/19(日) 12:43:27.77ID:qcodQ+dh0
Ruby でやってみた!
標準のWEBrick サーバーで、>>827
の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
831デフォルトの名無しさん (ワッチョイ a3a3-9xZB [115.176.101.180])
2020/01/19(日) 19:42:05.87ID:U7GTLDND0
>>828
お前みたいなバカは全部privateがお似合いw
832デフォルトの名無しさん (ササクッテロル Sp41-hE/J [126.233.105.215])
2020/01/22(水) 20:00:42.92ID:Tupj1TxXp
String yyyyをSQL用にDate変換するにはどうしたらいいんだ…?
調べてもyyyy/mm/ddの記事ばかり
833デフォルトの名無しさん (ドコグロ MM43-Wb6n [49.129.187.17])
2020/01/22(水) 20:44:41.49ID:Ad54xjX8M
mmddに1月1日でも入れときゃいいんじゃね
834デフォルトの名無しさん (ワッチョイ 232c-++Vr [219.162.234.204])
2020/01/22(水) 23:56:49.84ID:fyGKoId60
Ruby on Rails は、抽象的なtimestamps 型を使う。
それがDB のMigration で、各DB の時刻型になる!

時刻は、日付型も含んでいる。
0時0分0秒にすればよい

UTC 時刻で保存しておけば、各国のローカルタイムにも変換できる
835デフォルトの名無しさん (ワッチョイ f501-KCcj [126.168.249.123])
2020/01/23(木) 07:06:00.23ID:YEvEyesH0
jdkが含まれてると有償になるみたいですがwindowsならアプリケーションの一覧に出てくるでしょうか?
java使ってるっぽいアプリがあるのですがjdkが入ってるか入ってないか調べる方法が解りません
836デフォルトの名無しさん (ワッチョイ 1b01-7vT5 [111.90.14.57])
2020/01/23(木) 07:28:23.50ID:cFfrxTRF0
>>832
var localDate = LocalDate.of(Integer.parseInt("2019"), 1, 1);
var sqlDate = java.sql.Date.valueOf(localDate);
System.out.println(sqlDate);
837デフォルトの名無しさん (ワッチョイ 5dda-Jq7D [114.184.58.168])
2020/01/23(木) 09:57:36.39ID:gE68l7u+0
>>834
ス・レ・チ
838デフォルトの名無しさん (オッペケ Sr41-2JYP [126.34.57.200])
2020/01/23(木) 12:52:46.95ID:mWAdwIcyr
var localDate = Year.parse("2019").atDay(1);
と書くとちょっとだけすっきり
839デフォルトの名無しさん (ブーイモ MM6b-q+KH [163.49.201.207])
2020/01/27(月) 14:02:10.88ID:SzZb6gPjM
月が1から始まるだけで感涙しそう
840デフォルトの名無しさん (ワッチョイ 6d5f-FkkX [106.72.150.32])
2020/01/28(火) 17:07:27.77ID:tlwivndu0
finalって何のためにあるの?
変更できない変数なら変数にしなきゃいいじゃん
ばかみたい
841デフォルトの名無しさん (ワッチョイ a301-RXuz [221.185.225.179])
2020/01/28(火) 17:14:06.59ID:CmoTnj/f0
842デフォルトの名無しさん (ブーイモ MM43-ig8/ [49.239.64.110])
2020/01/28(火) 17:56:19.12ID:EaxnzHwqM
>>840
必要になったときに計算で値を算出できる、かつ、計算コストが小さいならメソッドにしても良いかも知れない
843デフォルトの名無しさん (ブーイモ MM43-ig8/ [49.239.64.110])
2020/01/28(火) 18:00:44.22ID:EaxnzHwqM
変数を使用するときは、値を得るタイミングと値を使用するタイミングが異なるときであったり、計算コストが高いときであったりするから、変数を消すのはそれなりに大変
844デフォルトの名無しさん (ドコグロ MMb1-Wb6n [118.109.189.205])
2020/01/28(火) 19:41:55.33ID:HF/SUcrCM
>>840
数値とかだったりするとぱっと見でどういった意味の値かわかりづらいやろ
同じ意味で使ってる値の変更するときも安全
845デフォルトの名無しさん (ワッチョイ 5dda-Jq7D [114.184.58.168])
2020/01/28(火) 20:54:00.04ID:z4RJoCBm0
ファイナルアンサーの為に
846デフォルトの名無しさん (アウアウウー Sa9d-lBRq [106.132.128.243])
2020/01/29(水) 10:02:47.97ID:Ji+gdkxYa
>>840
定数に使える。

同じ意味でプログラムの複数箇所でその変数を使っている場合、変更時に変数への初期化箇所を直すだけで全ての変更が終わる。
直接数値などを書いた場合はプログラムの関連する箇所の全ての修正が必要となり修正ミスや修正忘れによるバグの発生率が増える。
847デフォルトの名無しさん (オッペケ Src5-W8VJ [126.193.159.24])
2020/01/29(水) 10:47:34.48ID:5KUzLeA7r
定数でしか使わないのは勿体ない
immutable programmingについて学ぶとfinalの価値が高いことに気付くよ
Javaだとfinal打つのが面倒で省きがちだけどね
848デフォルトの名無しさん (ブーイモ MMcb-qSW8 [163.49.201.28])
2020/01/29(水) 11:16:39.32ID:Fo4vX5x5M
>>840
finalクラス、finalメソッド、final変数とそれぞれ役割がある

変数だけについて言うとfinalを使うのは定数を定義したい場合とイミュータブルな変数を定義したい場合

イミュータブルな変数とは初期化後は変更されない事がコンパイラ等によって保証された変数

オブジェクトが生成されてから破棄されるまで変数の値が不変である事が保証されると
意図しない変更を防止(バグ回避)できたり、同時実行制御ロジックをシンプルにできたり、IDではなく値の同値性で比較すべきオブジェクトを表現できたり、変更されない事を前提とした最適化ができたりと様々なメリットがある

Kotlinのvar, val, constのようにモダンな言語はほぼ全てミュータブルな変数、イミュータブルな変数、定数の3つを明確に使い分けられるように設計されている
849デフォルトの名無しさん (オッペケ Src5-W8VJ [126.193.159.24])
2020/01/29(水) 12:10:44.48ID:5KUzLeA7r
素晴らしい回答だな
850デフォルトの名無しさん (アウアウウー Sa9d-lBRq [106.132.128.243])
2020/01/29(水) 12:16:25.17ID:Ji+gdkxYa
そうだな。

それと、こういう初心者定番の質問と回答をまとめたwikiとか作っとくと良いのではないか?
Javaだと既にあるかな?
851デフォルトの名無しさん (ワッチョイ f15f-0Ybi [106.72.150.32])
2020/02/01(土) 00:12:05.55ID:qUTCHDuq0
理屈はわかるが実践としてfinal使う人いるか?
いたら連れてきてくれ
852デフォルトの名無しさん (ワッチョイ fb01-rcOU [111.90.14.57])
2020/02/01(土) 01:16:32.43ID:kZmU3WGD0
マルチスレッドのプログラム書くときとか
ラムダ式使ったり匿名クラス使ったりするときにfinal使うっしょ
使いまくりっすよ
まあ最近のJavaはコンパイラが自動的にfinalにしてくれたりするけど
853デフォルトの名無しさん (ワッチョイ 13ad-e4+k [27.139.41.170])
2020/02/01(土) 02:35:49.24ID:SqAgZ26K0
>>851
君だってライブラリ側でfinal指定の引数の関数を使うときは使うだろう?
854デフォルトの名無しさん (オッペケ Src5-W8VJ [126.193.159.24])
2020/02/01(土) 04:50:38.45ID:dcKIHlgcr
おれはメンバ変数ではfinalは隙あらば書きたい
引数とローカル変数では書きたくない
5+1文字打つことのコスパが全然違う

immutableクラスを作るときに凡ミス防止を助けてくれるし
ほかの開発者が後で破壊的な変更をしてしまわないようにアピールする効果も狙える

実践で使わないなんて言えるのはimmutableの便利さにまだ実感をもってないからだよ
もしJavaのStringがStringBufferだったら阿鼻叫喚だったろうし
Java8でDateとCalendarが残念な過去のものとされたのもimmutableが理由のひとつとしてJSRで挙げられてる
855デフォルトの名無しさん (ワッチョイ 53a3-2G11 [115.176.107.163])
2020/02/01(土) 09:33:35.69ID:9lmFlpKY0
final プリミティブ=イミュータブル←わかる
final ミュータブル←それただのリードオンリーや幸子
856デフォルトの名無しさん (オッペケ Src5-W8VJ [126.193.159.24])
2020/02/01(土) 09:53:46.19ID:dcKIHlgcr
final イミュータブルにすればいい
final ミュータブルだったとしてもコンストラクタでコピーして不用意なgetterを付けずカプセル化するなら結果的に同じ
857デフォルトの名無しさん (オッペケ Src5-W8VJ [126.193.159.24])
2020/02/01(土) 10:02:53.61ID:dcKIHlgcr
節子、それを言うなら幸子やない。それ年末に凄い衣装で歌う人や
858デフォルトの名無しさん (ワッチョイ c1da-unxX [114.184.58.168])
2020/02/01(土) 11:15:25.54ID:HI9gNj8C0
final answer;
859◆QZaw55cn4c (ワッチョイ d347-Mlsf [131.129.114.156 [上級国民]])
2020/02/01(土) 12:15:11.92ID:EspH/Y2K0
>>857
蛍の墓なんて、上映当時は暗くて嫌だったのでトトロしか観なかったんだよね…
860デフォルトの名無しさん (ワッチョイ c1da-unxX [114.184.58.168])
2020/02/01(土) 13:35:17.93ID:HI9gNj8C0
日本入国禁止
861デフォルトの名無しさん (ワッチョイ c101-ijU5 [114.177.250.32])
2020/02/01(土) 14:40:22.67ID:6DXJSl9u0
幸子てw
素なのかボケなのかw
862デフォルトの名無しさん (ワッチョイ a9e6-O6vO [14.3.9.255])
2020/02/01(土) 15:10:43.95ID:+HWOljVE0
幸せを数えたら片手にさえ余る
863デフォルトの名無しさん (オッペケ Src5-W8VJ [126.193.159.24])
2020/02/01(土) 15:47:27.99ID:dcKIHlgcr
final int 年齢;
public 彼女(int 年齢) {
 this.年齢 = 年齢;
}

var 俺の嫁 = new 彼女(18);

こう書くといつまでも年齢が変わらない彼女が手に入る
finalで保証されているから安心ずっとピチピチギャルじゃよ

ローカル変数の俺の嫁にfinalは書かない
再代入は自由だから新作や来期が来たら替えてもいいぞ
定数(static)ではないのでこうも書ける
var 俺のハーレム = List.of(new 彼女(25), new 彼女(12), /* 以下略 */);

※ただし彼女は2次元限定だ
864デフォルトの名無しさん (ワッチョイ d9da-Y6bJ [220.144.30.68])
2020/02/01(土) 19:17:32.12ID:PDlR+uaq0
俺のハーレム.stream().forEach(嫁 -> 嫁.ほにゃらら(俺));

この場合、"俺" は final または effectively final でなければならない、
こういうことですね
865デフォルトの名無しさん (ワッチョイ a9e6-x8m7 [14.3.13.235])
2020/02/01(土) 23:48:37.32ID:OSOKpenJ0
副作用を口実に何も与えられず使い捨て
そして最後はGC行き

←GC|
. ̄.|| ̄      オレ氏┗(^o^ )┓三
  ||           ┏┗   三
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
866デフォルトの名無しさん (アウアウウー Sa9d-lBRq [106.132.128.127])
2020/02/03(月) 11:19:40.31ID:EEPHYlO9a
Kotlin もよろしく
867デフォルトの名無しさん (ワッチョイ cd5f-mZAX [106.72.150.32])
2020/02/08(土) 15:50:35.38ID:XDLxtpqZ0
EditTextのGONEを使っても大丈夫ですか?
868デフォルトの名無しさん (ワッチョイ cd5f-mZAX [106.72.150.32])
2020/02/08(土) 15:52:21.65ID:XDLxtpqZ0
まちがいました
スレ違いでした
失礼します
869デフォルトの名無しさん (スッップ Sd43-pG8F [49.98.131.21])
2020/02/11(火) 12:22:58.90ID:zPkn4No/d
外部apiを使うんですが
apiキーをコードに記述して直接apiを叩いてクライアントだけで完結させるか
サーバーにapiキーだけ置いてそれを取得する形にするか
サーバーがapiを使った処理をやって結果だけ返すようにするか
どれがいいですかね?
870デフォルトの名無しさん (ワッチョイ bdda-56gX [114.184.78.241])
2020/02/11(火) 15:07:20.43ID:FrrTL3l30
イミフ
871デフォルトの名無しさん (ラクペッ MM31-Xfzx [134.180.3.180])
2020/02/11(火) 15:10:00.31ID:rTcYf6uaM
まあ二番目以外じゃね?
java関係ないけど
872デフォルトの名無しさん (アウアウウー Sa09-6yOj [106.132.123.2])
2020/02/11(火) 17:51:44.15ID:ix+UlUL8a
ゴーンは逃亡しました。
873デフォルトの名無しさん (アウアウウー Sa09-6yOj [106.132.123.2])
2020/02/11(火) 17:52:59.56ID:ix+UlUL8a
あ、リロード忘れて俺の書き込みもイミフに
874デフォルトの名無しさん (ワッチョイ c71d-sg8N [118.238.238.98])
2020/02/12(水) 01:53:03.72ID:CB9IiDBv0
実務経験1年で月収80万稼げるエンジニアになった理由

@YouTube


意識が低いエンジニアこそフリーランスになれ

@YouTube


フリーランスエンジニアの週3労働ってどんな感じ?

@YouTube


ぼくがスキルのない社畜ならこうやって脱する

@YouTube


初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話

@YouTube


プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説

@YouTube


貧乏人こそ社会不適合者

@YouTube


元ド貧乏が教える】貧乏を抜け出すための2つの考え方

@YouTube


より良いオファー貰ってるのに転職しないとか何考えてるの?

@YouTube

875デフォルトの名無しさん (ワッチョイ 03da-OxJ8 [114.184.78.241])
2020/02/12(水) 15:18:31.59ID:9vv3BaQq0
閑話休題
876デフォルトの名無しさん (ワッチョイ 7f61-Qdob [36.3.104.76])
2020/02/18(火) 05:20:22.57ID:s//kq2Ho0
JavaFXがswingに撮って変わった原因てなんですか?
Swingのほうが異なるos間で動く可能性は高い?
877デフォルトの名無しさん (アウアウウー Sa1b-H6bD [106.180.2.111])
2020/02/18(火) 08:37:15.21ID:Bhh8NQSMa
JavaFXはコミュニティに移管され事実上廃止
Swingも元々ほとんど使われてない
取って代わったも原因もクソも、そもそもJavaでGUIアプリなんて今も昔もはっきり言って誰もやっていない
878デフォルトの名無しさん (ブーイモ MMfe-FtOb [163.49.201.76])
2020/02/18(火) 10:23:36.60ID:B1+kI16CM
>>877
なぜなんですかね?
879デフォルトの名無しさん (ワッチョイ 2261-sV+C [61.245.75.54])
2020/02/18(火) 18:13:46.94ID:sX1qjJQt0
>>877
アメリカにはゲームが有ったらしい。
880デフォルトの名無しさん (オッペケ Sr3f-+TfY [126.208.150.114])
2020/02/18(火) 20:53:50.65ID:KdC1vrBfr
EclipseやIntelliJといったJava用IDEくらいしかJava製GUIアプリ思いつかん
881デフォルトの名無しさん (ワッチョイ 22ad-ievF [27.139.41.170])
2020/02/18(火) 23:03:56.74ID:LK2OtjFi0
Oracleのインストーラが裏に行っちゃっていつも困った
882デフォルトの名無しさん (アウアウウー Sa57-6k5J [106.132.129.246])
2020/02/19(水) 14:10:45.35ID:/R79ylGQa
>>878
歴史的な事情
883デフォルトの名無しさん (ブーイモ MM57-wfSA [202.214.230.117])
2020/02/19(水) 14:14:18.61ID:1aV3jaSpM
ネイティブコンパイル出来るようになったからGUIアプリの需要結構あると思うけどね

C#のネイティブコンパイラまだ実用レベルにないし
884デフォルトの名無しさん (ブーイモ MM97-oe+T [210.138.6.115])
2020/02/19(水) 14:37:29.31ID:4iImSo2cM
>>882
どういう歴史的事情なのですか?
885デフォルトの名無しさん (ブーイモ MM97-oe+T [210.138.6.115])
2020/02/19(水) 14:38:16.24ID:4iImSo2cM
JavaのGUIが普及さなかったことに僕は納得できません
886デフォルトの名無しさん (アウアウウー Sa57-6k5J [106.132.129.246])
2020/02/19(水) 18:31:45.86ID:/R79ylGQa
>>884
Javaが広まり始めた90年代後半のPCは遅くてメモリも少なく、JavaVM起動直後の初期化でとても時間が掛かった。もちろん何もかもが遅く当然GUIも遅かった。
またJavaプログラム以外に別途JavaVMをインストールしておかねばならず初心者にはこれが壁になり普及を大きく妨げた。

ということでPCのデスクトップアプリケーションとしてのJavaは早々に死に、サーバーサイドのプログラムとして使われる事が多くなった。GUIの進化などするわけがない。

ただしAndroidによってクライアント側のGUIが救われたとは思える。主にスマホやタブレットになるが。
887デフォルトの名無しさん (ワッチョイ b3e9-IdAT [222.15.235.177])
2020/02/19(水) 18:34:21.04ID:7ZNyFvkM0
swingがスレッドセーフじゃないと知らずに別スレッドに投げて処理してた。
TextFieldは大丈夫だった。comboboxがうまく動かなくて調べて初めて知った。
888デフォルトの名無しさん (ブーイモ MM97-oe+T [210.138.6.115])
2020/02/19(水) 18:59:54.45ID:4iImSo2cM
>>886
納得しました
889デフォルトの名無しさん (JP 0Hdf-DPpo [153.143.139.144])
2020/02/20(木) 11:02:01.43ID:vFkAWpkQH
動画リンク

@YouTube


ファイル名
令和のコペルニクス.mp4

六角アミダって有りそうで無いので自作しました。
890デフォルトの名無しさん (ワッチョイ ef01-/D8n [111.90.14.57])
2020/02/20(木) 21:26:53.76ID:F4jYa5rU0
>>889
ソースコード見た
きれいなコードだった
891デフォルトの名無しさん (アウアウウー Sa57-6k5J [106.132.135.72])
2020/02/21(金) 12:50:11.92ID:TKnLlA6xa
そういえば Chromebook はAndroid用のプログラムも動くらしいな。
ということは何の苦もなくそのままの状態でJavaのGUIがPCで動くということでもあるな。
日本では Chromebook 売れてないけど。
892◆JAVA/drQNg (ワッチョイ 3361-IdAT [36.3.104.76])
2020/02/25(火) 02:33:13.31ID:zG0qK6rK0
>>877 Swing 便利だぞ
893デフォルトの名無しさん (ワッチョイ 755f-yNY2 [106.72.150.32])
2020/03/15(日) 23:27:22.01ID:weQDtzSh0
List って使うのやめませんか?
見にくい
894デフォルトの名無しさん (ドコグロ MM13-GQQE [119.240.140.187])
2020/03/16(月) 00:27:35.44ID:5NAQQQ5VM
何が見にくいのやら
895デフォルトの名無しさん (アウアウエー Sa93-drwQ [111.239.60.75])
2020/03/16(月) 09:57:38.95ID:bP3xNskMa
ArrayListのことを言っているのだとすれば
長さが可変の配列として使えるので「便利」
896デフォルトの名無しさん
2020/03/17(火) 03:50:44.28
Eclipse使ってます。

色々なライブラリを導入した時は、Javadocもインストールして開発を捗らせてます。
あるライブラリ(jar)の日本語javadocがあるかどうかってどこでどうやって判断したら良いですかね?
それとも、Pleadesに標準装備されてるJavadoc以外は基本的に日本語Javadocは期待しない方がいいですかね
897デフォルトの名無しさん
2020/03/17(火) 05:05:59.52
Eclipse使ってます。
昨日、pleiades-2019-12-ultimate-win-64bit-jre_20200213つまり最新版の全部込みを導入したんですが、
Javaソースコード編集中にマウスカーソルホバーでドキュメントがポップアップするやつですが、Filesクラスの説明が英語のままなんだが、何で?
ブラウザから
https://docs.oracle.com/javase/jp/13/docs/api/java.base/java/nio/file/Files.html
を見に行ったらちゃんと日本語だったんだが、Eclipse側でどういう設定にしたら良いの?
898デフォルトの名無しさん (アウアウウー Sa91-lxu7 [106.132.124.63])
2020/03/17(火) 17:37:29.70ID:4Vk7SyLRa
>>893
Kotlinだと同じListが見た目綺麗に書けるよ。
899デフォルトの名無しさん (ワッチョイ d72c-cvBQ [180.18.161.79])
2020/03/18(水) 00:29:29.98ID:LQtyodHE0
Ruby on Rails なら、アプリの設定ファイルに、
I18n.locale = :ja とか、:en とか設定する

それで、自分で日本語用の翻訳ファイルを作る。
設定/locales/ja.yml

member: 会員情報
full_name: 氏名
email: メールアドレス

こういう感じ
900デフォルトの名無しさん (ブーイモ MM83-NOfJ [202.214.125.29])
2020/03/18(水) 09:49:51.69ID:0YH7V5fkM
>>899
早く氏ね
901デフォルトの名無しさん (ワッチョイ dfb0-y1YS [114.165.4.23])
2020/03/26(木) 18:37:22.31ID:/asxdJYI0
Javaで何かを作る過程を詳細に説明してる書籍ってないの?
902デフォルトの名無しさん (ワッチョイ 7fb9-B4Y8 [123.48.128.206])
2020/03/30(月) 05:29:57.97ID:vlbwcsc70
クラスローダー毎にstaticフィールドが異なるという話が本当か調べようと思って
実験コードを書いてたんだけど
異なるクラスローダーで同じクラスを読み取って
this.getClass().getClassLoader()ってやったら同じインスタンスが返ってきてしまって
異なるクラスローダーで同じクラスを実行するという事ができない。
誰かそういうコード書ける?
903デフォルトの名無しさん (ワッチョイ 7fb9-B4Y8 [123.48.128.206])
2020/03/30(月) 06:11:56.99ID:vlbwcsc70
できたわ
確かにクラスローダー毎に静的フィールド異なるな
このコード書いてみてクラスローダー周りが良く分かった
904デフォルトの名無しさん (ワッチョイ 1ab9-zfCe [123.48.128.206])
2020/04/09(木) 17:33:07.09ID:09nXStiY0
人いないな
人気言語Javaでこれか
905デフォルトの名無しさん (ワッチョイ 0eda-AglQ [121.114.134.184])
2020/04/09(木) 17:37:43.96ID:OBt9P9fC0
俺もいる
906デフォルトの名無しさん (ワッチョイ 1761-ZCJJ [112.136.94.92])
2020/04/09(木) 17:38:30.10ID:RTR2QVCs0
>>904
内緒の話だけど、
2ch/5chは昔から5人位くらいががんばっていろんな板に書いているだけ。
907デフォルトの名無しさん (ワッチョイ 4e2c-5WFu [153.194.236.234])
2020/04/09(木) 18:01:19.95ID:pqMoXxyo0
>>901
掌田津耶乃だろ。
あらゆるゲームエンジン・フレームワークの本を書いてる!
まあ、Rails が一番有名だけど

Spring Framework 4 プログラミング入門、掌田津耶乃、2014
Spring Boot プログラミング入門、掌田津耶乃、2016

Node.js超入門、2017
PHPフレームワーク Laravel入門、2017
CakePHP 超入門、2018

Python Django 超入門、2018
Android/iOSクロス開発フレームワーク React Native入門、2018

Ruby on Rails 6 超入門、2020/2/21
908デフォルトの名無しさん (ワッチョイ 7af8-l/QE [115.163.210.109])
2020/04/11(土) 00:40:17.85ID:mccf80iK0
>>907
死ね屑
909デフォルトの名無しさん (アウアウエー Sa52-tpvz [111.239.185.171])
2020/04/11(土) 12:22:10.65ID:xkRXqkmOa
下記図のように、複数の三角形を描きたいです。
List<Point> ls;に格納したPointはソートされていますが、数は増減したりし、
マウスの座標は動きます。
java.awt.GraphicsのfillPolygonを使って
for (int i = 0; i < ls.size(); i++) {
g.fillPolygon(new int[mx, ls.get(i).getX(), ls.get(i + 1).getX()],
new int[my, ls.get(i).getY(), ls.get(i + 1).getY()]
,3);
}
のように書けないか考えているのですが、何かいい方法はありますでしょうか?
910デフォルトの名無しさん (ワッチョイ 7af8-l/QE [115.163.210.109])
2020/04/12(日) 21:06:14.95ID:PRMGLprP0
for (int i = 0; i < ls.size(); i++) {
g.fillPolygon(new int[]{mx, ls.get(i).getX(), ls.get(i + 1).getX()},
new int[]{my, ls.get(i).getY(), ls.get(i + 1).getY()}
,3);
}
こういうこと?
毎回newするのはイケてないので配列使いまわしたほうが良いよ
911デフォルトの名無しさん (ワッチョイ 5fb0-VPH2 [114.165.4.23])
2020/04/14(火) 16:10:32.31ID:Y5NGNrzR0
ラムダ式って匿名クラスの省略表記のことですか?
912デフォルトの名無しさん (ワッチョイ 1301-a7D8 [123.216.100.169])
2020/04/15(水) 15:03:37.07ID:pEtkgVWE0
ラムダ式の式って、方程式の式?それともオギノ式の式?
便乗で、くだらない質問でスマソ
913デフォルトの名無しさん (ワッチョイ b19f-XwhR [118.109.112.224])
2020/04/15(水) 15:38:20.11ID:SJCxaNjJ0
lambda expression
equation
Ogino method

equationはmathematical expressionの一種だから方程式の式
914デフォルトの名無しさん (ワッチョイ b19f-XwhR [118.109.112.224])
2020/04/15(水) 15:44:38.42ID:SJCxaNjJ0
>>911
間違ってはいない
Javaでは匿名クラスの省略表記のような形でラムダ式が実現されてる
プログラミング言語一般で考えると第一級関数である方が本流で匿名クラスと等価とは限らない
915デフォルトの名無しさん (ワッチョイ 1301-a7D8 [123.216.100.169])
2020/04/15(水) 15:49:51.69ID:pEtkgVWE0
>>913
なるほど。回答サンクス
916デフォルトの名無しさん (ワッチョイ 19b0-dkLK [114.165.4.23])
2020/04/15(水) 17:34:16.36ID:tqIYDceK0
>>914
ありがとうございます
Javaで何か作ってみたいのですがJavaでゲームを作ろうみたいなやつは古い本ばかりであまり参考になりそうにないですね
917907 (ワッチョイ eb2c-8Jcx [153.194.236.234])
2020/04/15(水) 19:42:23.77ID:oc9v+Ado0
Java でゲームプログラミングと言えば、
YouTube で有名な、T Umezawa のシリーズだろ

最近のJava は、Ruby on Rails のコピーで、
Spring Boot で、web プログラミングだろ

まあ、すべてのフレームワークの基本である、
Rails をやっていないと、web プログラミングは難しい
918デフォルトの名無しさん (ワッチョイ 095f-NJmS [106.72.163.96 [上級国民]])
2020/04/16(木) 23:06:30.69ID:GRiepDCa0
知ったかぶり風
919デフォルトの名無しさん (ワッチョイ 095f-NJmS [106.72.163.96 [上級国民]])
2020/04/16(木) 23:07:20.97ID:GRiepDCa0
WebアプリケーションそのものはJavaではない。
920デフォルトの名無しさん (アウアウエー Sa23-qpj1 [111.239.187.174])
2020/04/18(土) 00:08:56.76ID:/cj6qYxIa
>>910
ありがとうございます。
出来ました。

1つ質問なのですが、
「毎回newするのはイケてないので配列使いまわしたほうが良いよ 」
ということはどういうことでしょうか?
921デフォルトの名無しさん (ワッチョイ 095f-NJmS [106.72.163.96 [上級国民]])
2020/04/18(土) 00:46:21.08ID:AvZMO+wH0
毎回、動的にメモリを確保する意味がわからない。
922デフォルトの名無しさん (ワッチョイ e1ad-ycCE [110.132.222.152])
2020/04/18(土) 02:09:38.89ID:yOAua5ec0
ヴィジュアルスタジオコードで
新しいpackageを作るにはどうすればよいの?
923デフォルトの名無しさん (ワッチョイ 13ad-Ho7r [27.139.77.105])
2020/04/18(土) 13:43:12.82ID:VYQrLT4k0
>>920
その場合ループの中にあって同じ要素数の配列のためのメモリ確保と解放の処理が繰り返されるし、尚且つ一つのメソッドの引数で使って即不要になるので無駄な感じがする。
もちろんコンパイラがうまいこと最適化して最終的なコードに無駄はなくなる可能性はあるのだが、Javaの場合はそれが保証されていない。

ということでそういう場合はループの外で配列を new してから使う方が良い。
924デフォルトの名無しさん (ブーイモ MMeb-AGCG [163.49.209.169])
2020/04/19(日) 16:00:29.92ID:8cBnO1r8M
リソースと外部ファイルの違いを理解するところから。
Javaに限った話ではない。
925デフォルトの名無しさん (ワッチョイ 095f-Tn3+ [106.72.163.96 [上級国民]])
2020/04/19(日) 17:42:15.94ID:3CRJEjuQ0
年齢に関係なく物理メモリが無尽蔵にあると思っている人間は多いからね。
926デフォルトの名無しさん (アウアウエー Sa23-csEB [111.239.186.230])
2020/04/21(火) 20:33:38.51ID:8bW+Kt6Ua
>>923
ありがとうございます。
このような書き方でもいいのでしょうか?

public void func() {
int[] lx, ly = new int[3];
lx[0] = mx;
ly[0] = my;
for (int i = 0; i < ls.size(); i++) {
lx[1] = ls.get(i).getX();
lx[2] = ls.get(i + 1).getX();
ly[1] = ls.get(i).getY();
ly[2] = ls.get(i + 1).getY();

g.fillPolygon(lx, ly, 3);
}
}
927デフォルトの名無しさん (ワッチョイ 6bda-3ZT4 [121.114.117.145])
2020/04/21(火) 23:24:37.91ID:5ht19G0Q0
初歩的な質問ですみません

スイッチ分のcaseに定数を使ったらエラーで怒られたのですが、ここに定数を使ってはいけないのでしょうか?
文字列の判断の際、定数が安全なのですが、やはりcaseには直に文字列を書くしかないですか?
928デフォルトの名無しさん (ワッチョイ 8101-AOao [126.163.132.176])
2020/04/21(火) 23:35:53.08ID:C52TTD3s0
エラー文貼って
929デフォルトの名無しさん (オッペケ Sr27-Jj4D [126.34.1.62])
2020/04/22(水) 04:01:43.60ID:M5XlvSVjr
>>927
普通に使えるから書き方間違ってんでしょ
930デフォルトの名無しさん (ワッチョイ 171d-Hty+ [202.213.61.90])
2020/04/22(水) 17:53:16.23ID:TD6vt53g0
FileWriterやFileReaderを用いたファイル入出力処理では、
やはりthrowsではなく、try-catch-finallyを使った例外処理をすべきですか?
931デフォルトの名無しさん (ワッチョイ b79f-zYp9 [118.109.112.224])
2020/04/22(水) 18:33:32.39ID:QyipDPr70
どの層でcatchすべきかはデザイン次第
個人的なツール等で利用者が困らないなら別に外まで投げっぱなしでもいい
いずれにしてもtry-with-resourse文は使うべき
932930 (ワッチョイ 171d-Hty+ [202.213.61.90])
2020/04/22(水) 19:14:33.76ID:TD6vt53g0
>>931
参考になります。
ありがとうございます。
933デフォルトの名無しさん (ワッチョイ fff8-8pil [115.163.210.109])
2020/04/22(水) 23:56:55.34ID:isrmfS5f0
>>926
よきよき
934デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
2020/04/23(木) 00:02:52.73ID:OS0IvuzA0
早すぎる最適化の典型例
935デフォルトの名無しさん (ワッチョイ cf63-QpYc [153.201.71.238])
2020/04/23(木) 00:54:08.15ID:sh2IntRG0
個別アプリでtry-catch構文を使うなとか嘗め腐った規約
共有部分で使いまくってるのに個別アプリで使うとだめな理由が一切わからない
規約作ってるやつが俺Sugeeeしたいのか
936デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
2020/04/23(木) 01:04:14.00ID:OS0IvuzA0
>>935
まとめてロギングしたいとかじゃないかな
catchするならリスローしてねの規約があってもよさそうだけど
わからないなら聞いたら良いと思うよ
937デフォルトの名無しさん (ワッチョイ d7da-1Gce [121.114.134.184])
2020/04/23(木) 09:31:20.01ID:MgcChLvv0
同情してほしいのかw
938デフォルトの名無しさん (ワッチョイ b79f-zYp9 [118.109.112.224])
2020/04/23(木) 17:29:55.27ID:+/WR4MAB0
初心者になるべくtry-catchを使ってほしくないという気持ちは分かる
例外が握りつぶされる
原因例外が途中で捨てられエラー発生元が分からなくなる
無意味なラッピングがされていてcatchがうまく書けなくなる
同じ例外のスタックトレースが何度も何度も出力される
もううんざりだよ
939デフォルトの名無しさん (ワッチョイ d701-ho2D [114.165.191.3])
2020/04/23(木) 23:22:54.42ID:EqDE6vCO0
そんなこといったって、どうすりゃいいのさコロコロ(AAry
940デフォルトの名無しさん (オッペケ Sr27-Jj4D [126.34.14.23])
2020/04/24(金) 01:31:21.77ID:7OUYGVe4r
ヨシ!
catch(Exception e){
throw new Exception();
}
941デフォルトの名無しさん (ワッチョイ 6f01-zAxQ [126.163.132.176])
2020/04/24(金) 08:49:19.15ID:SZShfMPk0
例外のたらい回しや〜
942デフォルトの名無しさん (ワッチョイ 5361-Op/G [112.136.82.191])
2020/04/24(金) 12:03:25.18ID:oe7zjHr90
よくある↓のようなifで事前チェックさせる方式がなぜまずいのか考えてみよう。
if (resource.isAvailable()) {
resource.getData();
...
}
943デフォルトの名無しさん (ワッチョイ fff8-lpxC [115.163.210.109])
2020/04/24(金) 14:43:08.72ID:TokoipqW0
いや普通にロックかければいいじゃない。その例は良くない。
それにgetDataの根本のところでも同じようなことをやってるだろう。
944デフォルトの名無しさん (ブーイモ MM07-Pmq7 [210.138.178.18])
2020/04/24(金) 15:22:40.00ID:+0niyonSM
atomicityを問題にしてるわけじゃないだろ

そこは事前チェックする場合だろうと例外でハンドリングする場合だろうと大差ない
945デフォルトの名無しさん (ワッチョイ fff8-lpxC [115.163.210.109])
2020/04/24(金) 15:42:12.97ID:TokoipqW0
じゃあ942は何がまずいのか分からん
946デフォルトの名無しさん (スプッッ Sdbf-O1rO [1.75.238.37])
2020/04/25(土) 05:32:13.99ID:EmF7EpXGd
初歩の初歩なんだろうけど
javaでデータを保持しておきたい場合ってどういう風にするのが一般的?
たとえば作った名簿(HashMapなんかを想定)を次に使うときまで保持しておいて、次回はそれを使って続きから作業したいみたいな
テキストで保存しとくとかいくらでもやりようは思いつくんだけど、セオリーを知りたい
947デフォルトの名無しさん (ワッチョイ 6b1d-Hty+ [180.178.91.194])
2020/04/25(土) 06:22:35.23ID:4NLY0GvS0
tryの後の()の中に2つ文を書くことは出来ますか?
例えば、
try(FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);)
と書けますか?
948デフォルトの名無しさん (ブーイモ MMbf-Pmq7 [163.49.203.164])
2020/04/25(土) 11:40:04.07ID:ek8I9sztM
>>946
シリアライズでググれ
949デフォルトの名無しさん (ブーイモ MMbf-Pmq7 [163.49.203.164])
2020/04/25(土) 11:40:45.14ID:ek8I9sztM
>>947
tryの後は{}
950947 (ワッチョイ 6b1d-Hty+ [180.178.91.194])
2020/04/25(土) 12:09:14.21ID:4NLY0GvS0
>>949
{}の前です
Java7から導入された記述方式らしいのですが
951デフォルトの名無しさん (ブーイモ MMbf-Pmq7 [163.49.208.236])
2020/04/25(土) 12:40:24.18ID:pY24ooGqM
>>950
あ〜、できるよ
それはtry-with-resourceって名前
952947 (ワッチョイ 6b1d-Hty+ [180.178.91.194])
2020/04/25(土) 12:52:44.81ID:4NLY0GvS0
>>951
やってみます
ありがとうございました
953947 (ワッチョイ 6b1d-Hty+ [180.178.91.194])
2020/04/25(土) 19:13:40.59ID:4NLY0GvS0
たびたびすいません

https://pastebin.com/dTMz4gib
上のコードがコンパイルエラーになってしまうのですが、理由が分かりません
「identifierがありません」と表示されてしまいます
どなたかよろしければ、回答をお願いします
954デフォルトの名無しさん (ワッチョイ cfe9-QpYc [222.15.235.177])
2020/04/25(土) 19:56:44.28ID:7cJ26G9d0
>>953
try(FileReader fr = new FileReader("matrixA.txt");
BufferedReader br = new BufferedReader(fr)) {
955デフォルトの名無しさん (アウアウエー Sa5f-1Gce [111.239.64.167])
2020/04/25(土) 20:01:48.54ID:ft4DoFbAa
try(
ではなくて
try{
では?
956デフォルトの名無しさん (ワッチョイ b79f-zYp9 [118.109.112.224])
2020/04/25(土) 21:13:46.97ID:OfMSEBEA0
>>953
変数宣言はtry ()の内側に書く必要がある
Java9あたりからは外で宣言しても良くなったけど、それでもeffectively finalであることが前提だからfrへの代入はNG
そもそもメソッド冒頭に宣言を集めてしかも取りあえずnullで初期化しとけってのは悪癖だからやめた方がいい
957デフォルトの名無しさん (ワッチョイ f75f-Btmo [106.73.70.129])
2020/04/25(土) 23:24:22.99ID:WvCOhEhy0
>>953
言いたかないけど質問のレベルが低すぎる気がする。
変数のスコープも理解できてないようだし、
それコピペしてきて動けばいい感じで動かしているだけだよね。
学校の宿題なんだろうけど、もっとちゃんと勉強しようよ。
ここでサボって人に聞いたものを単純に覚えていたら
この先何も書けなくなるよ。形を覚えるんじゃなくて
意味を覚えよう。
958947 (ワッチョイ 6b1d-Hty+ [180.178.91.194])
2020/04/25(土) 23:49:36.24ID:4NLY0GvS0
答えてくれた方ありがとうございました

>>954
やっぱりそう書かないといけないんですね…

>>955
try with resource文に関してです

>>956
>メソッド冒頭に宣言を集めてしかも取りあえずnullで初期化しとけってのは悪癖
マジですか

>>957
すいません
スコープは理解しているつもりです
例外処理をあまり書いたことがなかったので…

学校の宿題ではありません
大学は数年前に卒業しています
959デフォルトの名無しさん (ワッチョイ b79f-zYp9 [118.109.112.224])
2020/04/26(日) 10:51:45.92ID:BocD88xX0
>>958
文法規則を知らないって意味ではなくスコープとはどう活用すべきものなのかが把握できてないってことだと思うよ
たとえばクリティカルシンキングのスキルが不足している優しいイイ人は10年やっても残念なコードしか書けないことがよくある
もしプロとしてJavaを書いて金を貰っているならリーダブルコードのような良書を一冊読んでみるのをお薦めする
960デフォルトの名無しさん (ワッチョイ 1f02-Btmo [59.129.240.22])
2020/04/26(日) 11:59:50.88ID:aAS4CHj70
すいません初心者です助けてください…課題でいきなり詰まってます…
課題の言ってることはわかるのですが、いざ書こうとなるとうまくまとめることが出来ません…
解答例を示していただけないでしょうか…
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14223782454
長すぎてエラーになってしまったので知恵袋の投稿見ていただけると助かります…
961デフォルトの名無しさん (ドコグロ MMff-i0du [119.241.52.20])
2020/04/26(日) 12:04:35.25ID:0wpm4o+CM
>>960
★★ Java の宿題ここで答えます Part 74 ★★ [無断転載禁止]©2ch.net
http://2chb.net/r/tech/1477625280/
962デフォルトの名無しさん (ワッチョイ d7b0-DEv8 [114.165.4.23])
2020/04/26(日) 12:05:05.54ID:f4V9z6xn0
Javaのgoldまで取得できたので実際に何か作ってみたいと思っています
Java + MySQL + Tomcatで作る掲示板とブログという本を参考に掲示板を作ってみようと思っているのですがこの本で問題ないでしょうか?
発売されたのは2005年みたいなので古すぎて参考にならないとかありますかね?
963デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
2020/04/26(日) 12:14:02.60ID:47T+vKxr0
>>962
作るのに資格も本も必要ないググって作れるっしょ
964デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
2020/04/26(日) 12:29:34.20ID:47T+vKxr0
>>960
https://paiza.io/projects/ybHyJcapWsMAVpEV6JQLUQ
965デフォルトの名無しさん (ワッチョイ 1f02-Btmo [59.129.240.22])
2020/04/26(日) 12:37:25.80ID:aAS4CHj70
>>964
親切にありがとうございます!!!
本当に助かります…
966デフォルトの名無しさん (アウアウウー Sa17-Lf76 [106.128.187.188 [上級国民]])
2020/04/26(日) 14:02:57.82ID:G0DkXyp/a
【 課題 】 https://drive.google.com/open?id=1QaPxq5C66ZQpcCyITgS2XCQDs44zoomy
       複数あるのでgoogledriveで課題内容を共有させていただきます
【 形態 】1. Javaアプリケーション
【 GUI  】
【 期限 】4月29日
【 補足 】丸投げです…申し訳ありません…
967デフォルトの名無しさん (アウアウウー Sa17-Lf76 [106.128.187.188 [上級国民]])
2020/04/26(日) 14:03:17.84ID:G0DkXyp/a
すいませんスレ間違えました…
968デフォルトの名無しさん (アウアウウー Sa17-Lf76 [106.128.184.230 [上級国民]])
2020/04/26(日) 20:56:15.37ID:2WL2jfIba
エクリプスでjunit使いたいんですけど、うまくいきません…
ここ見れば使い方わかるみたいなサイトってありますか?
自分でも調べてやってみたんですけど、「テストランナーjunit4のテストが見つかりません」と出てしまい困ってます…
969デフォルトの名無しさん (ワッチョイ 572c-iUOt [153.194.236.234])
2020/04/26(日) 23:02:21.88ID:IvO3yqTY0
>>962
2005年か

Ruby on Rails が流行ったから、
今はどの言語でも、Rails のコピーが隆盛で、

Java でも、Groovy で、Spring Boot などに変わった
970デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
2020/04/26(日) 23:27:59.91ID:47T+vKxr0
>>968
ビルドパスにjunitのjarとhamucrestのjarを追加して
こういうクラス書いて実行すればできるっしょ

import org.junit.Test;

public class MainTest {
@Test
public void testA() {
System.out.println("hoge");
}
}
971デフォルトの名無しさん (アウアウエー Sa5f-Op/G [111.239.186.191])
2020/04/28(火) 22:04:38.77ID:NIccQJ3va
https://github.com/OneLoneCoder/olcPixelGameEngine/blob/master/Videos/OneLoneCoder_PGE_ShadowCasting2D.cpp
の416から425行の処理はjavaではどう書くのでしょうか?
972デフォルトの名無しさん (ワッチョイ fff8-8pil [115.163.210.109])
2020/04/28(火) 22:41:02.37ID:96XBocG+0
Tuple相当のクラスに独自のhasCode()メソッドとequals()メソッドを定義してLinkedTreeSetに突っ込んだらどうかね
973デフォルトの名無しさん (ワッチョイ ff01-9eV8 [111.90.14.57])
2020/04/28(火) 23:33:36.32ID:4kUhwH6S0
>>971
https://paiza.io/projects/QlHbDweVK7Jz5Dui5QzsZQ
974デフォルトの名無しさん (アウアウエー Sae3-D935 [111.239.186.191])
2020/04/29(水) 09:13:39.21ID:GLkFkZ60a
>>972, 973
ありがとうございました。
ラムダを使えばきれいに書くことが分かりよかったです。
975デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 02:37:11.81ID:UCNL2IRg0
質問
マルチスレッドでコンストラクト中の状態を逸出させないということで
コンストラクタの中でインスタンスメソッドを呼ばないようにしましょうという原則がありますが
コンストラクタの中でインスタンスメソッドを呼びたいときもあると思います
そういうときみなさんはどうしていますか?

・コンストラクタの代わりにstaticのファクトリメソッドを作ってその中でnewしてインスタンスメソッドをコールする
・コンストラクタの中で呼びたいインスタンスメソッドを別のクラスに移動する
・シングルスレッドでしか使わないのでマルチスレッドの原則なんて気にしない、コンストラクタの中でインスタンスメソッドをコールする
・その他

アンケートみたいな感じですけどご回答いただければ幸いです
976デフォルトの名無しさん (ワッチョイ 82ad-48kr [27.139.77.105])
2020/05/06(水) 06:32:23.63ID:izcxg96Z0
>>975
https://irof.hateblo.jp/entry/2016/01/09/231631
977デフォルトの名無しさん (ワッチョイ 8d9c-HM7w [122.249.239.156])
2020/05/06(水) 07:43:10.31ID:4GtcOPgo0
>>975>>976 は書いてることが違う?
>>976 はコードに問題があれば100%バグが再現する
>>975 はマルチスレッドと言ってる
>>975 はどのような問題が起こるのかをまず説明して欲しい(知りたい)

コンストラクタな完了前にオブジェクト変数にインスタンス参照が設定される問題は私も知ってるけど
それはインスタンスメソッド呼び出しどうこうといった問題ではないし・・・
978デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 09:33:39.20ID:UCNL2IRg0
>>976
ありがとうございます!
ドキュメントに書く、オーバーライドできないようにすればおkということですね

>>977
> >>975>>976 は書いてることが違う?
同じです、結局のところそういうことです

> コンストラクタな完了前にオブジェクト変数にインスタンス参照が設定される問題は私も知ってるけど
それです、残念ながらそれです

コンストラクタでインスタンスメソッドを呼び出しても問題ないからやる派ですね?
979デフォルトの名無しさん (ワッチョイ 519f-FhGp [118.109.112.224])
2020/05/06(水) 11:58:04.95ID:q8N1X/Ij0
>>977,978
別の話が混ざり合ってるな
読んだ人は腑に落ちないか誤解すると思う
互いに密接で合わせ技もあるので完全に切り離すことはできないけど、一緒くたにすると影響や対処に漏れが出る

> マルチスレッドでコンストラクト中の状態を逸出させない
という表現に合うのはこれ
https://www.jpcert.or.jp/java-rules/tsm03-j.html
ただしコンストラクタとは別の初期化メソッドを提供する場合の話

コンストラクタ中から逸出させるなという規約はこれ
https://www.jpcert.or.jp/java-rules/tsm01-j.html
コンストラクタからのインスタンスメソッド呼び出し自体は問題にしてない
シングルスレッドの場合も問題がある

>>976はこれ
https://www.jpcert.or.jp/java-rules/met05-j.html
this逸出の話に比べるとかなり限定的な話
980デフォルトの名無しさん (ワッチョイ 8d9c-HM7w [122.249.239.156])
2020/05/06(水) 12:22:20.27ID:4GtcOPgo0
これってJVMのバグではないの?
JVMがコンストラクタが完了するまでインスタンス参照を変数に代入しないようになれば解決するんじゃないの?
なぜ不完全なインスタンスへの参照が変数に設定される可能性をプログラマーが考慮し続けてないといけないの?
今後もずっと続くの?
981デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 12:22:37.91ID:UCNL2IRg0
>>979
コンストラクタからインスタンスメソッドを呼びたいときどうしますか?
一般論ではなくて個人の考えを教えていただけると幸いです
982デフォルトの名無しさん (ワッチョイ 519f-FhGp [118.109.112.224])
2020/05/06(水) 15:56:16.60ID:q8N1X/Ij0
>>981
一般論うんぬんじゃなくて論理的かどうかで判断しないとプログラムは言うことを聞かないし
こんな匿名の場で少ないサンプルを集めたところでかりそめの安心感しか得られない
俺の脳内のタカアンドトシが女子か!!と激しくツッコミいれるわ
俺は上で挙げたルールに反しないように書くよ
983デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 15:59:37.62ID:UCNL2IRg0
>>982
ふーん
984デフォルトの名無しさん (ワッチョイ a2f8-Qa3R [115.163.210.109])
2020/05/06(水) 16:30:04.38ID:LXTBA+hx0
いったいどうしてマルチスレッドでコンストラクタからインスタンスメソッドを呼び出しちゃいけないなんて思ったのか、先に説明してくれよ。
>>979が出処と違うんか?
985デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 16:44:34.41ID:UCNL2IRg0
>>984
それですよ
僕が説明したとしてあなたは何ができますか?
986デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 16:45:55.31ID:UCNL2IRg0
僕が勘違いしてたことを追求してどうするんです?
僕をどうするつもりなんですか!?
987デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 16:47:10.35ID:UCNL2IRg0
いまのところコンストラクタの中でインスタンスメソッドをコールするのが全員のようですね
988デフォルトの名無しさん (ワッチョイ a2f8-Qa3R [115.163.210.109])
2020/05/06(水) 19:13:14.78ID:LXTBA+hx0
>>986
勘違いしていることに気がついたのなら先にそう言いいなよ。
>>985
君が勘違いしていると思ってその原因を探りたかっただけなんだが。
>>987
君が勘違いしていたのだから当たり前だろう
989デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 19:34:01.04ID:UCNL2IRg0
きっしょw
990デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 19:34:16.90ID:UCNL2IRg0
あ、ごめんつい本音がw
991デフォルトの名無しさん (ワッチョイ 8d9c-HM7w [122.249.239.156])
2020/05/06(水) 20:04:06.93ID:4GtcOPgo0
恥ずかしい人だなー
誠実な対応ができず茶化して誤魔化すような人って技術的にも成長できず頭打ちになる人が多い印象がある
992デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:05:25.12ID:UCNL2IRg0
>>991
それなw
993デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:06:07.59ID:UCNL2IRg0
>>988
お前のことだぞ
994デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:30:24.54ID:UCNL2IRg0
原因を探って何をするつもりだったのでしょうか
どうして原因を探ろうと思ったのでしょうか
そこを探っても質問の回答には辿り着けません

僕の質問はみんながどう考えてるかってことでした
自分はこう考えてるという意見が欲しかったのですが・・・
995デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:31:51.53ID:UCNL2IRg0
遺憾です、このスレは埋めさせていただきます
996デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:32:06.57ID:UCNL2IRg0
997デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:32:18.11ID:UCNL2IRg0
998デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:32:26.16ID:UCNL2IRg0
999デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:32:34.45ID:UCNL2IRg0
1000デフォルトの名無しさん (ワッチョイ 0601-6t4H [111.90.14.57])
2020/05/06(水) 20:32:42.71ID:UCNL2IRg0
10011001
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 534日 8時間 55分 36秒
10021002
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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



lud20250107171731nca
このスレへの固定リンク: http://5chb.net/r/tech/1542595026/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「★★Java質問・相談スレッド182★★ YouTube動画>12本 ->画像>6枚 」を見た人も見ています:
環境構築ツール統合スレ Ansible、Chef、Vagrant等
java初めて少し経ちましたが
includeと継承の違いが解らない…
Java有償化まとめ
スレ立てるまでもない質問はここで 156匹目
Pythonのお勉強 Part53
p2p技術総合スレ
埋め立てスクリプトってRubyで作れますか?
Pythonのお勉強 Part60
【急募】毎日のCPU時間を17年間節約する技術
Robocodeなるものを大学でやってるんだが
リンク先を読めるように出来る人いませんか?
GUIプログラミング総合
ますたーのお勉強中の独り言スレ
プログラム系を覚えたいんだが何を覚ええたらいい?
助けてください
【おめでとう】4月1日はHSPの日【ようこそ】
C++/WinRT cppwinrt::part1
Flutterやろうよ!!! 2
大学生になったらIT企業でバイトしたいんだけど
Excel VBA 質問スレ Part77
どのレベルならプログラミング出来ると言っていい?
Win32API質問箱 Build23
オブジェクト指向ってクソじゃね?
応用情報って取る価値ある?
【入門】Common Lisp その11【質問よろず】
Pythonのお勉強 Part55
Excel VBA 質問スレ Part51
最近の奴は0.001秒で何命令実行できるかも知らない
JS初心者の集まるスレ
Excel VBA 質問スレ Part75
オブジェクト指向を今すぐやってください
オブジェクト指向を教えてくれ!★2
【ER図】なんでもリレーション貼るの害悪じゃないかな?
AIは自動化と組み合わせることで人間の仕事を奪う
.NET CORE No.2
Rust part6
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】
【.cmd】 バッチファイルスクリプト %15 【.bat】
設計思想/ソフトウェア工学(UML, デザパタetc)
スレ立てるまでもない質問はここで 158匹目
Python の宿題ここで答えます Part 2
スレ立てるまでもない質問はここで 154匹目
AtCoderとかしてる奴は自分で問題を作れない未熟者
Go language part 5
工業高校での研究について
Monacaでアプリ開発してるんだけどsqliteが使えない
回復能力と記憶消す能力あれば同じ女を何回も殺せる
pythonista総合スレ【IOSで勉強できる】
帰ってきた動的言語 VS 静的言語(代表Swift)
実データでプログラミングすれば単体テストは不要!
【hoge】メタ構文変数【foo】
Java入門・初心者質問スレ Part.7
Rubyに'end'って要らないよな
くだすれPython(超初心者用) その42【Ruby禁止】
Pythonは同じ事するのにforと内包表記の2つの方法が
Chainerやっぱりお絵かき専用だった
人工知能ディープラーニング機械学習の数学 ★2
C++相談室 part162
C++諦めたから他のオススメの言語教えて!
TypeScript part4
C++相談室 part143
Java入門・初心者質問スレ Part.11
静的型付け言語の潜在開発生産性は今の100倍 ×5
【Delphi】Embarcaderoオッチャ その34【C++ビルダ】
03:17:31 up 26 days, 13:41, 1 user, load average: 8.07, 8.89, 9.07

in 1.895045042038 sec @0.032220125198364@0b7 on 010717