[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 12/14 09:14 / Filesize : 60 KB / Number-of Response : 231
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



1 名前:デフォルトの名無しさん mailto:sage [2013/12/06(金) 10:55:55.50 ]
プログラミング言語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() を使え。※

前スレッド
★★Java質問・相談スレッド165★★
toro.2ch.net/test/read.cgi/tech/1382265039/

151 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:10:52.09 ]
>>import java.io.PrintWriter;
>>って API として、何かを呼び出してるのでしょうか?
呼び出しているよ

>>import javax.servlet.servletexception
>>とか、何を表してるのか知りたいのですが、わかるような本、もしくはサイトありますでしょうか?
あるよ

152 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:19:40.36 ]
基本、クラス定義の外側にある行は実行の対象じゃないんで・・・

153 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:51:24.70 ]
アプレット実行可にしてるやつなんていたのか

154 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:01:40.04 ]
今やセキュリティホールの代名詞だよね

155 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:03:43.39 ]
>>151
>>とか、何を表してるのか知りたいのですが、わかるような本、もしくはサイトありますでしょうか?
あるよ

教えていただけますでしょうか?

package filter;

import java.io.IOException;

import javax.servlet.filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class EncodingFilter implements Filter {

public void init(FilterConfig filterConfig)
throws ServletException {

このpublicから始るものは 関数と考えていいのでしょうか?

読み方がわかりません。詳しく纏められてるサイト、本の紹介をお願いいたします。

156 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:09:12.64 ]
>>155
publicの読み方がわからないの?

157 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:10:56.77 ]
>>156
さすがにわかりますが、他はわかりません。

たとえば、

import javax.servlet.ServletResponse; は何をしてる構文なんでしょうか?

わからずとりあえず打ってますが、一つ一つの単語?がわかれば理解が早いとおもったしだいです。

158 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:14:36.64 ]
過去レス読め、ggrksまたはスレチ

159 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:16:04.71 ]
>>157
そのレベルだったら本来は入門書の最初から読み進めるのが最も望ましい
今すぐ特定のコードを理解しなきゃいけない事情があるのなら俺には近道は思いつかない



160 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:16:48.33 ]
そもそもこのプログラムはどこから引っ張ってきたのでしょうか?

161 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:20:15.61 ]
>>159
一応 java入門は一通り読んで、
今サーブレットを作成しながら進んでます。Cを少し齧ってたのですが、いいかげん構文読めないと思いました。

入門の本は読んだのですが、どこあたりにこれらの構文の 単語の意味が書いてあるかわからずそれを訪ねています。

>>160
サーブレット入門書を読みながら、今はサーブレットフィルタの設定をしてるところです。 

162 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:22:02.87 ]
>>159
貴殿がおっしゃってることは至極最もだと思いますが、

たとえば、

publicは どこどこに公開することを表していて・・
とか一つの単語ごとに言い切ることは不可能でしょうか?

勿論、それができるなら、分厚い入門書必要ないといわれそうですが。。

163 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:23:32.90 ]
>一応 java入門は一通り読んで、
ほんまかいな、それに後出しは嫌われるとしってるよね

164 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:25:22.35 ]
脳内完結厨房か、お休み

165 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:30:24.45 ]
>>162
importは「クラスの名前を省略したいとき」に使う。

javax.servlet.FilterChain
と書かなければいけない場所があった時に、
import javax.servlet.FilterChain;
を最初に書いておけば
FilterChain と書くだけで javax.servlet.FilterChain を指し示すことができる。

ただしクラス名が衝突する場合はimportはできない。
import javax.servlet.FilterChain; と
import myclass.FilterChain;
を同時に記述するとFilterChainクラスがどちらを指すのかが不明になるので同時にimportすることは出来ない。

publicは「クラスの外側からその要素にアクセスすることを許可する場合」に使う。
publicの代わりにprivateと記述した場合、その要素はそのクラスの中からしかアクセスすることはできない。

166 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:36:27.80 ]
年齢をお聞きしても宜しいでしょうか?

167 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:40:44.53 ]
>>166
今年66になるオジさんです。定年後の趣味としてjavaを習い始めました。

