X



★★Java質問・相談スレッド181★★
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/02/10(土) 17:49:40.56ID:l9ZzjyKP
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

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

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

前スレ
★★Java質問・相談スレッド180★★
https://mevius.5ch.net/test/read.cgi/tech/1492780397/
0242デフォルトの名無しさん
垢版 |
2018/06/09(土) 10:09:51.63ID:Naz/3W/N
>>241
なるほど、そうすると
MANIFEST.MFのClass-Pathはjar内のパスを指定するものではなくて
jarの外のパスを指定するものだってことになるかと
jar内のパスはあくまでもpackageでやりましょうということなんじゃないかな
0243デフォルトの名無しさん
垢版 |
2018/06/09(土) 10:24:49.37ID:Naz/3W/N
packageはディレクトリで示されるのでデフォルトパッケージのB.classが
b/の下にあるのがおかしいのでしょうね
0244デフォルトの名無しさん
垢版 |
2018/06/09(土) 15:10:59.27ID:AVDHrvoe
>>242,243
わああ うごきました!!!!!

パッケージがついてないソースを全部同じフォルダに展開しただけで動くようになりました
コンパイルにパスの指定も必要なくなったし
パッケージ構成とフォルダ構成をあわせる必要があったんですね

課題用に配られたソースだったので自分で描いたコードと分けておいた方がいいのかなと思ったんですが
そのせいでまる1日どはまりしてしまった

教えていただいてありがとうございました
ほんとに助かりました
0245デフォルトの名無しさん
垢版 |
2018/06/09(土) 22:39:02.82ID:ExnJNgW8
クラスパスに指定するjarの扱いはディレクトリのようなもんなんだよ。
main.jar内にb/B.classが入っていて、デフォルトパッケージのBってクラスを
使いたいんだったら、kラスパスは main.jar:b (正確な書き方は忘れた)
みたいに書かないとダメなんだよ。
0246デフォルトの名無しさん
垢版 |
2018/06/09(土) 23:22:00.71ID:dWoOad5I
>パッケージ構成とフォルダ構成をあわせる必要があったんですね

入門書にも書いてあるのに、説明書を読まずにやっているから出来ない。
プログラミングのほとんどは、説明書を読むかどうかだけ

読まない人は、出来ない

学校の勉強と同じ。
教科書を読まない人は、出来ない
0247デフォルトの名無しさん
垢版 |
2018/06/09(土) 23:28:53.67ID:AVDHrvoe
まだ学生なのでそんなに本にお金かけたりできないんですけど
もしお勧めの本があったら紹介していただけませんか?

パッケージを作るときにフォルダ構成をあわせるのは知ってましたが
a/A.java の構成はそうなってる

他の人が作ったパッケージ宣言されてないソースを使うときに
トップディレクトリに展開しないとjarにはできないとは思わなかったので…

ディレクトリとパッケージを合わせることが自然なことは本にかかれてるかもしれませんが
他に方法がないというのはそう自明なことではないと思います
0248デフォルトの名無しさん
垢版 |
2018/06/09(土) 23:36:10.70ID:K+9PZeFb
調べ方をしらねーだけなんだからカリカリすんなよ
本を読むだけでできるようになるんなら職業プログラマなんかいらねーんだよ
0249デフォルトの名無しさん
垢版 |
2018/06/09(土) 23:52:15.00ID:MhKfyDgC
>>247
俺はJavaは知らないのだけど、一般的な方法を。

> 課題用に配られたソースだったので自分で描いたコードと分けておいた方がいいのかなと思ったんですが
> そのせいでまる1日どはまりしてしまった

これは割とよくあるパターンで、

・環境の立ち上げは、基本的に 『かなり詳しくないと』 はまる
・環境ではまったら、初心者だけで復旧は不可能

だから、自分が初心者だと分かっているうちは、出来るだけ環境問題に遭遇しないようにするのが基本。
つまり、

