[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/31 23:02 / Filesize : 250 KB / Number-of Response : 1015
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

☆★Java質問・相談スレッド178★★



1 名前:デフォルトの名無しさん [2016/06/17(金) 08:16:55.52 ID:442rGUo0.net]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング 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質問・相談スレッド177★★©2ch.net
echo.2ch.net/test/read.cgi/tech/1458033246/

384 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 22:53:24.94 ID:8F+chxLR.net]
Java1.5のloggingでpropertiesファイル読み込ませた後に、ファイルの出力先だけ変えたいんだけど、出来ます?
ググっても、後から変える方法が見付からなくて・・

385 名前:デフォルトの名無しさん [2016/08/04(木) 23:18:10.54 ID:KxCOPaH9.net]
教えてほしいのですが
java8でOOMが発生したのでヒープダンプを解析したところメインスレッドから参照されているインスタンスが多数ありました
メインスレッドから直接参照されてGCで解消されないインスタンスはどのように生成された場合に発生しますか?

386 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 23:30:39.80 ID:1Q45SAfi.net]
スタック(生存中のローカル変数)から参照されてるんだろ

387 名前:デフォルトの名無しさん [2016/08/05(金) 00:52:56.77 ID:6LlEijpk.net]
専門学校に行って習うのってメリットある?

388 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 03:16:33.02 ID:9k3C6R28.net]
お前じゃどこいっても無理だ
板名すらよめないんだもん

389 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 06:49:38.70 ID:x8TUq60L.net]
>>381
Javaの環境変数に、そういう項目は無いの?

入門から実践までJavaで学べる「ログ」の常識
www.atmarkit.co.jp/ait/articles/0801/08/news128_3.html

390 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 07:52:48.65 ID:YTOm0VxE.net]
>>384
独学でダメだったら諦めた方がいい
その程度の奴はIT行っても奴隷のような勤務形態で延々単純作業をやらされた挙句に身体か精神壊して捨てられるだけだ

391 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 08:13:33.12 ID:m10n1TDx.net]
確固たる目的があってそれに対して有効であれば行っていいんじゃない?
学びたいからとか言う謎の理由は無意味

392 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 08:51:26.42 ID:ij72IWqm.net]
Java勉強するだけならメリットはない



393 名前:デフォルトの名無しさん [2016/08/05(金) 08:59:54.49 ID:2ygfJ/wh.net]
JavaのWebアプリケーションの生産性は低いからなあ。

394 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 09:12:54.48 ID:YTOm0VxE.net]
SIベンダーから見た生産性は非常に高いよ
Railsなんかで作るより数倍の工数取れて、
品質品質保守性保守性言ってれば客は納得するんだからこんなに美味い商売はない

395 名前:デフォルトの名無しさん [2016/08/05(金) 09:51:05.51 ID:2ygfJ/wh.net]
>>391
生産性じゃなくてぼったくりだろw

396 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 12:43:53.38 ID:7M4UoUhy.net]
利益の生産

397 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 13:14:22.96 ID:9cFHC08F.net]
>>392
納得してるのならぼったくりではない

398 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 01:25:18.48 ID:FfBiCVo4.net]
csvファイルを読みこみ、PreparedStatementを使ってDBにどんどん
insertしていってるんですが、流すたびにinsertできている件数が
違います。
全5000件のうち、1度目は300件だったり、2回目は1000件だったり、あるいは
逆だったり、、、
とにかく流すたびにinsertできる件数が違っていて規則性がないんですが、
何が原因なんでしょうか。
プログラム誤りであれば、毎回同じ件数になると思うのですが、、、

399 名前:デフォルトの名無しさん [2016/08/06(土) 01:35:44.75 ID:NlPhIpsR.net]
>>395
5000件処理して300件しかデータがないってどんぶり勘定にも程があるな
むかしむかしMySQLのドライバのバグで単純な挿入さえまともにできなかったことがある
ドライバのバグとか、コミットがちゃんとできてないとか
DBは何使ってるの?コードはどんな感じ?

400 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 02:10:07.11 ID:FfBiCVo4.net]
>>396
まさかこんな時間に返信もらえるとは思ってませんでした。
Statementで更新していた時は全件INSERTできたんですが、PreparedStatementに
変更したら、>>395の状態となってしまいました。DBはACCESSです。
コードはこんな感じです。