168 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:43:55.05 ]
初心者に教えるにしては随分手の込んだコードだぜ?
インターフェースまで使ってるし

169 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 00:44:17.27 ]
その息子の正志です



170 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 01:02:36.31 ]
>>167
残念ですがここ(2ちゃんねる)は初心者に優しくしてくれるサイトではないです
モチベーションをそがれるだけだと思います
ですので別の場所に助けを求めるか、自力で奮闘することをおすすめします

171 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 01:28:15.59 ]
>>145
ProcessBuilderとかは
標準出力・入力・エラーの3つのストリームを
勝手に作成するから
そいつら使ってないか?

172 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 02:17:19.15 ]
トムキャット7.0.47なんですが、
conf下のweb.xmlに invokerサーブレットの項目がないようなのですが、デフォルトでしょうか?

173 名前:デフォルトの名無しさん [2013/12/12(木) 07:02:25.40 ]
>>172
tomcat3辺の古いのにはあった記憶があるが、
最近のバージョンはセキュリティ上の理由で存在しないと思うよ。

174 名前:デフォルトの名無しさん [2013/12/12(木) 12:26:55.30 ]
JAVA7をインストールしたはずなのにバージョン情報が6表示のままなのはどうしてなんでしょうか?
この7が偽者ってことなんですか?

175 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 12:46:48.61 ]
>>174
両方インストールしてんだろ。

176 名前:デフォルトの名無しさん [2013/12/12(木) 14:08:44.97 ]
>>175
ということは、先に6を手動でアンインストールしないといけないということですか
自動で入れ替えしてくれるものとばかり思ってました(失礼)

177 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 14:23:41.92 ]
>>176
環境書いてないからエスパーになるが、環境変数PATHの設定でそうなってるだけだと思うぞ。設定するかフルパスで指定して実行すれば好きな方を使えるはず。
Javaだけでなく環境の使い方も学んだほうがいいぞ。

178 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 14:55:08.51 ]
OSによって切り替え方法が異なる。

179 名前:デフォルトの名無しさん [2013/12/12(木) 16:13:51.14 ]
>>177
ありがとう、勉強してみるよ



180 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 20:54:16.47 ]
ユーザーJREはside by sideだけどシステムJREはversion新しい方で上書きだからパス通してないだけだろうな

181 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 21:56:01.44 ]
異なるスレッドで扱うため、リストとそれに登録したオブジェクトの操作に対して同期を取りたいのですが
synchronizedListを用いて生成したリストを用いる場合は、以下のような使い方で正しいでしょうか?

SampleClass obj = objList.get(i);
synchronized(obj)
{
  obj.method();
}

リスト操作(addやget)自体はsynchronizedで囲ったりしなくても
synchronizedListで生成してる限りは同期が取れていて、
リストから取得したオブジェクトは別途synchronizedを使って同期取らなきゃ駄目って認識です。

182 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:00:53.53 ]
それはダメだろ
追加されたりしたらインデックスが狂う

183 名前:デフォルトの名無しさん [2013/12/12(木) 22:12:10.95 ]
どういう意味かと悩んでしまいましたが
つまり、下のように書けば問題解決かな…?

synchronized(objList)
{
  SampleClass obj = objList.get(i);
  obj.method();
}

184 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:29:13.51 ]
>>183
iはどっから来るんだ?
for (int i = 0; i < objList.size(); i++) { >>183 or >>181 }
たとえばこれだと、ループ回してる最中にリストの途中へ要素が挿入されたら
同じ要素に対して2回以上methodが呼び出されてしまう可能性があるぞ

185 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:36:08.78 ]
インデックスはそれに関連する変更可能なコレクションがロックされている間だけ有効と考えるのが無難
つまり>>184の例ならforの外側でobjListをロックする

186 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:44:39.26 ]
>>184
なるほど・・・
ループを使う場合は全体をsynchronizedで囲って↓みたくすべきという事ですね

synchronized(objList)
{
  for(int i=0;i<objList.size();i++){ objList.get(i).method; }
}

ループは考えてませんでしたが確かにiだとループカウンタみたいでした。
ループしなければ>>183で大丈夫そうかな?
ループ扱う際にも注意が必要と分かったので助かりました。