・与えられたソースをその場で改変する
・元ソースと比較したい場合、元ソースを ***.org とかいう風にしてコピーしておく
 (元環境と同じファイル名/ディレクトリ構造でコンパイル出来る状態で編集する
 =元ソースはファイル名そのままで編集する。あくまでコピーを別名で持つ)
・インストール時にデフォのパスがあるのなら、つべこべ考えずそのままそこにインストールする

てな感じ。
俺は本を読む前に味見するのも良いことだと思うぜ。
そして上記の通り、地雷を避ける方法も知っておけばいいだけだ。
0250デフォルトの名無しさん
垢版 |
2018/06/10(日) 01:00:23.21ID:ucpSsdvT
>>247
技術習得中はどれが問題解決に必要な情報なのかわからないんだからあまり気にしなくていい
むしろ問題解決に必要な情報が出せれてるから問題ない
最近はそれがなかなかできないやつが多いからなぁ

んで、お金がないから本を変えないつーことならちょい難易度高いが教科書+公式ドキュメント+サンプルっぽいソース探すのがおすすめ
0251デフォルトの名無しさん
垢版 |
2018/06/10(日) 04:48:20.36ID:n5chgHA2
Java の定本は、
スッキリわかる Java入門 第2版、2014

基本はエラーメッセージで検索して、自分で調べること。
それでもわからないなら、ここで聞く
0255デフォルトの名無しさん
垢版 |
2018/06/10(日) 12:46:21.18ID:Jwj29J+R
インスタンスの配列定義について教えてください

@とAはどう違うのでしょか?

(1行目のカッコの位置です)

@カッコが左のAnimalにある
Animal[] vc = new Animal[2];
vc[0] = new Animal();
vc[0].name = "neko";
vc[0].age = 5;
・・・・

Aカッコが左の変数にある
Animal vc[] = new Animal[2];
vc[0] = new Animal();
vc[0].name = "neko";
vc[0].age = 5;
・・・・

上記2つでコンパイルエラーになりません。
違いはなんですか?
0256デフォルトの名無しさん
垢版 |
2018/06/10(日) 13:08:57.02ID:5WgF/CDS
>>255
同じ
AはC言語に慣れた人のための書き方で、意味的には完全に間違っている
使った瞬間バカ認定されるから絶対に使ってはいけない
今すぐ忘れていい
0257デフォルトの名無しさん
垢版 |
2018/06/10(日) 13:19:30.60ID:Jwj29J+R
>>256
教授が使っていたので、びっくりしました。
ありがとうございました。
0258デフォルトの名無しさん
垢版 |
2018/06/11(月) 02:02:24.99ID:jMVvjS0U
>>256
意味的に完全に間違ってる?
文法上許されてるし何の問題もないと思うが?
0261デフォルトの名無しさん
垢版 |
2018/06/11(月) 02:54:29.89ID:MB0XDzKq
>>259
ああ。文法上は問題なかろう。慣習には反するかも知れないが間違いではない。
0262デフォルトの名無しさん
垢版 |
2018/06/11(月) 08:24:25.82ID:2EYG9KU5
>>258
Animal配列型の変数vcだから
Animal型の配列変数vcという書き方は良くないという話だよ

そもそも配列変数なんてものは存在しないからね
シンタックスシュガーでC風の書き方ができるだけ
この構文を積極的に使う理由なんてないよ
0263デフォルトの名無しさん
垢版 |
2018/06/11(月) 09:20:40.77ID:318FxA/J
>>262
良し悪しは君の宗教の問題だよね。
0266デフォルトの名無しさん
垢版 |
2018/06/11(月) 13:12:24.89ID:NAfddAYi
だから?
0267デフォルトの名無しさん
垢版 |
2018/06/12(火) 06:53:24.64ID:aW1GuOgP
Javaでチャートを表示したくて
javafx.scene.chart.LineChart ってのをはじめて使ったんですけど
これアニメーションで使うにはどうすればいいんでしょうか

Scene scene = new Scene(lineChart,800,600);
stage.setScene(scene);
stage.show();

でグラフが表示されるんですが
そのあとで

try { Thread.sleep(2000); } catch(Exception e) {}
//データ更新
stage.show();

