★★Java質問・相談スレッド182★★

■ このスレッドは過去ログ倉庫に格納されています
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)ttp://www.wikiroom.com/java/?path,classpath
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※

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

前スレ
★★Java質問・相談スレッド181★★
https://mevius.5ch.net/test/read.cgi/tech/1518252580/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
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の情報探そうと思ったら全然出てきません……
日本語の本でまともなのってないですか?
2020/01/09(木) 00:31:43.96ID:mNT5CRRbM
>>753
JavaFXはもう終わりでしょ
需要ないしろくに本も無いのでは?
2020/01/09(木) 00:33:05.00ID:r2AVr9JT0
ネット見た感じ取り敢えずSwingは終わりっぽいのでOpenJFX使って開発しようと思ったんですが、どちらも厳しいんですかね?
2020/01/09(木) 01:33:41.97ID:TONSU376a
終わるとか以前に、JavaでGUIは始まったことすらない
ガチで今も昔も誰も使ってない
2020/01/09(木) 07:57:06.34ID:wvbDpdNb0
昔は性能が悪くて使われず
今はクライアントアプリが斜陽
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ってタイトルが全部アルファベットなんだけど
2020/01/10(金) 13:53:24.38ID:kNTR9GPN0
aとかbとかは君のように解析しようとする試みを防ぐため難読化されてるってこと。
エントリポイントはActivityを継承したクラス見っけて...かな?
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ってファイルがどこ探してもないんだけどこれどういうことなん?
2020/01/10(金) 15:08:39.67ID:9j5+BVSIr
メソッドって自分で言ってんのにファイル名探すとは
2020/01/10(金) 18:11:08.65ID:D+gtbuRW0
C#erに、まだフィールド使って接頭語にアンダースコア付けてるんでしょ?と言われて何か悔しいです。
ギャフンと言わせる方法はあるでしょうか?
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) ;
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;
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を追加するにはどうすればよいでしょうか?

よろしくお願いいたします
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反応したっけ?
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じゃないし。
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使ってるんだけど、なぜか修飾子検索してくんないから全く使い物にならない
2020/01/11(土) 11:52:19.94ID:as9AOr230
普段プログラム書くのに使ってるツールにgrep機能が付いてないの?
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ったら全く同じ事が書いてありました。
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になる。
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使っても有償になるのでしょうか?
2020/01/11(土) 21:34:49.76ID:1VjCQQNwM
Javaをやろうとするやつは総じてバカなのか? それともこのスレだけなのか?
最近pythonやろうとしてるやつも大概バカばっかだがここはそれ以上
2020/01/11(土) 23:44:29.27ID:Fe8pyJct0
私思うんです
他のクラスに変数を受け渡すとき
例えばclass1からd=class2(a,b,c);みたいにひとつずつ変数を渡さないで
d=class2(this);にすればいいと思うんです
私思うんです
2020/01/12(日) 00:46:32.13ID:7vCp3mje0
>>769

はい、foobarです
これって専用なのですね?
専門のページで質問してみます
有難うございました
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
どっから湧いたんだよ
2020/01/13(月) 02:41:58.54ID:D6MgPK0q0
初質問させていただきます、JAVA初心者です。

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

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

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

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

お手数おかけしますが、ご助力ください。
2020/01/13(月) 12:20:04.08ID:Jh+AJgi90
宿題をここに投げるな
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の区別はできているのか?
2020/01/14(火) 04:41:29.56ID:3sd16sWN0
>>792
0から手を動かして作るRailsチャットアプリ【チュートリアル】
https://www.youtube.com/watch?v=WCsgcp5dg7M

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

