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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 22:13:17.42 ID:Sf0TFsly.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質問・相談スレッド179★★
echo.2ch.net/test/read.cgi/tech/1476706523/

75 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 17:49:28.86 ID:+VZhYDLB.net]
俺はJava書くときは必ずObjectを継承するようにしてる

76 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 19:00:05.47 ID:TGelZbxI.net]
>>74
なんでや?

77 名前:デフォルトの名無しさん [2017/05/23(火) 20:54:01.87 ID:mYQ+ynVM.net]
>>73
言う。

78 名前:デフォルトの名無しさん [2017/05/23(火) 21:00:29.01 ID:RzWtz9Yc.net]
言わないコンテキストと
言うコンテキストがあるわけだから
お互いのコンテキストをぶつけて消滅させて
人類が滅びれば地球に平和が訪れます
それが真のユートピア

79 名前:デフォルトの名無しさん [2017/05/23(火) 21:00:52.63 ID:RzWtz9Yc.net]
地球平和のためのオブジェクト指向

80 名前:デフォルトの名無しさん [2017/05/23(火) 21:29:33.07 ID:A5t1zfLR.net]
>>76
文脈考えような

81 名前:デフォルトの名無しさん [2017/05/23(火) 23:45:40.00 ID:hoEPyhx6.net]
>>79
あほか

82 名前:デフォルトの名無しさん mailto:sage [2017/05/23(火) 23:49:02.19 ID:u7xU/vNF.net]
どうでもいい

83 名前:デフォルトの名無しさん [2017/05/23(火) 23:55:26.23 ID:A5t1zfLR.net]
>>80
常識的に考えて「継承はあまり使わない」って言ったら暗黙的なObject継承は除くやろ
Object継承含んだら、継承率100%になるやん
アスペかよ



84 名前:デフォルトの名無しさん [2017/05/23(火) 23:56:04.61 ID:A5t1zfLR.net]
いちいち「暗黙的なObjectクラスの継承以外の継承はあまり使わない」って書けって事か?

85 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 03:20:49.95 ID:SSLM/4UF.net]
>>82
暗黙の継承だろうとリスコフの置換原則の対象だから>>62がおかしい

86 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 03:21:57.53 ID:SSLM/4UF.net]
文脈を無視していきなり関係ない話をしだしたっていうならまだしも

87 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 07:02:11.95 ID:8osOo0xF.net]
>>84
おかしいのは文脈が違うからだという事に気付かないと。何かアスペっぽいよ君。

88 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 07:18:15.41 ID:SSLM/4UF.net]
>>86
いきなり関係ない話したのか
そういう時はわかるように言おうなアスペ君

89 名前:デフォルトの名無しさん [2017/05/24(水) 07:21:05.75 ID:sXHe3Xzk.net]
>>87
いきなりObject

90 名前:デフォルトの名無しさん [2017/05/24(水) 07:25:08.22 ID:sXHe3Xzk.net]
相手が言ってることがおかしいと思ったら
相手の前提と自分の前提が違うんじゃないかと思わないと
自分の前提で相手の発言を解釈して相手がおかしいと
いうのは簡単だけど、それって会話が噛み合ってないだけだよね

たしかにJavaのすべてのクラスはObjectを継承するけれども
その意味での継承と、自分はあまり継承を使いませんというときの継承は
概念が異なることに気付けると思うし気づくべきだと思う

91 名前:デフォルトの名無しさん [2017/05/24(水) 07:35:37.60 ID:sXHe3Xzk.net]
言葉が同じだから同じことを話しているんだと思うのが危なくて
言葉は同じでも概念が異なることがある

自分の概念を相手が言うことに当てはめておかしかったら置換可能でないということ
継承してはいけないものを継承してる

これがリスコフの置換原則

92 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 09:20:49.63 ID:IXUmJ/sE.net]
Effective Javaが名著だと聞いて読んでみたことがある
継承より委譲を使うこと、と書いてあって、すぐにクソ本だと見抜いたよ
Objectを継承しないオブジェクトは存在しないが、委譲は必ずしも必須ではない
そんなこともわからない著者が書いた本をありがたがってるんだから、世間のJavaプログラマのレベルなんてお察し

93 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 09:25:04.61 ID:rgjqqiZm.net]
>>91
中身ちゃんと読んでない事丸分かりでワロタ
なぜ名著と言われてるか分からん頭なのに、なぜ自信満々なのか本当に理解できん



94 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 11:52:04.86 ID:RPJTgULc.net]
どの言語でも「Effective 何々」という本は、プロ必須本。
ここまで読めば、ひとまず上司に聞きながら、仕事ができるレベル