をやったところスリープ中に何も表示されず最後のデータだけが表示されます

あるいはJavaFXではなくawtパネルや
単にImageを生成するようなライブラリがあったら教えていただけると助かります
0268デフォルトの名無しさん
垢版 |
2018/06/12(火) 23:10:11.67ID:Ci7qqtSg
>>267
意味がわからん。

なんでこれでアニメーションされると思ったのかと何がしたいのか具体的に説明してくれ。
> try { Thread.sleep(2000); } catch(Exception e) {}
> //データ更新
> stage.show();
0269デフォルトの名無しさん
垢版 |
2018/06/12(火) 23:49:25.09ID:v+Py2umn
>>268
気持ちはわかるだろ
なんでできないのかもったいぶらず教えてやれよ
0270デフォルトの名無しさん
垢版 |
2018/06/13(水) 01:20:05.91ID:kTav0878
>>268
マイク入力をよんでスペクトルをリアルタイムで表示するようなのを作りたくて

while() {
 // 音声ラインから一定サイズよみこみ
// フーリエ変換
 // グラフ表示更新
}

みたいなプログラムをかいたんですがグラフがまったく変化しなくて
原因を追究して >>267 みたいなプログラム内でブロックするような処理があっても
それが終わるまでグラフが一切表示されないのが原因みたいです

スレッドをわけてみたりもしたんですけどよくわからないエラーが出たりでうまくいかなくて
JavaFXで検索もしてみたんですが表示して終わりばかりで表示更新を扱ってるブログも少なくて困ってました
0271デフォルトの名無しさん
垢版 |
2018/06/13(水) 07:01:52.40ID:VFl3aAKI
java8でメモリリークを強制的に発生させる良い方法ってありますか?
Webシステムでリークが発生している場合のヒープサイズの変化を
明示的に出したいです。
0273デフォルトの名無しさん
垢版 |
2018/06/13(水) 15:36:01.51ID:GZrsiOY9
リークっていうか、とにかくメモリ使ってどこかから参照されっぱなしになればいいだけだよな。
0274デフォルトの名無しさん
垢版 |
2018/06/13(水) 18:36:45.27ID:2UGtKAD3
数スレ前にもJavaFXで画面更新したいって質問あったけどまともなレスついてなかったし
誰も使ってないんだろうなー

自分もサーバーサイドばっかりでGUIとか数年かいてないわ
0275デフォルトの名無しさん
垢版 |
2018/06/13(水) 18:54:23.13ID:WGknwRIf
もうJavaFXはJavaの一部ではなく単なる野良ソフトウェアの一つだしな
初心者なら今からクライアントJavaに手を出すなんて時間の無駄だからやめた方がいい
煽りでも何でもなく、公式に完全に終わってる
0277デフォルトの名無しさん
垢版 |
2018/06/13(水) 21:33:45.35ID:e5+CMljH
だな
0279デフォルトの名無しさん
垢版 |
2018/06/14(木) 00:42:43.69ID:/66BxFoU
Kotolin
0281デフォルトの名無しさん
垢版 |
2018/06/14(木) 01:55:14.23ID:+qJR6f8p
>>270
わかった。
> try { Thread.sleep(2000); } catch(Exception e) {}
> //データ更新
> stage.show();
とは全然関係ないのな。

自分で言ってる以下のループの中身を...
>while() {
> // 音声ラインから一定サイズよみこみ
>// フーリエ変換
> // グラフ表示更新
>}
javafx.animationでやればいい。
これでも読んどけ。
ttps://docs.oracle.com/javase/jp/8/javafx/visual-effects-tutorial/animations.htm#JFXTE149
ttps://docs.oracle.com/javase/jp/8/javafx/user-interface-tutorial/bar-chart.htm

>>271
ファントム参照の中身をルートから辿れるところに
参照させればリークできるけど本当に開放する手段ないぞ。
0282デフォルトの名無しさん
垢版 |
2018/06/14(木) 08:25:26.24ID:34zOJI5o
親言語か?
0284デフォルトの名無しさん
垢版 |
2018/06/14(木) 09:41:16.14ID:PKegBamu
シン言語
0287デフォルトの名無しさん
垢版 |
2018/06/14(木) 16:58:58.79ID:Gr9d0Yf1
>>281
リプありがとうございます