他には、Node.js, Electron でも作れるかも
797デフォルトの名無しさん (ササクッテロラ Spf1-gopL [126.193.125.144])
垢版 |
2020/01/14(火) 14:29:55.91ID:m1u1XKORp
なんでinterface作ってクラス名にimplつけた実装クラス作るの?最初からクラスだけじゃダメなの?
2020/01/14(火) 14:45:34.94ID:/8RfG7cVM
>>797
並行作業のスケジュールの都合により、使われる方のクラスを作る前に使う方のクラスを先に作る必要がある場合のためだよ。
使われる方のinterfaceさえ定義しとけばImplがまだ無くても使う方を作れるでしょ。
現実にはこのような逆転した作業は極めて非効率で、たいてい後で不整合が起きて無駄になる。
でもジャップランドのSEはプログラマの稼働率を下げないためにそうせざるを得ないの。
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が書ける時点で引数と戻り値は決まっているはずなので、最初からクラスを書いてダミーの戻り値を返すようにしておくのと変わらない気がします。
2020/01/14(火) 20:09:08.05ID:/8RfG7cVM
>>800
よい質問だ。
SE様に作業完了の確認を貰って深夜残業を切り上げるには、当然、作ったものを単体テストしなきゃいけない。
でも使われる側がnull返すか何もしないだけのダミー実装じゃ普通に考えてテスト通るわけない。
どうするか?自分で都合のいい実装をでっち上げてそれを代わりに使うんだよ。
この手法は脳内彼女を相手に恋愛の練習をしているようなもので、どれだけ無駄かは容易に想像できるだろう。
態々interfaceを通さなくても脳内彼女の実装を対象クラスに直接書けばいいじゃないかと思うかもしれないが、
そうするとA君の脳内彼女とB君の脳内彼女が同一人物なのに違う実装になってしまって衝突したり、
いざ本物を実装しようとしたときに既に変なオナニー実装があって混乱するなど不都合が生じる。
ちなみに実は自動テストの都合という面もあるのだが、ドカタITではそんなものはファンタジーだから気にしなくてよい。
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
違う実装を後からセットできるじゃない。
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
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 もよろしく
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や環境の違いを吸収する所とか。
2020/01/17(金) 10:04:29.73ID:0sb73h15M
>>811
君はSwingを作っているのか?
俺も元々独学だったからよくわかるんだが、独学プログラマは不特定多数向けのプロダクトしか手本がないから、
ユースケースを特定せずに一般的や抽象化を行うことを必須と思い込みがちなんだよ
現実のアプリケーションプログラミングにおいては、一般に、極力絞り込んだ必要最低限のコードを書くほうが継続的な開発が容易になる
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信者のご登場。

こだわっているところがズレまくり。
2020/01/18(土) 01:23:04.05ID:AhPxC9uwa
実際、開放閉鎖原則がまともに機能してる現場なんか存在するんだろうか
経験上、むやみやたらとinterfaceが定義されててもそれらがポリモーフィズムに活用されることはほぼ無いし、
ほとんどの修正は既存の具象クラスに対して直接加えられる
日本のIT土方のレベルが低いとかそういう話ではなく、自社サービスでも海外のOSSでも同じだ
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
みんな同じこと思ってるんだなー
2020/01/18(土) 15:12:21.42ID:G/K26Ddi0
最適化するな、有効なジャバ
2020/01/18(土) 16:56:09.39ID:2kvawVDh0
>>817
>保守性が高いコードとは、少しダサい感じのコード
なるほど、そうなんですか…
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に書き込める?
2020/01/18(土) 23:09:15.22ID:CUwsiqTs0
そもそもHTTPの仕様上、どうやってGETでbodyが送れると?
2020/01/19(日) 01:01:44.39ID:Sewbs9bsM
どんだけでかいデータか知らんがurlエンコードしてクエリにセットすりゃいいんじゃね
2020/01/19(日) 01:13:46.61ID:qcodQ+dh0
URL のクエリー部分に、JSON を入れる人は、いないw

普通に、キー・値で書け!
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"
}
2020/01/19(日) 11:55:03.03ID:Qx904AID0
publicとかprevateとかつける意味あるの?
メンドウクサイんですけど
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
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の記事ばかり
2020/01/22(水) 20:44:41.49ID:Ad54xjX8M
mmddに1月1日でも入れときゃいいんじゃね
2020/01/22(水) 23:56:49.84ID:fyGKoId60
Ruby on Rails は、抽象的なtimestamps 型を使う。
それがDB のMigration で、各DB の時刻型になる!

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

UTC 時刻で保存しておけば、各国のローカルタイムにも変換できる
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);
2020/01/23(木) 09:57:36.39ID:gE68l7u+0
>>834
ス・レ・チ
2020/01/23(木) 12:52:46.95ID:mWAdwIcyr
var localDate = Year.parse("2019").atDay(1);
と書くとちょっとだけすっきり
2020/01/27(月) 14:02:10.88ID:SzZb6gPjM
月が1から始まるだけで感涙しそう
2020/01/28(火) 17:07:27.77ID:tlwivndu0
finalって何のためにあるの?
変更できない変数なら変数にしなきゃいいじゃん
ばかみたい
2020/01/28(火) 17:14:06.59ID:CmoTnj/f0
2020/01/28(火) 17:56:19.12ID:EaxnzHwqM
>>840
必要になったときに計算で値を算出できる、かつ、計算コストが小さいならメソッドにしても良いかも知れない
2020/01/28(火) 18:00:44.22ID:EaxnzHwqM
変数を使用するときは、値を得るタイミングと値を使用するタイミングが異なるときであったり、計算コストが高いときであったりするから、変数を消すのはそれなりに大変
2020/01/28(火) 19:41:55.33ID:HF/SUcrCM
>>840
数値とかだったりするとぱっと見でどういった意味の値かわかりづらいやろ
同じ意味で使ってる値の変更するときも安全
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
定数に使える。

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

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

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

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

Kotlinのvar, val, constのようにモダンな言語はほぼ全てミュータブルな変数、イミュータブルな変数、定数の3つを明確に使い分けられるように設計されている
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だと既にあるかな?
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にしてくれたりするけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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