401 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 02:13:17.61 ID:FfBiCVo4.net]
private void insert_task(String table, BufferedReader br) {
Connection con = null;
PreparedStatement pstmt_ins = null;
PreparedStatement pstmt_del = null;
PreparedStatement pstmt_upd = null;
try {
//JDBCドライバのロード
//各設定
String url = "jdbc:odbc:kinmu";
String user = "";
String pass = "";
//データベースに接続
con = DriverManager.getConnection(url, user, pass);
String line = ""; //一行ずつ読み込む
int line_count = 1; //ヘッダーフラグ
boolean delete_flg = true; //ヘッダーフラグ
String sql_ins = "INSERT into KINMU values(?,?,?,?,?)";
pstmt_ins = con.prepareStatement(sql_ins);
while ((line = br.readLine()) != null) {
String[] strAry = line.split(",", 11);
pstmt_ins.setString(1, strAry[0]);
pstmt_ins.setString(2, strAry[1]);
pstmt_ins.setString(3, strAry[2]);
pstmt_ins.setString(4, strAry[3]);
pstmt_ins.setString(5, strAry[4]);
pstmt_ins.executeUpdate();
}
} catch (IOException exception) {

402 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 02:15:37.25 ID:FfBiCVo4.net]
PreparedStatement pstmt_upd = null;
PreparedStatement pstmt_del = null;
について、実際はpstmt_upd、pstmt_delを用いて
try{}の中でdelete,update処理を行っていますが、
正常に処理できているのでコードを割愛させていただきました。



403 名前:デフォルトの名無しさん [2016/08/06(土) 05:52:46.32 ID:e+VUV2JF.net]
>>399
どのデータが登録されて、どのデータが登録されないのか調べて傾向を見た方がいいよ。

404 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 06:21:01.04 ID:dbq4lnef.net]
どういうテーブルか知らんけど1番目はIDかつプライマリキーにしていることが多いから
setIntやsetLongを使うんじゃなかろうか

405 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 06:31:44.35 ID:mW190j2d.net]
勤怠なら第一要素を日付としてpkにしてる可能性もある

とは言え全く同じcsvを元にしてて毎回結果が異なるのはよくわからんなぁ

406 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 08:11:45.63 ID:FfBiCVo4.net]
朝早くからこんなにお返事ありがとうございます。

>>400
Insertがされているデータは、すべての列が正確に登録されています。

>>401、400
諸事情があり、プライマリーキーは設定しておりません。
また、全4列において、すべてテキストタイプです。

朝、PCを立ち上げ直し、2回ほど処理を回してみましたが、
1回目は538件で、2回目は990件でした。

規則性がかけらもない_| ̄|○

407 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 08:27:11.97 ID:y/TrjN6T.net]
>>403
> Insertがされているデータは、すべての列が正確に登録されています。
そう言う話じゃなくて Insert できてる奴とできてない奴でデータの違いはないのか?
って話だろ

> 1回目は538件で、2回目は990件でした。
ソースは同じ CSV なの?

そもそもデータベース側のエラーログとかはないのか?

408 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 08:57:34.01 ID:kzQiWQLN.net]
>>403
件数ってどうやって確認してるの?
insertはうまくいってて、select側に問題があるんじゃないの?

409 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 09:03:06.59 ID:kzQiWQLN.net]
>>399
deleteの部分もコード貼れるかな。
そこがおかしいんじゃない

410 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 09:33:59.56 ID:FfBiCVo4.net]
>>397です。
お返事ありがとうございます。
なんかPCを再起動してやってみたら、コードは一つも直していないのに、全件入るようになりました_| ̄|○
しかも何回やっても全部入るみたいです。

>>404
確認したのですが1回目と2回目の差分は何の変哲もないデータで、Insertされているデータと比べ変なところはありませんでした。
また、1回目2回目共に同じデータです。
データベース側のログ、確認してみます!

>>405
件数はACCESSにて全体件数が自動表示されますので、それで確認しています。
スクロールしても、やはりその件数までしかレコードが表示されていないことも確認しています。

>>406
deleteとupdateはこんな感じです。
String sql_del = "delete from KINMU where プロジェクトcd = ?";
pstmt_del = con.prepareStatement(sql_del);