これ以上のレベルの本は「メタプログラミング 何々」という本。
これは、ライブラリ・言語実装者向けの本

最近の本では、委譲を勧める方が多い。
Web開発を想定して、委譲の方が柔軟性があるから

それに委譲は、コンポーネントの疎結合にも使える

オブザーバー、発行・購読
中央管制塔ありのメディエイター
メッセージキュー

95 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 12:10:05.97 ID:MizSfTrk.net]
>>91
それは見抜いたんじゃない
理解できず諦めたって言うんだ

96 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 12:16:41.24 ID:MnuqeZiD.net]
>>93
君のレスは、癖があって、すぐわかる。
内容も、いつも、的外れ。

97 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 14:14:28.08 ID:SSLM/4UF.net]
>>89
自分で気づいて欲しくて遠まわしに言ったんだがな
Javaでは必ず継承してるからリスコフの置換原則は必ず付きまとう
と言うか継承を滅多に使わないとは間違いで上書きしてないだけでメソッドはそのまま継承されてる
そのまま継承しただけではクラスの意味合いによって置換原則に従わないこともある
例えば数値を表すインスタンスのequalsとかそうじゃないか常識的には
new Counter(5).equals(new Counter(5))?

98 名前:デフォルトの名無しさん mailto:sage [2017/05/24(水) 15:36:11.63 ID:IgpnYvX1.net]
「お察し」を使うのは厨二

99 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 07:24:33.27 ID:Mhihnqx0.net]
>>96
自分で分かってないの丸出しだな
equalsは置換原則に反する典型的なメソッドなので例としては最悪
Counterを継承すると適切に機能しなくなる

100 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 17:40:11.27 ID:ynJbt3tr.net]
>>98
なぜ反するか、継承すると適切に機能しなくなるかの説明できますか?

101 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 17:52:50.28 ID:GQTsiFFs.net]
偉そうなやつがきたぞ

102 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 22:26:51.23 ID:/9nVrKkw.net]
>>99
Counter x = new Counter(1);
Counter y = new CounterEx(1, 2);
x.equals(y); //置換原則に従い、型を無視して1番目の値のみを比較するとtrue
y.equals(x); //2番目の値も比較してfalse
これはequalsの対称性を破っている

103 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 22:47:17.18 ID:/9nVrKkw.net]
補足
対称性を満たすようにCounterEx#equalsの実装を変更しても仕様違反が生じる
Counter x = new Counter(1);
Counter y = new CounterEx(1, 2);
x.equals(y); //置換原則に従い、型を無視して1番目の値のみを比較するとtrue
y.equals(x); //相手がCounterの場合は x.equals(y) の値を返すように実装を変更してtrue
Counter z = new CounterEx(1, 3);
y.equals(z); //当然false
z.equals(x); //y.equals(x)の場合と同じくtrue
これは x = y かつ z = x なら y = z というequalsの推移性を破っている



104 名前:デフォルトの名無しさん [2017/05/26(金) 22:55:34.01 ID:NnuCoMWV.net]
java 9

105 名前: リリース遅れそうな気配だけど、
java 8 のサポート延長されないのかな。
http://www.oracle.com/technetwork/jp/java/eol-135779.html
[]
[ここ壊れてます]

106 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 09:00:27.31 ID:H5DLR0HB.net]
>>101
お前がリスコフの置換原則を守れないことはわかった。
もう二度とプログラム書くなよ。

107 名前:デフォルトの名無しさん [2017/05/28(日) 03:51:45.91 ID:lcWhcyEB.net]
質問させてください
メソッドaとbを持つ親クラスがあり、メソッドaは内部で自身のメソッドbを呼んでいるとします
次に親クラスを継承した子クラスを用意し、メソッドaとbの両方をオーバーライドし、メソッドaではsuperで親のaメソッドを呼んでいるとします

この時、子クラスのメソッドaを呼ぶと親と子どちらのbメソッドが実行されるのでしょうか?

108 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 07:55:31.10 ID:1h0Zdjgx.net]
>>105


109 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 09:51:29.08 ID:22uH3DrM.net]
>>105
そういう意図せず呼び出し先が書き換えられてしまうトラブルがあるから、
オーバーライドを許すメソッドは極力制限するのが基本

110 名前:デフォルトの名無しさん [2017/05/28(日) 11:43:31.44 ID:lcWhcyEB.net]
>>106,107
ありがとうございました
書き換えられてしまうんですね。ちょっと設計見直してみます