このtimelineの使い方がよくわからないんですけど
ブロックは音声読み込み側でやっちゃうので
timelineでディレイをかけるとリアルタイム性が確保できなくないですか?

timelineの中で音声読み込みをすればできなくはなさそうですけど
大幅にプログラムを書き換えないといけないし
処理と表示の分離もしにくくなると思うんですがそれしか方法はないんでしょうか

音声読み込みするスレッドから何かメソッドをよんで即時表示更新ってのはできないものなんでしょうか

while() {
 // 音声ラインから一定サイズよみこみ
// フーリエ変換
 // なにかメソッドをよべばグラフ表示更新
}
0288デフォルトの名無しさん
垢版 |
2018/06/14(木) 17:26:03.40ID:WQ1Bw7bI
>>287
Platform.runLater
でアプリケーションスレッドで処理を実行できるみたいっすよ
0289デフォルトの名無しさん
垢版 |
2018/06/14(木) 19:46:03.94ID:Gr9d0Yf1
>>288
わわわ 神様だー!
ありがとうございました!
ようやくやりたいことができましたー!
もうあきらめかけてたんですけど質問してよかったです
0290デフォルトの名無しさん
垢版 |
2018/06/14(木) 20:18:06.09ID:Gr9d0Yf1
何度もすいません

void f(int[] a) {
for(i : a) {
double d = (double)i
同じ処理
}
}

void f(double[] a) {
for(d : a) {
同じ処理
}
}

みたいにintとdouble配列を受け取って同じ処理するだけの関数が必要なんですが
まとめて記述することってできないでしょうか
そこそこ速度が要求されるので最初にキャストした配列を作って渡すのも若干無駄だし

関数型言語風にかくなら

void f_core(<T>[] d, Function<<T>, double> cast) {
for(x : a) {
double d = cast.apply(x);
同じ処理
}
}

void f(int[] a) { f_core(a, x => (double)x); }
void f(double[] a) { f_core(a, x => x); }

みたいにかければいいんですけどJavaで任意型のメソッドって作ったりうけわたしたりってできますか?
0291デフォルトの名無しさん
垢版 |
2018/06/14(木) 20:47:40.32ID:RvC/sBQ5
>>290
Number[] で受け取って doubleValue() で取り出す。
その代わりプリミティブ型の配列は渡せないが。
0292デフォルトの名無しさん
垢版 |
2018/06/14(木) 20:48:57.71ID:KBTpBKAk
>>290
普通にその関数型風のコードのようにジェネリクスとラムダを使えばできるけど、
Javaのファッキンなんちゃってジェネリクスだと必ずボックス化が入るからクッソ遅くなるよ
NumberやObjectを使っても同様
諦めて別々のメソッドにして「同じ処理」の部分だけをメソッドに括り出して共通化しなさい
0294デフォルトの名無しさん
垢版 |
2018/06/15(金) 04:17:05.36ID:DGyfb6tU
だめだー

せっかく教えてもらったのに0.1秒で4000個のデータ描画表示すら間に合わない
AWTでdrawLineとか使って直書きなら8000ぐらいでも間に合うのに

JavaFX のチャートの設定で何か軽くなる設定とかってあったりしますか?
せっかく苦労したのにAWTに戻すことになりそう
0296デフォルトの名無しさん
垢版 |
2018/06/15(金) 07:30:56.95ID:K3OjyI6B
>>295
え?
0297デフォルトの名無しさん
垢版 |
2018/06/15(金) 08:34:10.18ID:DHgdPMs1
>>294
JavaFXの唯一の正しい使い方は、全面にWebViewを貼り付けてHTMLで全てを作ること。
誰も使ってないJavaFXなんかより遥かに速くて快適なUXを実現できる。D3.jsとか使えばチャートも簡単爆速美麗。
馬鹿馬鹿しいと思うならSpring Bootにでも乗り換えてJavaらしく普通にWebアプリにしよう。
0298デフォルトの名無しさん
垢版 |
2018/06/15(金) 10:34:32.18ID:uIGrLsPa
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://www.sketchapp.com/
ttp://photoshopvip.net/103903
ttps://goodpatch.com/blog/sketch-plugins/