String sql_upd = "UPDATE LASTUPDATE SET 最終更新日時 = ? where プロジェクトcd = ?";
pstmt_upd = con.prepareStatement(sql_upd);

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
String last_update = sdf.format(date);
pstmt_del.setString(1, strAry[0]);
pstmt_del.executeUpdate();
pstmt_upd.setString(1, last_update);
pstmt_upd.setString(2, strAry[0]);
pstmt_upd.executeUpdate();

411 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 09:54:39.20 ID:kzQiWQLN.net]
>>407
どういうアプリかわからないけど、常駐非対話アプリなら、別のプロセスにdeleteされてるんじゃない。
再起動してうまくいったのは、別のプロセスが終了したから。
そもそも、現状オートコミットのままだから、アプリの種類によっては、オートコミットやめた方がいいよ。

412 名前:デフォルトの名無しさん mailto:sage [2016/08/07(日) 01:35:06.14 ID:iJHIeyzf.net]
消費税引き上げ先送りも決まり,日銀とECBがしっかり資金供給を拡大してくるのでFRBの利上げは多分成功する
基調はリスクオンの株式暴騰、金暴落だね

今度の黒田砲は緩慢に効いてくる
海馬がくる,海馬がくる



413 名前:デフォルトの名無しさん [2016/08/07(日) 18:49:39.23 ID:412P3kmz.net]
誤爆か・・・

414 名前:デフォルトの名無しさん mailto:sage [2016/08/07(日) 19:21:07.99 ID:L/2xgmOS.net]
>>397です。
サーバーログを確認したところ
「[Microsoft][ODBC Driver Manager] 文字列またはバッファーの長さが無効です。」
といったエラーが出力されていました。
で、このエラーを確認したところ、ACCESSとSqlserverをDBに設定した時で、
且つx64版のJavaでVMjdbc:odbc接続を行うと発生するエラーとのことです。
ほかの方も不特定の箇所で発生しているみたいです。

ただ私の環境ではPreparedStatementの時だけこの現象が発生し
Statementの環境では正常に動作するところが謎です、、、

以上、報告でした。
返信くださった皆様、ありがとうございました。

415 名前:デフォルトの名無しさん mailto:sage [2016/08/07(日) 19:28:49.45 ID:iJHIeyzf.net]
>>410
すまん

416 名前:デフォルトの名無しさん [2016/08/07(日) 20:54:02.06 ID:/wJe7S0/.net]
>>347
ここがよくまとまってたよ
https://www.jpcert.or.jp/java-rules/fio07-j.html

417 名前:デフォルトの名無しさん mailto:sage [2016/08/08(月) 23:54:22.48 ID:50XAspjz.net]
引数でenumを受けてswitchで分岐して戻り値を返すメソッドを作っているんだけど
defaultで何か値を返さないとコンパイルエラーなんだけどこういうものですか?

enumが取り得る値は全部caseに書いてるからdefaultに分岐することは無いと思うのだけど

418 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 00:14:20.76 ID:QLW4GyaM.net]
>>414
switch文の中でreturnしてるのでは?
その場合はdefaultで何かしらreternするかswitchの外でreternしないと全てのパスで値を返さないと判断されてビルドエラー
個人的にはswitch内では返却用変数に値を入れて、switchの外でretern。default節にはassertかな

419 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 00:15:25.93 ID:s9poePNg.net]
>>414
Castすればenumで定義してない値も渡せるから

420 名前:デフォルトの名無しさん [2016/08/09(火) 00:19:18.47 ID:h+7CEzP0.net]
>>416
マジで?
enumは定義した値しか無理なのがメリットと聞いたんだが

421 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 00:26:37.78 ID:s9poePNg.net]
>>417
Enum.IsDefined()かType.IsEnumDefined()を使わないと、定義された値かどうかの保証はないよ

422 名前:デフォルトの名無しさん [2016/08/09(火) 00:51:04.06 ID:h+7CEzP0.net]
>>418
そうだったのかよ



423 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 01:12:43.40 ID:mCEAgHsh.net]
え、ちょっとまって、ここC#スレじゃないよね
Enum.IsDefinedってC#(というか.NET)だよね

docs.oracle.com/javase/jp/7/api/java/lang/Enum.html

424 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 06:45:58.32 ID:qoHYj2J7.net]
まあenumに後で値が追加された場合を考えてdefaultは必ず書いといた方がいい
それが嫌なら他所でswitchは使わずにenum側にメソッドを定義する