187 名前:181 mailto:sage [2013/12/12(木) 22:47:09.34 ]
名前にレス番書き忘れてた
そして>>185の方も補足ありがとうございます。

188 名前:デフォルトの名無しさん mailto:sage [2013/12/12(木) 22:50:29.32 ]
ループでなくてもiを一時的に保持してる以上はズレるでしょ。
仮にiがメソッドの引数なら、結局使う側でロックしなきゃいけない
スレッドセーフ(笑)なクラスが出来上がる。

189 名前:デフォルトの名無しさん [2013/12/13(金) 00:07:42.09 ]
パブリックなメンバ変数のみを持ったクラスを継承して、いろいろメソッドを追加したい
それから、継承元のオブジェクトを元に、継承先のオブジェクトを生成する手段も用意したい

継承元は将来頻繁に変更することが想定されているので、継承先オブジェクトを生成するメソッドで
継承元のすべてのパラメータを列挙してうんぬんというのは避けたいところ

こういうことするのに簡単な方法ってない?
Field使ってやればいけそうだけど、あまりスマートではないなぁと思って

あと、Java的にはメンバ変数の継承はなにか問題あったりする?



190 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 00:13:58.23 ]
www.ipa.go.jp/security/awareness/vendor/programmingv1/a03.html

Javaって怖いね

191 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 00:14:54.97 ]
ゆとり乙

192 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 00:23:46.81 ]
Lombok使ってみたがこれ他の機能との相性は大丈夫なんか?
あとListのゲッターはnullなら新しいArrayList返す実装が好きだからそこが不満

193 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 00:29:14.67 ]
>>189
継承しないで包含する
インスタンスの生成はコンストラクタに渡すだけ

194 名前:デフォルトの名無しさん [2013/12/13(金) 00:50:42.28 ]
>>193

渡したオブジェクトのメンバ変数へどうやってデリゲートすればええのん?
元クラスのメンバ変数の定義変えたときに、先クラスの定義変えるとかはやりたくない
あと、型情報落ちるのもできれば勘弁

195 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:01:21.64 ]
>>194
パブリックなメンバ変数のみを持ったクラス getパブリックなメンバ変数のみを持ったオブジェクト() {
return this.パブリックなメンバ変数のみを持ったオブジェクト;
}
難しく考えるな

196 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:09:25.20 ]
>>194
元クラスのメンバの定義の変化にまで対応するにはメタプログラミングが必要になる

が、到底実用的ではないのでほとんどやってる人はいない

197 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:11:15.66 ]
>>195
お前は状況設定が理解できてないな
「いろいろメソッドを追加したい」と言ってるんだから単なるデリゲートじゃ駄目
元クラスのメンバを利用したメソッドを作り、かつ元クラスのメンバの定義が変更されても追加したメソッドに修正せずに済む方法を求めている
そんなものはメタプログラミングしかない

198 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:14:36.86 ]
>>197
その要件なら包含で満たせるよね

199 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:18:52.01 ]
全フィールドを手でコピーしたりするようなコード書くのは
修正が面倒だから嫌だという意味だろ?
それだけなら包含でいい



200 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:19:03.73 ]
>>198
コンポジションはコーディング時の元クラスのメンバ定義に依存してしまうので、
コーディング後に元クラスの定義が変更されたらそれに対応することは出来ないよ。

201 名前:デフォルトの名無しさん [2013/12/13(金) 01:22:09.17 ]
>>195

すまん、要件が抜けてた
フレームワークの仕様上、持ってるオブジェクトのメンバ変数にアクセスするのに1段で行けないと問題がある
aInstance.getBVariable() や aInstance.bVariable は おkだけど、aInstance.getB().variable は多分ダメ

202 名前:デフォルトの名無しさん [2013/12/13(金) 01:26:16.82 ]
うお、伸びてた

みんなありがとう
なんか難しいっぽいな…
Javaむずいお('・ω・`)

203 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:27:54.73 ]
>>201
その仕様になってる理由は?

204 名前:デフォルトの名無しさん [2013/12/13(金) 01:33:47.98 ]
>>203
フレームワークがライブラリに依存してる