111 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 12:15:32.64 ID:KZ/JXw9A.net]
Javaでは伝統的にあんまりその辺ガチガチに作らないことが多い
継承はなるべくオープンであるべき!スーパークラスが壊れる?そんなのサブクラスの責任でしょ?っていう考原理主義的な考え方がまだ色濃く残っている
C#なんかだとオーバーライドさせたいところだけprotectedな仮想メソッドとして切り出しておいて
それ以外のオーバーライドは一切認めない、みたいなガッチガチな設計をするのが一般的なんだけど

112 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 12:38:13.92 ID:5K6OvT18.net]
上書きされたくないならメソッドに final つけときゃいいんじゃねーの?

113 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 13:22:14.80 ID:KZ/JXw9A.net]
Javaでメソッドに軒並みfinal付けると、
上から目線でオブジェクト指向を理解していない馬鹿呼ばわりする奴がいるからなあ



114 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 14:05:04.96 ID:7TA+N736.net]
>>111
別にバカが何を言っても関係なくね?

115 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 15:15:34.03 ID:fRR4LI9a.net]
インターフェース

116 名前:デフォルトの名無しさん [2017/05/28(日) 15:33:19.93 ID:TqBbmupp.net]
初心者なんだけど、
スカイプとかって、なんという言語で作られてるの?

117 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 15:54:23.33 ID:LqX4nhhl.net]
C++だろう
MSだからスマホ版はC#に移行してるかもしれないけど

118 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 16:51:28.22 ID:fRR4LI9a.net]
スレチ

119 名前:デフォルトの名無しさん [2017/05/28(日) 21:32:06.13 ID:QPUrPhGM.net]
>>109
Javaは継承したクラスが別物にしてしまうことを想定してないからな。

形だけ継承して中身を書き換えられるからタチが悪い。

120 名前:デフォルトの名無しさん [2017/05/28(日) 21:34:09.27 ID:QPUrPhGM.net]
>>114
高度なWindowsアプリならWindows SDKの可能性が高い。

121 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 22:33:09.13 ID:A2iCvXLz.net]
言語言うてるやろ

122 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 22:39:20.62 ID:pJKpSkwh.net]
スレチ言うてるやろ

123 名前:デフォルトの名無しさん mailto:sage [2017/05/28(日) 22:47:21.05 ID:oCI88hgR.net]
めんどくせえからVBでテキトーに作っただけだったりしてな



124 名前:デフォルトの名無しさん [2017/05/28(日) 23:06:34.69 ID:QPUrPhGM.net]
>>119
Windows SDKならCかC++なんだよ。知らないなら調べてもの言えよ

125 名前:デフォルトの名無しさん mailto:sage [2017/05/29(月) 00:12:45.97 ID:3p3NlSCk.net]
>>122
スレタイ100回声に出して読んでから来いや

126 名前:デフォルトの名無しさん [2017/05/29(月) 00:58:20.59 ID:3z87Obs+.net]
>>123
読んできました。

127 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 09:33:06.11 ID:os85wqX+.net]
ゴスリンがAmazonに入社したらしいね
もうAmazonがJava買ってくれよ

128 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 16:40:49.89 ID:6+8tZLqC.net]
尼にメリットがない

129 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 19:56:05.44 ID:wtE6TEU1.net]
Googleみたいなウェーイ系の延長と違ってAmazonはエンタープライズITに対してわりと理解があるし
Java開発のAWSへの取り込みを加速させるには悪くないんじゃないかな

130 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 19:46:39.66 ID:3Fne/ooH.net]
chromeブラウザのF12で表示される「NetWork」タブみたいに
URLにアクセスした際に送受信されるリクエスト全部取得する処理ってどうやれば実現できますか?
たぶんhttpClientかsocketあたり使うと思うけどhttpClientはレスポンスぐらいしか取れないように見える

131 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 20:30:10.08 ID:oWxqnrnZ.net]
>>128
HttpClientでできるよ

132 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 21:28:59.57 ID:JC7MCbjt.net]
>>128
Httpclientでなぜできないと思うのか

133 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 07:25:25.31 ID:wdYocHRg.net]
javacでコンパイルした後、クリーンのようなコマンドで.javaファイルを全て削除することは出来ないでしょうか?



134 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 08:07:45.80 ID:QV1lsJYM.net]
>>131
放っとけ
現実の開発でjavac手打ちなんてありえないからどうでもいい
mavenやgradleを使おうね

135 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 08:53:29.49 ID:V3R1vIUK.net]
どーしても欲しいってのならバッチ作ってパス通せばいい