Trello Chrome拡張機能プラグイン集
https://chrome.google.com/webstore/search/trello?_category=extensions

Slackプラグイン集
https://slack.com/apps

Sketchプラグイン集
https://sketchapp.com/extensions/plugins/
https://supernova.studio/
0299デフォルトの名無しさん
垢版 |
2018/06/15(金) 16:20:39.46ID:DGyfb6tU
>>295
ぜんぜん仕事とかじゃなく
いまvtuberはやってるじゃないですか
でも地声でやるの恥ずかしいからボイスチェンジャーつくりたいなーって完全に趣味です

>>297
学生あがりでJavaとCしかかけないです
ウェブアプリってサーバーがHPの表示する内容かえるみたいなかんじですよね
そもそもサーバーがない

まあ普通にAWTでGraphics.drawLineでCanvasに描画すれば間に合ったので
JavaFXのチャートあるならスケーリングやメモリの描画までやってくれて
見た目もきれいかなと思った程度なのでJavaFXのことは忘れます
0300デフォルトの名無しさん
垢版 |
2018/06/15(金) 17:03:56.08ID:oVnAseDc
たまには思い出してあげてください
0301デフォルトの名無しさん
垢版 |
2018/06/15(金) 21:58:12.68ID:ymZBnmIf
皆、無料のRails チュートリアルをやってる。
サーバーなんて、Ruby のSinatra でも良いし

Rubyでも、Node.js, jQuery, Vue.js など、JavaScript(JS) は必須。
D3.js を使っても良いんじゃない?

VSCode だって、Electron だし、
Python のJupyter Notebook(IPython Notebook) だって、JSだろ

ほぼすべての言語で、画面には、JSを使う
0302デフォルトの名無しさん
垢版 |
2018/06/15(金) 22:06:24.60ID:HtPJG7wE
>>301
Rubyはオワコン
10年遅い

今のトレンドはJava
0305デフォルトの名無しさん
垢版 |
2018/06/20(水) 19:47:48.12ID:g4/OGHNt
>>304
多分JavaとRUBYと
あべこべに書いてしもたんやろな
0307デフォルトの名無しさん
垢版 |
2018/06/20(水) 20:52:23.72ID:3OmsLPWp
Nettyの質問なんだけど
https://netty.io/wiki/user-guide-for-4.x.html
俺の理解だと、サーバーは受信時にInbound、送信時にOutbound。
ところがこのサンプルのtimeserverhandlerはInboundHandlerでレスポンスをしているように見える。
そもそもサーバーのOutboundHandlerはどんな時に呼び出されるんだろうか?
クライアントはまずOutboundが呼ばれてレスポンスがあった場合のみInboundが呼ばれるのだろうと思う。
サーバーのOutboundは何をトリガーにするのか?レスポンスしない場合もあるだろう。
サーバーのOutboundHandlerのサンプルが見つからない。

このあたり分からないので誰か教えてください。
0310デフォルトの名無しさん
垢版 |
2018/06/20(水) 21:44:01.80ID:eL2b037p
>>307
サーバは受信イベントに反応して応答を返すものなのだから、InboundHanderを継承して応答を返すように実装するのは自然と思うよ。

〜handlerとか〜listenerとあったら、〜イベントに対する処理をするものと言う意味。

あと、OutboundHandlerの例は下に書いてある。
サーバレスポンス(outbound)を横取りして書き換えたい場合に使えるようだ。
0313デフォルトの名無しさん
垢版 |
2018/06/21(木) 19:02:53.39ID:LmBngzCG
https://docs.oracle.com/javase/jp/9/docs/api/com/sun/net/httpserver/HttpExchange.html
簡易メソッドclose()はこれらのタスクをすべて実行します。
要求本体のすべてを使用せずに交換を閉じてもエラーではありませんが、
基本となるTCP接続を次の交換用に利用できなくなる場合があります。
交換の終了に失敗した場合の結果は定義されていませんが、
通常はリソースの解放や再利用に失敗します。