JSONICなんだけど、デコードする際の仕様がそんな感じっぽい
調べきれてないのでもしかしたらなんか迂回策あるかもしれないが…

205 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:36:14.07 ]
>>204
オブジェクト指向を正しく使うためにコーディング規約で制限してるのかと思ったよ

206 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:45:03.37 ]
関係ないけど、javaxにjsonのfactory追加されるな。

207 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 01:50:17.30 ]
問題は内部実装に何使ってるかだな
既存のサードパーティ製のライブラリをjavaxに配置しただけなら特に嬉しくはない

208 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 04:09:03.42 ]
自分は、Androidアプリ作るためにEclipse使ってますが
NetBeansも入れています。
そこで、javaのデスクトップアプリを作るには
どちらを、使ったほうが良いでしょうか。
漠然とした質問で申し訳ありません。

209 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 04:16:10.64 ]
ossforum.jp/node/977



210 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 05:20:16.54 ]
>>209
レスありがとうございました。
javaアプリの開発は、NetBeansでおこないます。

211 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 10:12:54.78 ]
>>207
Factoryだから実装は隠蔽されるだろし、環境ごとに違うだろう。

212 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 12:46:15.22 ]
>>211
JSONのライブラリなんて環境依存な要素がないし、Oracle JDKかOpenJDKかの違いしかないでしょ。

213 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 15:32:04.72 ]
>>212
何言ってんだお前は。どのサードパーティでも隠蔽されるって話だろ。

214 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 15:59:02.96 ]
>>192
とりあえずandroidでは問題なし
allargsコンストラクタ効かないけど。

フィールドに@notnullつければヌルポ投げるゲッター生成可能

使ってないからあまり詳しく知らないが。

215 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 16:15:45.27 ]
>>213
ファクトリーメソッドパターンを使ってオブジェクト指向的に隠蔽するという話ではなく、
物理的に内部実装が隠蔽されるという話?

216 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 16:22:47.46 ]
>>215
物理的の意味がわかりませんが。
xmlのAPIとかと同じ。

217 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 16:28:39.79 ]
>>216
XMLのAPIは内部でどのような実装を使っているか確認できますケド。
ideone.com/l4e1rv

218 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 16:51:28.15 ]
androidはスレちがい

219 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:08:10.51 ]
>>217
どこらへんが物理的かわからない。
情報だけだろ。



220 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:09:54.06 ]
>>216
い み ふ、いみふ

221 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:16:00.54 ]
先ほどから日本語の読み書きに支障が起きている人がいますね。

222 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:17:29.06 ]
隠蔽って依存しないって意味だろ。
確認できたから何だって言うんだ?

223 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:23:22.74 ]
>>222
依存度の話は誰もしていませんよ。
JSONを実装するにあたりサードパーティ製のライブラリを取り入れたのなら、
何を取り入れたのかを確認したいだけです。そこに依存も糞もありません…。

224 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:45:26.75 ]
JSONを実装するのか、偉い

225 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:49:10.70 ]
>>223
なら最初からjar見ろよ。
見て、ふーんで終わりだろ。

コアAPIもソースのauthorで誰が書いたかわかるが、別に気にしないだろう。

226 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 17:55:54.06 ]
>>225
ああ、そのレベルの方ですか。
Java標準ライブラリにはバグや変わった挙動があるので、
サードパーティ製のライブラリを取り入れた場合はそのライブラリの癖を把握しておくことが必須ですよ。

「仕様通りに書いたのに動きません。ライブラリのバグです」は仕事では言い訳にならないからね。

227 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 18:03:08.25 ]
>>226
アホか。
問題あるならfactoryでなくて自分でインストールしたライブラリ使え。

228 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 18:03:16.21 ]
「実装する」の意味がわかんやつにいわれてもなー、国語かな

229 名前:デフォルトの名無しさん mailto:sage [2013/12/13(金) 18:09:04.52 ]
なかなか釣れませんね〜^^



230 名前:デフォルトの名無しさん mailto:sage [2013/12/14(土) 02:25:59.52 ]
xercesとかXalanとかfastinfosetとかJOGLが複数バージョン内部パッケージにあるとかrhinoとかnashornとかもう嫌だ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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