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/
75 名前:デフォルトの名無しさん [2013/12/08(日) 16:33:33.87 ] すみません。でも俺は丸一日この文とにらめっこだよ。助けてほしい。 ●前者と後者で違い 前者 メソッドをオーバーライドさせず、AAA()とBBB()でメソッド名が違う 後者 メソッドをオーバーライドさせ、メソッド名show() ●hoge2の結果 前者 BBB()メソッドは使用できない。 後者 オーバーライドされBBB()メソッドが優先される。 なぜなぜ? >>34 のキャストすればできました。そうゆう対策は知らなかったし理解できました。 そうではなく、なぜこの問題が起こるのかが知りたいです。 これを理解するには宣言と生成の本質の理解が必要と思うんですが、 どこを調べても、宣言はメモリが・・・とかそんな説明ばっかです。
76 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:34:58.63 ] void show()←クラスAにもあるメソッド
77 名前:デフォルトの名無しさん [2013/12/08(日) 16:38:13.22 ] 勉強不足なのは間違いないけど。。。 >>73 >A hoge2= new B(); >クラスAのメソッドしか利用しないって意味だよ でも2番目のプログラムでは、 AAA hoge2 = new BBB(); で、BBBメソッドが呼ばれたよ??
78 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:38:23.68 ] 馬鹿には無理
79 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:38:26.92 ] A hoge2= new B(); メソッドの使用がクラスAに存在するものだけに制限されている つまり void AAA()だけ AAA hoge2 = new BBB(); メソッドの使用がクラスAAAに存在するものだけに制限されている つまり void show()だけ
80 名前:デフォルトの名無しさん [2013/12/08(日) 16:41:09.15 ] >>76 hoge2.show() で呼ばれるのは、クラスAではなくてクラスBですよ。 実行結果から見て。
81 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:42:27.07 ] Javaでわからないことを質問するスレ kohada.2ch.net/test/read.cgi/prog/1363851093/
82 名前:デフォルトの名無しさん [2013/12/08(日) 16:45:12.03 ] >>79 の理屈では、 後者のプログラムではhoge2.show()の実行結果がAAAメソッドになりません?
83 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:46:48.61 ] じゃあこうしよう A村で生まれた子供にはAAAという笛が渡されます。 その笛を吹くとどこからともなく怪人が現れAAAと叫びます AAA村で生まれた子供にはshowという笛が渡されます その笛を吹くとどこからともなく怪人が現れAAAと叫びます なぜ怪人はAAAと叫んだのでしょうか? 笛を吹いた子供がAAA村の子供だと知っているからです。 BBB村で生まれた子供にはshowという笛が渡されます その笛を吹くとどこからともなく怪人が現れBBBと叫びます なぜ怪人はBBBと叫んだのでしょうか? 笛を吹いた子供がBBB村の子供だと怪人は知っているからです。 とても分かりやすい説明だと思う
84 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:49:53.90 ] 追加 B村で生まれた子供にはAAAという笛とBBBという笛が渡されます。 いたれりつくせりです。
85 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:55:56.21 ] どこのコぺペ?w
86 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 16:55:58.77 ] おっと上ミステイクしたかもな。 追加 ある日A村で子供が生まれました。しかし驚くべきことにその子供はB村の子供だったのです。 その子供は残念なことにAAAという笛しか渡されませんでした。 その子供はAAAという笛を吹いてみました。 怪人はAAAと一言言ってさりました。 こどもは寂しい思いをしました。 次の日のことです。 AAA村で子供が生まれました。またまた驚くべきことにその子供はBBB村の子供だったのです。 その子供にはshowという笛が渡されました。 その子供はshowという笛を吹いて見ました。 怪人はBBBと叫びました。 子供は嬉しくて涙がでました。 なぜ怪人はBBBと叫んだのでしょう? それは怪人がその子供はBBB村の血筋のものだと知っていたからです!
87 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:00:36.46 ] ・どこで生まれたかによって渡される笛がきまってしまうこと ・子供は渡された笛を吹くことしかできないこと ・同じ笛でもどの血筋の子供が吹くかで何が起こるかは変わりうること とてもわかりやすい例えだと思う
88 名前:デフォルトの名無しさん [2013/12/08(日) 17:01:42.93 ] ちょっとわかりにくいです。 村は 型を示すのか、オブジェクト型を示すのか
89 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:03:02.54 ] //北斗神拳伝承者、百裂拳(メソッド)を使えます。 class Hokuto{ void hyakuretuken(){...} } //北斗神拳を継承しているので百裂拳を使えます class B extends A{} //北斗神拳を継承、百裂拳をオーバーライドした天翔百裂拳が使えます。 class C extends A{ void hyakuretuken(){/*空中から百烈拳*/} } B kenshiro = new B(); C toki = new C(); //ケンシロウ A denshosha=kenshiro; denshosha.hyakuretuken();//百裂拳が発動 denshosha=toki; denshosha.hyakuretuken();//天翔百裂拳が発動 こういうことだな。
90 名前:デフォルトの名無しさん [2013/12/08(日) 17:04:00.26 ] まちげぇた。class Hokutoをclass Aにかえてくれw
91 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:04:40.94 ] 翻訳例 AAA hoge2 = new BBB(); BBB村の妊婦さんを誘拐しました。 その子供hoge2はAAA村で生まれました。
92 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:07:31.01 ] 荒らすなカス
93 名前:デフォルトの名無しさん [2013/12/08(日) 17:14:01.95 ] わかんねー!
94 名前:デフォルトの名無しさん [2013/12/08(日) 17:19:00.20 ] 勉強ってつまんねぇし身につかないだろ。目的がないから。 ゲーム作りたいとか目的があるプログラミングは面白いし身につく。 プログラミングにまで「勉強」を適用したら人生真っ暗だぜ。
95 名前:デフォルトの名無しさん [2013/12/08(日) 17:19:36.06 ] >>75 A型の変数でB型のメソッドが呼べないのはあたりまえ。 メソッドがオーバーライドされてるときはサブクラスのメソッドが優先される。 そんだけ。問題があるとするならお前の頭。
96 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:27:38.30 ] コンパイル時のメソッド名解決と実行時のメソッド名解決は、 解決される時期が全く別でな… 言語仕様15章12節嫁。
97 名前:94 [2013/12/08(日) 17:28:59.74 ] 物事の本質が見えている奴とは俺のような奴である(キリッ
98 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:29:00.78 ] 荒らすなカス
99 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:31:28.36 ] 荒らすなカスって言ってる奴がカス!
100 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:34:32.63 ] メソッド名とメソッドの中身を切り離して考えればいい 使用できるメソッドが宣言の仕方によって制限される メソッドの実行内容がどのインスタンスに呼ばれたかに依存する そんだけ
101 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:47:07.32 ] コンパイル時の問題と実行時の問題を分けて理解する必要がある コンパイルエラーはプログラムをコンパイルする時のエラーであって、プログラムはまだ1行も実行されていない AAAのオブジェクトもBBBのオブジェクトも生成されていないし、 もし実行されたらそのとき変数hoge3はどんなオブジェクトを指しているであろうか、などといったことは判りはしない だからコンパイル時には、変数宣言の型だけに基づいて、実際に実行せず静的に、エラーチェックをするんだ エラーチェックを通ってコンパイルに成功したら、ようやく実行を始められる 実行時には実際にオブジェクトを生成するし、各変数がどんなオブジェクトを指してるかも判る
102 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 17:56:04.16 ] なんだか思ったよりずっと深い悩みっぽいね 言語設計のレベルの疑問なんかね そうだとしたら知らんですわ javaプログラミングに慣れてない人が突っ込む話じゃないと思うし 突っ込んだところで理解できないレベルの話だと思われる
103 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 18:02:19.70 ] 馬鹿には無理
104 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 18:05:01.80 ] >>75 これのどこが難しいの? class Car{ void drive() { System.out.println("I am just a car."); } } class HyperCar extends Car{ @Override void drive() { System.out.println("I am a hyper car."); } } class SuperCar extends Car{ @Override void drive(){ System.out.println("I am a super car."); } } Car carA = new Car(); Car carB = new HyperCar(); Car carC = new SuperCar(); carA.drive(); // "I am just a car." carB.drive(); // "I am a hyper car." carC.drive(); // "I am a super car."
105 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 18:14:42.57 ] 勉強不足
106 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 19:26:28.59 ] オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。 engawa.2ch.net/test/read.cgi/poverty/1386476617/
107 名前:デフォルトの名無しさん [2013/12/08(日) 21:06:41.95 ] こうするとコンパイルエラーです。 >>104 では、 インスタンスの型側のメソッドが使用できてるのに、下文では、宣言型に依存している。 メソッドを使用できるのはやっぱり、宣言の型側に依存するのですよね。 じゃあ右辺のインスタンスの型は何を意味するのかなって。 class Car{ void drive() {System.out.println("I am just a car.");} } class HyperCar extends Car{ void driveHyper() {System.out.println("I am a hyper car.");} } class SuperCar extends Car{ void driveSuper(){System.out.println("I am a super car.");} } public class javatext5 { public static void main(String[] args) { Car carA = new Car(); Car carB = new HyperCar(); Car carC = new SuperCar(); carA.drive(); // "I am just a car." carB.Hyperdrive(); // "I am a hyper car." carC.Superdrive(); // "I am a super car." } }
108 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 21:08:02.12 ] もうジャヴァなんかあきらめてC#やれお
109 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 21:09:55.49 ] javaのwebスクレイピングプログラムを自作しているのですが、5個のスレッドでとあるサイトに アクセスして情報を取得する処理を数日間続けると1個のスレッドが止まってしまうというような ことに悩んでおります。 原因のわかる方、見当の付く方はおられるでしょうか。
110 名前:デフォルトの名無しさん [2013/12/08(日) 21:15:43.24 ] >>109 ちんちんかゆいんですと泌尿器科に行ってちんちん見せないようなもの。 原因わかるわけないじゃん。ちんちんうpよろ。
111 名前:デフォルトの名無しさん mailto:sage [2013/12/08(日) 21:22:38.71 ] ネットワークで簡単な通信(エコーサーバーみたいなのでも)作ってる時って 根本的にネットワークの仕組み理解してないからしてサンプルプログラムに毛が生えたレベルのものでも どこかに脆弱性あるかもしれんからビクビクしてる バッファオーバーフローとかも解説読んでもピンとこない XSSとかSQLインジェクションはわかる ソフト公開してる人はセキュリティ方面にものすごく自信があるから公開してるってことなの? あれって使用者に何かあったら作成者が責められるよね?
112 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 01:03:04.79 ] >>107 > >>104 では、インスタンスの型側のメソッドが使用できてるのに その理解は間違ってる。 「@Override」の文字通り「上書きされたCarクラスのdrive()メソッド」を呼び出しているだけだよ。 だからCarクラスに宣言されている内容しか見えない。 今回はその内容が一部上書きされているから上書きされたメソッドの結果に置き換わっただけ。
113 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 02:29:55.28 ] >>109 スタックオーバーフローじゃないの? スレッドプールはたまに新スレッドで入れ替え直す方が良い
114 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 18:29:40.41 ] こんにちは。プログラム初心者です(1週間くらい)。 調べてもよくわからないところがあったので質問させてください。 下記のようなコードを書いたのですが、コード下から7行目の(★)引数に関して 該当する行の引数「kei(int x, int y)」とすると、Printlinされる整数値は「8」となりますが、 引数を「kei(int a ,int b)」とすると、出力される整数値は「3」となり、 フィールド値として定義したa,bと、kei()メソッド内の、aとbは別物の変数になってるようです。 main()メソッドと、pri()メソッドは同じ値なのに、なぜkei()メソッドだけそうなるのでしょうか? よろしくお願いします。 public class sam { static int a; static int b; public static void main(String[] args){ a=3; b=5; kei(a,b); pri(); } static void kei(int x, int y){ //(★)引数に関して a=a+b; } static void pri(){ System.out.println(a); } }
115 名前:デフォルトの名無しさん [2013/12/09(月) 18:43:00.50 ] >>114 static int a; static int b; と keiの引数は別だから。
116 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 18:44:23.85 ] 同じ名前の変数が2つあったら、より内側の方を見るから
117 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 18:48:40.84 ] >>115 様、>>116 様、ありがとうござました!とても気分がすっきりしました 1週間くらい悶々でした。どうもありがとうございました^^!!
118 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 19:05:06.20 ] >>111 LICENSE読めボケェ
119 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 19:45:11.04 ] >>117 死ねよ
120 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 20:21:13.45 ] >>119 どの辺が死に値するんだよw
121 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 20:27:13.03 ] >>117 一生すっきりしてろカス
122 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:03:18.82 ] ずぶの素人です。現在サーブレットの入門書を読みながら設定をしています。 トムキャットのほうでエラーがでてるようなのですが、以前までできてた操作ができなくなりました。例えば、以下のURLで以前までは結果がけってきてたのですが、今は帰ってきてません。 localhost:8080/entry/OracleServlet web.xmlにエラーがありそうなので、教科書と比較してみてるのですが、余分な文はいれてないように思います。 具体的にはlocalhost:8080/ ここでトムキャットのHPを映すくとはできます。 localhost:8080/entry/OracleServlet ここになると404 The requested resource is not available. となります。 エラーっぽいメッセージ WEB-INF/web.xml;の解析エラーです。 linenumber 53; columnNumber:9 XMLドキュメント構造は、同じエンティティ内で開始及び終了する必要があります。 startup.ContextConfig parseWebXml 重大:53行目の9列目で発生しました。 前のエラーのためにこのアプリケーションは利用できないようにマークします。 トムキャットのコンソールがコピペできないので、これだけで情報になるかわかりませんが、原因がわかる方いましたら、教えてもらえますでしょうか?よろしくお願いします。
123 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:17:00.54 ] ゆとりってバカだな
124 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:18:42.78 ] web.xmlにエラーて書いてあんだろ
125 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:43:17.95 ] >>123 いや、書いてあることもわかるし、該当の場所もみてるんですが、何が間違えてるかわからないのです。 よって何かアドバイスいただければと思います。
126 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:58:25.70 ] 最近はエラー日本語なのか。でも読まない人には意味ないし、読む人は英語でも調べるから意味薄いな。 >>122 xmlの補助をしてくれるエディタで見れば、すぐわかりそう。
127 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 22:59:10.44 ] >>125 タグの対応がおかしいんだろ。
128 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 23:02:49.01 ] プログラム書くよりデバッグは難しい
129 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 23:15:39.04 ] クライアントよりサーバーのプログラムの方がデバッグは難しい
130 名前:デフォルトの名無しさん [2013/12/09(月) 23:45:29.09 ] all in oneのnetbeans使いやすいなー eclipseは環境を作らなきゃいけないから、めんどい netbeansの方が軽い気がするのは気のせいか
131 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 23:56:03.47 ] >>127 >XMLドキュメント構造は、同じエンティティ内で開始及び終了する必要があります。 このエラーがポイントっぽいのですが、どういう意味を表すのでしょうか?
132 名前:デフォルトの名無しさん mailto:sage [2013/12/09(月) 23:57:03.29 ] すいません。>>131 自己解決しました。 スレ汚し申し訳ないです。
133 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 00:29:29.18 ] >>130 統合されてるのが好きならIntelliJはもっと気に入ると思う
134 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 00:37:43.78 ] トムキャットとjavaの関係を一言で言うとなんですか?
135 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 00:52:17.65 ] 恋人同士
136 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 01:35:33.37 ] すいませんここで聞いていいのか分からないのですが、 Breaking the Towerというゲームができないのです https://mojang.com/notch/ld12/breaking/ メインVista sp2 サブXP sp3 Java Plug-in 10.45.2.18 使用中のJREのバージョン 1.7.0_45-b18 Java HotSpot(TM) Client VM ユーザーのホーム・ディレクトリ = C:\Documents and Settings\pc java.lang.ArrayIndexOutOfBoundsException: 1 at com.mojang.tower.HighscoreManager.getTopScores(HighscoreManager.java:40) at com.mojang.tower.TowerComponent$2.run(TowerComponent.java:138) Failed to get highscores セキュリティレベルを中、次世代のJava Plug-inを無効、Javaキャッシュ削除し、 ブラウザをFirefox25、Chrome31、IE8と変えてみましたが、 どうやっても最初のタイトル画面が表示されて止まった(固まった)ままで動きません ご教示ください
137 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 01:54:54.98 ] ゲーム作った奴に報告しろ
138 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:13:25.08 ] echo.jsp <%@page contentType="text/html; charset=Windows-31J"%> <HTML><BODY><H2>EchoServletの入力</H2> <FROM ACTION="../servlet/input.EchoServlet"> <INPUT TYPE="TEXT" NAME="message"><INPUT TYPE="SUBMIT"> </FORM> </BODY> </HTML> EchoServlet.java package input; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class EchoServlet extends HttpServlet { public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {String msg = request.getParameter("message");response.setContentType("text/plain; charset=Windows-31J");PrintWriter out = response.getWriter(); out.println("message=" + msg);}} この二つのファイルを置いてコンパイルを実行したところ、jspで呼び出したボタンを押しても、ボタンが反応しないのですが 原因わかる方いますでしょうか?
139 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:22:19.73 ] ゆとりってバカだな
140 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:28:03.23 ] >>139 そんな簡単な間違え犯してますでしょうか?
141 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:30:06.78 ] やってましたwwwwwwすいません。
142 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 04:31:02.39 ] ありがとうございます。
143 名前:136 mailto:sage [2013/12/10(火) 07:42:07.80 ] >>137 あ、みなさんも動きませんか 数年前からあるらしいのでjavaのバージョンが進んで動かなくなってるのかな ありがとうございました
144 名前:デフォルトの名無しさん mailto:sage [2013/12/10(火) 08:40:42.52 ] トムキャトは俺の横で寝ている
145 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 01:06:31.10 ] close関数を呼んで明示的にリソースを閉じているのに 長期的に動作させるとtoo many open fileとなってしまいます。 Javaではclose呼んでも閉じないことがあるのでしょうか?
146 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 07:12:15.34 ] >>145 throwで飛び越えてるとか。 Finalyでcloseしてるか?
147 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 07:46:45.51 ] closeしてるつもりで できてないとしか思えんな
148 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 15:51:39.62 ] FirefoxでAppletの扱いがさらに酷いことに… Appletってなんとかならないのかね?まだ使っているんですけど…
149 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:07:58.17 ] import java.io.PrintWriter; って API として、何かを呼び出してるのでしょうか? 初心者なんですが、ほかにも import javax.servlet.servletexception とか、何を表してるのか知りたいのですが、わかるような本、もしくはサイトありますでしょうか?
150 名前:デフォルトの名無しさん mailto:sage [2013/12/11(水) 23:10:18.73 ] 「Firefox 26」(!!!!!!)公開、すべてのJavaプラグインの起動にクリックが必要に engawa.2ch.net/test/read.cgi/poverty/1386757688/ 【悲報】Firefox26.0リリース engawa.2ch.net/test/read.cgi/poverty/1386690380/
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とかもう嫌だ