425 名前:デフォルトの名無しさん [2016/08/09(火) 09:36:23.22 ID:h+7CEzP0.net]
>>

426 名前:420
あっそっか
先頭大文字はC#か
[]
[ここ壊れてます]

427 名前:412 mailto:sage [2016/08/10(水) 08:47:58.34 ID:oaJhkFWS.net]
レスありがとう

逆コンパイル見て納得したわ
そうだよなぁ、コンパイル時に参照してるenumと実行時に参照してるenumが変わってる場合もあるもんなぁ
自分で作ってる範囲では関係ないけど

428 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 09:04:51.85 ID:DKNr45Gr.net]
CやC#のenumがタイプセーフでないと言われるのは
enumが単なる数値でどんな値も取りうるからというよりもswitchを使うという行為に由来するもので
結局Javaの「タイプセーフ」enumだろうがswitch使っちゃうとタイプセーフにはなり得ないんだよな

429 名前:デフォルトの名無しさん [2016/08/10(水) 10:01:54.36 ID:ZwTZqxeT.net]
switchも拡張してなんとかすればいいのにね

430 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 14:58:25.68 ID:fFAFyiAs.net]
定義外enumのインスタンス化禁止+網羅チェックくらいの
程よい拡張ならいいけどやりすぎると結構アレなことになる

wpdev.hatenablog.com/entry/2015/06/24/233854
qiita.com/shimesaba/items/55bfe911c2f86055cbe1

431 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 15:30:44.38 ID:qErblx1T.net]
>>424
それはバージョン間の互換性の問題と
typesafe enum/int enumの問題とをごっちゃにしてるだけだよ。

互換性の問題をクリアできてないから万能ではない、あたりまでは言えるかもしれんが、
タイプセーフではないとか言っちゃうと……

432 名前:デフォルトの名無しさん [2016/08/10(水) 22:13:48.56 ID:UWZg55pn.net]
株式会社TOUAが2016年7月に破産
www.tdb.co.jp/tosan/syosai/4191.html



433 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 01:00:37.40 ID:S7WS2brb.net]
JFrameでウインドウを作って、そこでボタンなどを作成して時間のかかる処理をさせると、処理が終わるまでボタンが凹みっぱなしになるんですが
処理を続けつつ、JFrameを最新の状態で上書きするにはどうしたら良いですか?

434 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 06:51:40.07 ID:EcwVprBa.net]
スレッドプール使って別スレッドでやる

435 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 19:37:47.75 ID:WKXjJIoJ.net]
rxJava

436 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 20:26:41.84 ID:5USMjBJX.net]
jqueryを使って表を作成していて、
2つのプラグインを使おうとしています。
プラグイン1・・・セルが同一であれば結合する
プラグイン2・・・ヘッダーでソートができる。

この時、それぞれのプラグインで
<table>タグにidを設定する必要があります。

この場合、<table id=

437 名前:デフォルトの名無しさん mailto:sage [2016/08/14(日) 20:27:29.48 ID:5USMjBJX.net]
すみません、途中できれてしまいました。

この場合、<table id="sample1" id="sample2">
のようにidに複数の値を設定しても問題ないものでしょうか。

438 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 09:10:49.22 ID:kM2bYzgf.net]
jQueryとJavaの関係性について

439 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 09:43:05.50 ID:mR9WwRQ6.net]
最近のは勢いで書き込むからいけねぇよな
スレタイと内容を2回確かめて書き込めし

440 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 12:54:36.47 ID:TUIKyN4z.net]
>>434
それを見つけるのがお前らの仕事だろうが怠けるな!

441 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 12:57:19.91 ID:TUIKyN4z.net]
>>435
省略したら一緒だろうが中華人民共和国と中国は一緒だろじゃあJavaとjQueryも一緒だろ!!!

442 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 12:57:44.69 ID:TUIKyN4z.net]
たわけどもが



443 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 12:58:21.42 ID:TUIKyN4z.net]
ほらさっさと答えろ

444 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 12:59:26.26 ID:TUIKyN4z.net]
グズグズすんなカスどもがライチぶつけんぞ

445 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 12:59:40.74 ID:hCHaq+GR.net]
などと意味不明な供述をしており、警視庁は薬物の乱用等の 可能性も考えられるとして、捜査を続ける方針です。