136 名前:デフォルトの名無しさん [2017/06/08(木) 09:09:29.53 ID:4Sfj3MXg.net]
>>131
ファイルを消す方法はOSや操作環境によって違う。
Windowsでコマンドプロンプトならdelコマンド、LinuxやMacOSのようなUNIX系OSならrm等でできる。
ただしディレクトリの階層を降りて行って対象のファイルを全て削除したい場合はそれぞれやり方が大きく異なるのでよく調べてからやった方が良い。
確かUNIX系のOSではfindコマンドと組み合わせないとできない。

それとWindowsのエクスプローラは*.javaで検索後にまとめて選択して削除はできるかも知れない。やったことないけど。

137 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 11:35:11.82 ID:N6bKCzZD.net]
>>134
消すのは.classだけにしてあげて

javacに-dだかつけて特定のとこに出力しといて毎回そこ消せばいい
面倒になってワンライナー書くようになって
色々やりたくなってスクリプト化して
mavenとかみたいなソフトを作ってね

138 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 11:51:57.46 ID:AJC0wjYd.net]
コンパイルしたら問答無用でソース削除ってすげえな
サムライだわ

139 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 12:24:32.03 ID:2+JnwVdz.net]
GridPaneで8×8のマスを作ってGUIのマインスイーパーのアプリケーションを作りたいんだけど
どうやって作ったらいいと思いますか?

140 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 12:32:38.14 ID:V3R1vIUK.net]
調べながらやればいいと思う

141 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 13:28:18.05 ID:AJC0wjYd.net]
JavaのGUIなんて覚えてもどうせ実際の開発で使う機会はないんだから画面はAAでいいんじゃね
座標を入力してマスを開くようにしたらいい

142 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 18:57:54.02 ID:wdYocHRg.net]
javacを質問したものですが.javaにコードを書くのですね
初心者の勘違いでした

java能力検定というものを受けてみようと思うのですが、試験ではjavaファイルを修正してjavacでコンパイルしたものを提出するようなのでビルドとクリーンは押さえておきたいと思い

オプションで出来るだろうなと思っていました

143 名前:デフォルトの名無しさん [2017/06/08(木) 19:35:14.41 ID:HjFtHmDJ.net]
>>140
何を言ってるのかますますわからん。



144 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 20:59:29.83 ID:C8PmrmH4.net]
そんなレベルで受かるような試験なら受ける価値は全く

145 名前:ないと思う []
[ここ壊れてます]

146 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 23:01:38.03 ID:FAwIWNwN.net]
え?javacのオプションでファイル消せると思ってたの?
んなこたできねえ。

147 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 23:02:59.28 ID:FAwIWNwN.net]
試験のお題が「ファイルを削除するプログラムを作りなさい」だったら笑うな。

148 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 23:13:50.27 ID:Ie+JXWe+.net]
antを使いなさい

149 名前:デフォルトの名無しさん mailto:sage [2017/06/09(金) 15:00:31.56 ID:AVL5YzBz.net]
コンパイラとビルドツールの違いがいまいち分かってないのか
というか、コンパイラがコンパイル対象消すって、機能としてはまず入れないと思うぞ
自分がクラスファイルを書き出した根拠を消すって、怖すぎ

150 名前:デフォルトの名無しさん mailto:sage [2017/06/09(金) 19:24:11.51 ID:2o9pD8dn.net]
本でしか勉強してないのかな
実践しなよ

それができないなら情報処理技術者試験とかのがいいんじゃないか

151 名前:デフォルトの名無しさん [2017/06/09(金) 21:05:11.77 ID:HFELVm93.net]
そういやファイル削除するプログラムは初心者向けのお題としてはいいかも知れんな。
ワイルドカードも使えてオプションでディレクトリを降下して削除することもできるようなやつ。
暇な初心者は作ってみな。