これどういうこと?例えば特定のアクセス元じゃなければclose()するということをやると、
メモリリークのようなことになっていくということ?リソースの解放や再利用に失敗するとは?
HttpServerにおいて特定条件を満たしていない場合に拒絶する書き方が知りたい。
0314デフォルトの名無しさん
垢版 |
2018/06/21(木) 19:45:52.69ID:+kp8giCs
http要求ー応答の処理中に処理完了する前にcloseしたことを説明してるんじゃない?
想定外のcloseした場合、メモリ状態は分からないから正常に開放できるか不明、ゴミデータ残って一度利用したインスタンスで再通信できるか不明ってことじゃ?
0315デフォルトの名無しさん
垢版 |
2018/06/22(金) 02:08:36.03ID:6X1MAqKl
https://docs.oracle.com/javase/7/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/HttpExchange.html
英語版をgoogle翻訳してみたりstackoverflowで調べたところ、
getRequestBody()でえられるinputStreamは使えば自動的にcloseされる。
getResponseBody()でえられるOutputStreamは使った後手動でcloseする。
エラー等で処理を終える場合、HttpExchangeを必ずcloseする。
そして、どうやらgetRequestBody()を必ず使わなければならない?ようだ。
しかしそのような内部的な問題は基本的に気にする必要が無く、
HttpExchange#close()はそのgetRequestBody()の消費処理すらもやってくれる、と書いてあるように読める。
結局HttpExchange#close()を必ずどこかで呼べということな気がする。
0316デフォルトの名無しさん
垢版 |
2018/06/22(金) 11:57:36.33ID:hcBKEl3e
正誤判定プログラム作っているけど上手く表示できない
正解入力すると正解ですって表示されますが、間違い入力しても
不正解ですとは表示されず、例外のア、イ、ウ、エで入力してくださいって表示になる。
分からないので教えていただけないでしょうか?

do{
String answer = br.readLine();
if (qs.correctAnswer.equals(answer)){
System.out.println("正解です。");
break;
}
else if((answer == qs.wrongAnswer1) || (answer == qs.wrongAnswer2) || (answer == qs.wrongAnswer3)){
System.out.println("不正解です。");
}
else{
System.out.println("ア、イ、ウ、エで入力してください。");
}
0318デフォルトの名無しさん
垢版 |
2018/06/22(金) 12:35:39.34ID:hcBKEl3e
>>317
助言ありがとうございます!
解決できました!
0319デフォルトの名無しさん
垢版 |
2018/06/22(金) 15:31:22.98ID:3EtLvxAt
switch使おうよ。
0320デフォルトの名無しさん
垢版 |
2018/06/22(金) 15:40:49.23ID:fTGbKFWm
Java7から使えるようになったんだっけ?
0323デフォルトの名無しさん
垢版 |
2018/06/23(土) 20:24:44.15ID:lx4N25iu
Javaの入力値チェックの方法についてご相談です。

ユーザーから手入力された値をインスタンス変数に代入後、チェックする処理を記述しようと思っているのですが、方法として以下の3つを考えています。
※setter のアクセスレベルはprivateにしています。

@ 検査対象のインスタンス内でチェック用のメソッドとsetter をそれぞれ定義する

A 検査対象のsetter 内に、チェック処理のロジックを記述する(チェック処理の内包)

B チェック処理をする責務を持つクラス(インスタンス)を別で作成し、検査対象を引数として与える

3つの方法に対してのご意見、ご指摘を頂きたいです。
そもそも、setter に値をセットする以外の処理を含めて良いものか悩んでおります。
可能であれば、setter の件についてもご意見頂ければと思います。

長文となってしまいましたが、皆様よろしくお願いします。
0324デフォルトの名無しさん
垢版 |
2018/06/23(土) 22:44:16.49ID:5c71PR8X
java bronzeを受けようと思い黒本過去問10周くらいして
理解できたと思いますが、似た問題が多いでしょうか・・
合格した方はどれくらい勉強したか教えてください。
0325 ◆BrBq2CJg6HGd
垢版 |
2018/06/23(土) 22:52:16.17ID:H68Z4zsJ
>>324
それなら多分大丈夫だと思います
俺は翔泳社の問題集を3回ぐらい解いて受かりました
0326デフォルトの名無しさん
垢版 |
2018/06/24(日) 11:46:06.34ID:MQB4VaSY
>>323
ユーザの入力値受け取るクラスならprivateじゃなくてpublicなsetter作るような気がするんだけど
ちょっと状況が分からない
どういうクラスかもう少し書ける?

setterに処理を含めること自体は問題ない
0327デフォルトの名無しさん
垢版 |
2018/06/24(日) 12:47:58.04ID:I6qT+7Vz
>>323
時と場合により全部使う
プレゼンテーション層での検証は主に@とB
ドメイン層での検証は主にA(setterは基本的に非公開だが)
0328デフォルトの名無しさん
垢版 |
2018/06/24(日) 14:33:44.94ID:pKame5cc
setterにロジック含めていいかどうかで悩むとかアホか
ロジック含める可能性がないならsetter通さずにフィールドにそのまま大入すればいいだろアホ
0330デフォルトの名無しさん
垢版 |
2018/06/24(日) 18:01:03.69ID:5i39kBRv
IPっつったら、IDEAPOCKETが真っ先に思い付くわ・・
0331デフォルトの名無しさん
垢版 |
2018/06/25(月) 09:12:54.69ID://DXoKuS
大入袋
0332デフォルトの名無しさん
垢版 |
2018/06/25(月) 20:05:59.87ID:6QnNrYn1
すみません、いくつか質問させてください。

<クラスパス(ビルドパス)について>
・eclipseの「ビルドパスに追加」したフォルダが複数登録されており、
・それらの中に全く同じパッケージに有る同じクラス名が合った場合、
 どのような優先順位で1つのクラスが選ばれるのでしょうか。
・また全く同じパッケージ・クラス名で、 .jarのライブラリがインポート
 されていて、それとは別にフォルダ構造のパッケージの中に、
 バラの.classファイルが配置されていた場合、これらの優先順位
 はあるのでしょうか。
・コンソールでjavaを実行するのではなくTomcatがjavaを
 実行する場合、どのディレクトリからjavaを実行しているのでしょうか?
・.jspファイルは「ビルドパスに追加」をフォルダに置く必要が
 あるのでしょうか。それとも「ソースフォルダの追加」に登録
 フォルダの配下にあるべきなのでしょうか。
・gitなどでバージョン管理をする際に、.classファイルや .jarなどの
 バイナリファイルを複数人で別々のバイナリを生成して
  コンフリクトした場合、マージされるのでしょうか。
DBに保存されたバイナリデータもマージされるのでしょうか。
・eclipseで設定したブレークポイントでソースが停止した場合、
 その実際の.classファイルあるいは.jarファイルはどこにあるのか
 特定できるでしょうか。
 
0334初心者
垢版 |
2018/06/25(月) 20:16:03.04ID:6QnNrYn1
<eclipseの「ソースフォルダの追加」について>
・「ソースフォルダに追加」したフォルダの配下にある.javaコードは
  eclipseのブレークポイントで止まってくれますが、
  これは「ソースフォルダに追加したソースから生成された.class
あるいは.jar」が実行されていなければソースは特定できないので
  しょうか。
・「ソースフォルダに追加」した時点でそのソース群から生成された
  .classファイルがもしビルドパスに登録されているフォルダ配下
  に生成されるようになっていなければ、自動的にビルドパスに
  追加されるのでしょうか?
・それとも単純に同名のパッケージ名、クラス名が実行された場合、
 ソースフォルダに登録したフォルダから検索して、名前の一致だけで
 特定しているのでしょうか。
・もし名前の一致だけで特定している場合、同じ名前の別のソースから
  生成された.classファイルに中身が書き換わってしまい、
  ソースフォルダに追加している.javaと.classの中身が全く
  対応しなくなっている状態になると、デバッグは失敗するのでしょうか。
・「ソースフォルダに追加」で複数のフォルダを追加して、
 別々の場所に同じパッケージ名、クラス名の.javaファイルが複数あった
 場合、デバッグ時に呼び出されるのはどの.javaファイルになるのでしょうか。
0336デフォルトの名無しさん
垢版 |
2018/06/25(月) 21:38:05.82ID:mHx9ED9l
>>332
ビルドパスの優先順はビルドパスのダイアログにOrder and Exportというタブで指定したとおりだよ
クラスパスは先に指定したものから順番に検索される、先に見つかったものが使われる
0337デフォルトの名無しさん
垢版 |
2018/06/25(月) 22:00:32.20ID:XS6tlG59
githubでC#で書かれたソースコードを見るとVisual Studioで作成したファイルが見当たらないんですが、
Visual Studioを使わないほうがいいんでしょうか?
0338デフォルトの名無しさん
垢版 |
2018/06/25(月) 22:00:51.60ID:XS6tlG59
すれ間違えました
0339デフォルトの名無しさん
垢版 |
2018/06/25(月) 23:33:17.67ID:lTrbOz9W
>全く同じパッケージに、同じクラス名がある
パッケージはフォルダ、クラスはファイル名に相当するから、
同一フォルダ内に、同一のファイル名は、絶対に存在できない

>コンソールでjavaを実行するのではなくTomcatがjavaを実行する場合、
>どのディレクトリからjavaを実行しているのでしょうか?
pwd のような、Linux コマンドを実行すれば、カレントディレクトリを表示するはず。
それか、そういう環境変数を探す

これら以外の質問は、実際に起こった場合の、エラーメッセージで検索して
0340デフォルトの名無しさん
垢版 |
2018/06/26(火) 09:24:15.65ID:4BKP4Htb
そういや試したことないが、2つの別々のjarファイルの中のディレクトリとクラスファイルが同じだったらクラスローダーがエラー出すんだろうか?

あ、コピーしてやってみればいいだけだな。時間があったらやってみよう。
0341デフォルトの名無しさん
垢版 |
2018/06/26(火) 10:03:27.13ID:HJBlnKJN
>>339
それはクラスパスが1つだけと仮定したときの話でしょ?
複数のクラスパスに中身が違う同じパッケージ空間のクラスが存在できるじゃん。

eclipseの「Javaリソース」「参照ライブラリー」「ライブラリー」
「JREシステム・ライブラリー」「Web Appライブラリー」
って何が違うのか気になるわ。
あとそれぞれのアイコン
・田んぼの「田」みたいなアイコン(茶色/白)
→パッケージだけど色の違いは・・・?
  茶色い田はフォルダで中に.classファイルが入っている。
  白い田はファイル?なのかよくわからない。
  フォルダ名の名前空間を表している?
・フォルダ内に「田」が入っているアイコン
・本が積み上げられているようなアイコン
→これは「ライブラリー」か
  フォルダの中に「本」が入っているようなアイコンもあるがこれは何?
・ビンのアイコン
 →これは.jarだけど.jarってライブラリーのことじゃないのか?
  .jarと本のアイコンの違いは何だ?
・「.classファイル」のアイコンも2種類ある。
 →1つは「J 01」というファイルのような形のアイコン
  もう一つはツリーのような形をした黄色、ピンク、青のアイコン。
  これらの違いは何?

イメージとして.classファイルを集約するフォルダがパッケージ(田)
で、パッケージを集約するのが「.jar」で、
.jarを集約するのが「本のアイコン」でいいの?
本のアイコンとフォルダ内に田があるアイコンの違いもよくわからない。

ファイルシステム上ではどれも単なる「フォルダ」似すぎないものの
分類が多すぎて混乱するわ。
■ このスレッドは過去ログ倉庫に格納されています

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