446 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:11:04.11 ID:H+GaxU0A.net]
夏か

447 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:32:46.04 ID:yoqsMfwQ.net]
夏か釣りかただの頭のおかしい初心者か
とりあえずどれでもいいからJavaScript板池

448 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:35:07.88 ID:JC0vxxja.net]
そもそもhtmlの話なんじゃ……
いやよそう俺の予感だけでスレを混乱させたくない

449 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:43:03.19 ID:z2kTYRxm.net]
java<>javascript

450 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 13:57:16.42 ID:hCHaq+GR.net]
>>443
C#スレにワッチョイが入って追い出されてきた荒らしっす

451 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 16:06:14.36 ID:Lesp94Jt.net]
スレチと書きそうになったが、板違いだろ
WebProgへ逝けよ

452 名前:デフォルトの名無しさん [2016/08/15(月) 19:27:20.47 ID:gedRg2sB.net]
>>440
ライチいいねえ



453 名前:デフォルトの名無しさん [2016/08/15(月) 19:28:46.60 ID:gedRg2sB.net]
>>446
ここも次スレから入れよう

454 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 19:42:22.23 ID:yoqsMfwQ.net]
そうだな

455 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 21:02:33.39 ID:fNf3Xcjw.net]
いらない

456 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 23:44:21.60 ID:SJQb9H27.net]
荒らし本人乙
てめーの居場所なんか残してやらねえから
炎天下のアスファルトに引きずりだされたミミズみたいに
苦しみ抜いて干からびて死ね

457 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 23:50:45.92 ID:fNf3Xcjw.net]
頭を冷やせよ、馬鹿

458 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 23:53:08.40 ID:hCHaq+GR.net]
賛成に1票追加しといて

459 名前:デフォルトの名無しさん mailto:sage [2016/08/15(月) 23:59:20.03 ID:fNf3Xcjw.net]
スレを分けよう

460 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 00:16:54.08 ID:LvWZqoaM.net]
さっそく釣れててワロタ

461 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 01:02:40.41 ID:5k+FEGIK.net]
>>455
ライチと俺のきんたまスレッドという名前にしよう
管理人は>>456頼む快く引き受けろきんたま野郎

462 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 03:23:29.52 ID:h0WG7d7m.net]
( ´д)ヒソ(´д`)ヒソ(д` )



463 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 09:33:30.92 ID:CXXeizZn.net]
審議中w

464 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 09:56:47.37 ID:TsDBY7Mt.net]
露骨なネタレスにはネタに乗るかスルーしようぜ
マジレスしても詮無い

465 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 15:30:33.33 ID:Aa6B/BKP.net]
初心者で悪いんだけど、以下のようなGoの連想配列をJavaに置き換えるにはどうすればいいの?

prof['me'] = map[string]interface{}{
'name': 'John Lennon',
'email': 'foobar@gmail.com',
'phone': '+81-90-0000-0000',
'occupation': []string{'Programmer', 'System Engineer'},
'language': []string{'Japanese', 'English', 'Spanish', 'Chinease'},
'hobby': []string{'Photography', 'Traveling', 'Fishing', 'Onsen'},
}

のようなかたちにしたいんだけど

Pythonなら
my_profile = {'name': 'John Lennon', 'nickname': 'monkey',
'occupation': ('programmer', 'system engineer'),
'phone_number': '+81-90-0000-0000', 'email': 'ahoaho@gmail.com',
'language': ('Japanese', 'English', 'Spanish'),
'hobby': ('photography', 'fishing', 'traveling'), }

Javaでは連想配列で調べると、HashMapが出てきて、
Map<String,String> profile = new HashMap<String,String>();
のようにするのかなと思ったけれど、
毎回profile.put('name', 'Tom');みたいにするのはめんどくさいので配列で行おうと思ったんだけど、
String[][] profile = new String[2][3];とかでは違う気がして

466 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 16:20:15.90 ID:bpfxyFhm.net]
Javaにそんな気の利いたものはない
JSONファイルに外出しにするか泥臭くputしろ

467 名前:デフォルトの名無しさん [2016/08/16(火) 16:47:25.47 ID:Aa6B/BKP.net]
>>462
マジで?
こう言うと失礼かもしれないけれど、Javaだとこんな簡単な事を実装するのも苦労するんだね
実際こういう形が必要になった時ってJSON化とかしないといけないのか
良くある形だと思うんだけど...