152 名前:デフォルトの名無しさん mailto:sage [2017/06/09(金) 21:22:20.33 ID:lTunlEdI.net]
Runtime.getRuntime().exec(new String[] {"bash", "-c", "find . -type f -name *.java" | xargs rm"});

153 名前:デフォルトの名無しさん [2017/06/09(金) 21:50:56.86 ID:HFELVm93.net]
Write once, Run once.



154 名前:デフォルトの名無しさん mailto:sage [2017/06/09(金) 21:54:48.29 ID:Lf5I0uKH.net]
Eclipse使えよ

155 名前:デフォルトの名無しさん mailto:sage [2017/06/09(金) 22:33:25.96 ID:lTunlEdI.net]
ビルドツール使わずにEclipseでビルドが許されるのは小学生まで

156 名前:デフォルトの名無しさん [2017/06/10(土) 01:28:25.17 ID:Aw9IeMww.net]
>>149
惜しい。*をエスケープしないとカレントディレクトリに一つjavaファイルがあったらbashに展開されてそのファイル名一つが指定されたことになってしまう。2つ以上あったらfindコマンドがエラーになって動かない。

157 名前:デフォルトの名無しさん [2017/06/10(土) 01:42:53.38 ID:Aw9IeMww.net]
それ以前の問題としてOSがUNIX系OSでなければ動かない可能性大か・・・

158 名前:デフォルトの名無しさん mailto:sage [2017/06/10(土) 09:33:16.08 ID:0q4Mq4Kr.net]
パッと見で、rmのエイリアスどうなってるのか不安になる

159 名前:デフォルトの名無しさん mailto:sage [2017/06/10(土) 10:07:20.48 ID:chD4P6/F.net]
>>153
print0もない

160 名前:デフォルトの名無しさん [2017/06/10(土) 15:12:22.05 ID:Aw9IeMww.net]
>>156
あー。スペース入りファイル名ね。その場合 xargs に -0 が必要になるな。

てか、既に話が Java ではなくなってるな。

そう言えば Java だと1.7以降は java.nio.file.Files#walkFileTree() 使えば楽にできそうだな。
自分で再起処理書く必要がない。

161 名前:デフォルトの名無しさん [2017/06/10(土) 15:15:07.76 ID:Aw9IeMww.net]
walkFileTree()はstaticメソッドだった。何もしないでいきなり使える。

162 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 06:53:55.92 ID:Q+Hg17ig.net]
walkFileTreeは典型的なJavaらしい使い辛さ
なんでプル型(イテレータみたいに利用者側のアクションで取りに行く形のこと)にしなかったのか
ああいうSAXみたいなスタイルのAPIって実装する側は楽かもしれないけど利用者は面倒臭いだけなんだよな

163 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 07:08:13.41 ID:Q+Hg17ig.net]
Visitorを実装するのが面倒臭いというのももちろんあるけど、
ああいうAPIの一番の問題はスレッドをブロックしやがること
処理を一時中断するにはいちいち別のスレッドを起動しなきゃいけない



164 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 07:56:23.35 ID:y6/KXvpo.net]
プル型の処理はnewDirectoryStreamやJava8で追加されたfindで可能
結果、
visitorの実装が面倒でブロッキングなwalkFileTree
サブディレクトリを再起処理してくれない上にStreamの名を冠しながらJava8のStreamと互換性のないnewDirectoryStream
メソッド増えすぎて反省したのか手軽なオーバーロードがなく引数の指定が面倒なfind
わずか2バージョンでこの乱立ぶりよ

165 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 10:05:21.83 ID:gMpitCBj.net]
walkfiletreeは知らないがSAXは便利に使ってる
普段からsedとか使ってるからかな

166 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 11:02:50.40 ID:y6/KXvpo.net]
>>162
Javaも今はプルパーサが主流よ
SAXは不要な制限が付くだけの糞

167 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 11:48:12.85 ID:gMpitCBj.net]
>>163
流行りとかどうでもいいけど、どんな制限?

168 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 12:22:31.58 ID:y6/KXvpo.net]
>>164
制御を奪われてしまう
>>160の通りだね
プルパーサはラップすることで簡単にSAXを実装できるけど、逆にSAXをベースにプルパーサを実装するのは(シングルスレッドの範囲では)不可能
SAXを好む人を否定はしないけど、少なくとも低レベルAPIとして位置付けるには制限が強くて向いてないんだよ

169 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 13:25:11.04 ID:gMpitCBj.net]
>>165
ストリーム開けっ放しにして他のこと始めるのか
その発想がなかった

170 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 15:46:33.83 ID:y6/KXvpo.net]
>>166
今時は非同期プログラミングの普及でいったん制御をフレームワークへ戻したいケースもよくあるからそんなにおかしな発想ではないぞ
DOMに近い感覚で必要な要素だけを処理できるのも大きなメリットだ
SAXだと、特定の要素に対する処理だけをメソッドに切り出すってのが非常にやりづらい

171 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 17:03:52.08 ID:gMpitCBj.net]
>>167
あーそういうレベルで難しいんだ
それならしょうがない
出来る方法でやるといいよ

172 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 17:16:50.12 ID:7kOowwdv.net]
プルのいいところは軽量と速さだろ

173 名前:デフォルトの名無しさん [2017/06/14(水) 18:08:39.39 ID:QP2Q0Xjx.net]
>>159
walk()もよろしく。



174 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 18:08:55.88 ID:OTRTw69H.net]
プッシュだと例えば複数のxmlを開いて結合することができないわけです

175 名前:デフォルトの名無しさん [2017/06/14(水) 19:04:54.50 ID:QP2Q0Xjx.net]
不可能ではないが大変面倒






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

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

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