教えてくれてありがと

468 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 16:48:40.13 ID:4YjPvRoE.net]
>>463
おっぱいそんでいいだろ、さようなら

469 名前:デフォルトの名無しさん [2016/08/16(火) 17:47:14.08 ID:LN6Jma9b.net]
>>461
StringのキーでStringの配列が引き出せればいいんだろ?HashMap<String, String[]> でいいんじゃねえの?
初期化とか面倒ってのは表現の問題だよな。ま、なんだったら初期化の元になる配列を別に用意しておいて自分でループさせて一個づつ初期化するように書けばいいのでは?
それか設定ファイルから読むように書くとか。

470 名前:デフォルトの名無しさん [2016/08/16(火) 17:48:38.77 ID:LN6Jma9b.net]
書き込んだらリロードされて既に話が終わってたorz

471 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 17:57:57.62 ID:q8lrk+Br.net]
>>463
ヘルパメソッド作ればええんやで
詳細は>>466が知ってますよろしくお願いします

472 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 18:07:44.65 ID:Aa6B/BKP.net]
>>465
>>467

ありがと
今出先だからまた試してみる



473 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 19:30:12.56 ID:EHdIZNTT.net]
まぁでもそういう表記簡略化してくれるアノテーションプロセッサみたいなのがあってもいいよな

474 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 20:05:03.56 ID:eooJe/za.net]
lombokもまだ大したことできねえしなあ

475 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 20:52:52.11 ID:Aa6B/BKP.net]
>>465

import java.util.Map;
import java.util.HashMap;

public class Hai {
public static void main(String[] args) {
Map<String, String[]> hai = new HashMap<String, String[]>();
hai.put('name', 'Tom');
System.out.println(hai.get('name'));
}
}

/*
Hai.java:7: エラー: 不適合な型: StringをString[]に変換できません:
hai.put('name', 'Tom');
^
注意:一部のメッセージは簡略化されています。-Xdiags:verboseで再コンパイルして完全
な出力を取得してください
エラー1個
*/

このエラーは理解できるんだけど、となると上で書いた俺のやりたいような事ってやっぱ難しいのかな?
連想配列で、あるキーの値はStringだけど、別のキーの値はString[]みたいな

476 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 20:59:49.35 ID:4YjPvRoE.net]
居座る初心者

477 名前:デフォルトの名無しさん [2016/08/16(火) 21:34:57.35 ID:hU1J3joE.net]
>>471
難しくない、Javaなら5秒だ
https://paiza.io/projects/4rPiFWKm9zY0DyrMynLGmQ

478 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 21:42:42.38 ID:eooJe/za.net]
Objectにでもキャストしとけよ
タイプセーフ嫌いなんだろ

479 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 21:47:46.33 ID:so1Gsq4y.net]
ドヤ顔で相手してる人間初心者も死ね

480 名前:デフォルトの名無しさん mailto:sage [2016/08/16(火) 23:05:21.19 ID:CFM4NC3W.net]
初心者は、初心者向けスレへ移動せよ

Java入門・初心者質問スレ
echo.2ch.net/test/read.cgi/tech/1462997913/l50

481 名前:デフォルトの名無しさん [2016/08/17(水) 12:22:51.42 ID:8LdosxhK.net]
>>471
同じ所に違う型混ぜて入れると後で判別したり面倒だから1つでもString[]に入れとけ。
データが億単位あってそんな無駄なことは1バイトたりともできないっていうなら話は別だか、
数万とか数千なら今のPCなら気にならないぐらいの誤差みたいな大きさにしかならんよ。

482 名前:デフォルトの名無しさん mailto:sage [2016/08/17(水) 14:37:2 ]
[ここ壊れてます]



483 名前:5.87 ID:a7znAueU.net mailto: またズレたことを
(469が)冗長(に感じるよう)なコード書きたくないって言ってんだよ
ホント相手してる奴って頭悪いな
生きてる価値ないから死ねよ
[]
[ここ壊れてます]

484 名前:デフォルトの名無しさん mailto:sage [2016/08/17(水) 15:09:49.31 ID:5YMB8p2s.net]
よーしパパも冗長なコード書いちゃうぞ
https://ideone.com/UaKR5E






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<250KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef