- 1 名前:デフォルトの名無しさん [2007/06/27(水) 07:23:27 ]
- プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド102【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1180419689/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 次スレは>>980あたりで。
- 825 名前:デフォルトの名無しさん [2007/07/21(土) 01:01:23 ]
- 参考書とりあえずやったんですけど、どうすればいいですか?
後はAPIっていうのを見ながらやるんですか?
- 826 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:04:09 ]
- >>126は具体的にどのように実装するのか教えていただけませんか。
- 827 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:43:16 ]
- >>825
何か作りたいから Java 勉強したんじゃないの?
- 828 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:09:46 ]
- >>825
やったのは単なる入門書で文法を学んだだけじゃないの? 参考書ってのは何かを作るときに参照するものだよ 特に作りたいものがないならばゲームでも作ってみるのがいいんじゃね GUI関連は業務じゃ使う機会少ないけど、デザインパターンとか設計力を鍛えるには一番だとばっちゃんが言ってたよ
- 829 名前:デフォルトの名無しさん [2007/07/21(土) 03:53:11 ]
- >>825
この辺りで宿題解いてみるのもいいと思うよ。 ★★ Java の宿題ここで答えます Part 62 ★★ pc11.2ch.net/test/read.cgi/tech/1184509890/1-100
- 830 名前:825 [2007/07/21(土) 12:52:27 ]
- >>828
>>829 ありがとうございます。参考になりました。
- 831 名前:788 mailto:sage [2007/07/21(土) 14:44:46 ]
- >>795-796
レス遅くなりましたが、 これ使わせてもらいます。 ありがとう。
- 832 名前:デフォルトの名無しさん [2007/07/21(土) 15:22:58 ]
- サーブレットを覚えたてです、家でも勉強しようと思って、tomcatをインストールしたのですが
どうしてもindexに繋がりません、過去に習ってた時の学校では自分でインストールできたのに スタートさせてもアイコンはミドリの▲になるのに、右クリックをするとストップStopではなくStartが押せる状態になっています Tomcatは5.5、Javaは1.5 OSは2000XPでも2000Proでもどちらも同じ現象でダメでした XPのファイアーウォールを無効にしても無理でした 環境設定のPathは教室でインストールした時に、テキストファイルで貰っていたのをコピペしなおしても無理でした これ以上どう足掻いていいのか分かりません
- 833 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:29:56 ]
- //A
class Hoge{ static void piyo(){} public static void main(String[] arg){ piyo(); } //B class Hoge{ Hoge(){ piyo(); } void piyo(){} public static void main(String[] arg){ new Hoge(); } Aのように書かずBのように書けば、piyoメソッドにstatic修飾子をつけなくてもよくなりますよね こう書くことになにか問題はありますか?
- 834 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:57:32 ]
- >>833
修飾子についての理解が不十分 staticをつけたメソッドはインスタンス化しないでも使えるが、 Bのpiyoメソッドはインスタンス化しないと使えない。
- 835 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:36:23 ]
- >>832
Eclipse上? 今のTomcatなんてインストーラーに従ってインストールするだけだろ?
- 836 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:37:18 ]
- ちなみに環境変数のPathだのCLASS_PATHは下手にいじるなよ
- 837 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:05:10 ]
- >>834
うまく言えんけど、おそらく833は 「mainメソッドで呼ぶ」という理由だけでstatic修飾子をつけるのはおかしいのでは? と考えた結果思いついたんじゃないか? 833への答えは持ってないけど、834の答えが的外れな気がしたんで口出し 834のであってたらすまん
- 838 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:20:47 ]
- >>833
たしかにAもBもpiyo()が実行されるという一点では同じなんだけど、 piyo()は本当にコンストラクタ内で処理すべき機能なのか考えるべき。 AとBではpiyo()やHogeクラスの意味合いが異なってくる。 piyo()が単にstaticメソッドから呼ばれるだけの下請け的存在ならAで十分だし、 Hogeをインスタンス化する必要がありかつpiyo()がインスタンス生成段階で必要な処理ならB。 class Hoge{ void piyo(){} public static void main(String[] arg){ Hoge h = new Hoge(); h.piyo(); } } こう書くのが適切な場合だってある。 何を実現するためにどうクラス設計をするかを考えてpiyo()の立ち位置を決めておくれ。
- 839 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:24:31 ]
- 優等生的回答
class Hoge{ public static void main(String[] arg){ Hoge hoge = new Hoge(); hoge.piyo(); } void piyo(){} }
- 840 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:42:46 ]
- newってのが何者かを勉強するといいと思う
単純にfor文とif文を駆使したプログラム入門ならば、全部staticでnewは配列作るときくらいしか使わないでOK クラスとか勉強する段階でnewを覚えるべきだが
- 841 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:07:22 ]
- >>832
localhost:8080/index.jsp でだめだったのかい? localhost:8080/manager/html ではどうだい?
- 842 名前:デフォルトの名無しさん [2007/07/21(土) 19:13:53 ]
- >>835
私もそう思ってたのでびっくりです >>836 CLASSPATHを作ってservlet-api.jar;.の位置を入れました ↑は自分で打ったけど、パソコンに入れたのは成功した教室のPCからのコピペなんで間違いはないと思います >>841 そこ自体がダメです タスクのアイコンがスタート状態になってても、ストップできずスタートがあるということは、スタートできてないんだと思う
- 843 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:21:23 ]
- >>842
CLASS_PATHを消せ 次にコマンドプロンプトからjava -version を打ってversionを確認せよ その上で再インストールして来い スタートできないならばログも嫁
- 844 名前:デフォルトの名無しさん [2007/07/21(土) 19:29:52 ]
- >>843
おかげで使えるようになりました ありがとうございました 前に入れたバージョンが残っててそっちを設定してたっぽい ゴメンナサイ 私は、恥かしい間抜けです
- 845 名前:デフォルトの名無しさん [2007/07/21(土) 21:23:30 ]
- ,===,====、
_.||___|_____||_ .. / /||___|^ l .. 答えろ ぶち殺すぞ!> (・ω・`)//|| |口| ||ω・` ) . ./(^(^ .//||...|| |口| |⊂ ) . / // ||...|| |口| ||し 新スレです . あ?てめぇどこ中だよ>( )//.... ||...|| |口| || 楽しく使ってね /(^(^ // .... .||...|| |口| || 仲良く使ってね "" :::'' |/ |/ '' " ::: ⌒ :: ⌒⌒⌒ :: "" ` :: ,, ::::: ,, ; ̄ ̄ ̄ "、 :::: " ,,
- 846 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:10:34 ]
- サーブレット書いてるんだけど、
doGetとdoPostあるじゃん。 どちらか一方に処理全部書いて、もう一方にはdoPost()かdoGet書けば いいだけなんだろうけど。 これでいいのか? てゆうか、分けて書くことってあるの?
- 847 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:18:16 ]
- >これでいいのか?
いい。 >てゆうか、分けて書くことってあるの? 使い方による。
- 848 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:41:17 ]
- 例えばリクエストにGetを許可しないケース
- 849 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:00:41 ]
- 初心者です。javaのGUIアプリケーションってデザイン的によくないイメージがあるのですが、
見た目にこった実装ってできるのでしょうか? 例えば、ウィンドウを3D間隔で操作できるとか、swingコンポーネント等でも デザインが柔軟に変更できるとか。OS依存でも構わないです。(できればWindows) その他なんでもよいのですが、おもしろいデザインにするための技術情報など教えていただきたいです。
- 850 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:04:51 ]
- LookAndFeel(ようはスキン)を自作することはできる。
Swing synthでぐぐってみたら?
- 851 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:06:04 ]
- >>849
やろうと思えば3Dだろうとなんだろうと可能だが、簡単に出来るわけじゃない 単純に派手なUIが欲しいってのならば方向性は違うだろうね Eclipseで使われているSWTなんかを使えば簡単にWindows風のUIも可能 Swingだって6.0で大幅にパフォーマンスも向上しているから捨てたもんじゃない ただし、作るにはそれなりのセンスと時間が必要
- 852 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:26:17 ]
- >>850
htmlとcssみたいな関係なのでしょうか?調べてみますm(__)m >>851 javaを勉強し始めてから早一年経ちましたが、人の作ったライブラリを呼び出すだけの人になってますorz ちなみに最近netbeansを使ってGUIの作成ってやってみたのですが、VBチックで楽だなぁと思ったのですが 同じようなものなのかな? SWTなるもの調べてみますm(__)m
- 853 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:54:31 ]
- >>852
SwingなりSWTはツールを使わずに習得した方がいい 自然とOOPでの設計力が付くぞ
- 854 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:54:58 ]
- programming base .javaとか言うのを学校で使って
家でもちょっとやりたいと思ってるのですが、 家では開けず、あぁーなんかダウソしないといかんのかぁー。となっとります。 ほんとに初歩の初歩の質問で申し訳ないのですがどなたか教えて頂けるとありがたいです。 えー、ちなみに void on Idle とか使ってた奴です。(何だこの説明。。。
- 855 名前:デフォルトの名無しさん [2007/07/21(土) 23:57:39 ]
- JRE Version 6 Update 2 のインストーラーで質問。
ttp://www.java.com/ja/download/index.jsp ↑ここから辿ってダウンロードできる jre-6u2-windows-i586-p-s.exe と ttp://java.sun.com/javase/ja/6/download.html ↑ここの「Java Runtime Environment (JRE) 6u2」のダウンロードから辿って ダウンロードできる jre-6u2-windows-i586-p.exe の違いが分かる人いますか? 両方ダウンロードするとどちらも 14,566,808 バイトだけど、バイナリ比較すると一致しない…
- 856 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:15:19 ]
- >>853
ですね。。正直今の段階だと自動生成されたソースが何をやっているのか分からない状態です。 GUI開発が熟練してからツール使うことにします^^;
- 857 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:12:13 ]
- >>854が釣りかエスパーか判断できないので誰か支援頼むw
>>856 まあ、netbeansの吐くコードは汚いね。 いまさらSWT使う利点なんてないよ。 5.0/6のVMは早いし、SwingのSystemLnFもネイティブコードの呼び出し増えて見栄えもかなり近いし。 普通に使う分にはVMのメモリを多めに取ればSwingもSWTもたいして速度変わらん。 それに今時Swingで十分な速度でない環境だとjavaそのものが遅いし。 ここら辺のおかげでnetbeansがかなり使えるようになった。 SWTはjava風じゃないところがあるからまずはjavaを覚えた方が良い。
- 858 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:49:52 ]
- これを応えられるほどの凄腕エスパーは世界に3人といないだろう
- 859 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 02:55:56 ]
- SWTって自分でメッセージループ回してるところがWindouzuっぽくて嫌だ
- 860 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 09:19:55 ]
- ちゃんと授業を聞いている学校のクラスメートだったら分かるんだろうな
- 861 名前:816 mailto:sage [2007/07/22(日) 14:51:24 ]
- >>817
おお、うまくいきました。 Graphicsクラスからしか取得できないと思っていました。 ありがとうございました。
- 862 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:01:53 ]
-
JFlexとJacでちょっとしたもの作ろうとおもってるんだけど、 ビルドをeclipse上で自動化したい場合ってどうすればいいの?
- 863 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:03:05 ]
- ×jac
○jay
- 864 名前:862 mailto:sage [2007/07/22(日) 17:47:46 ]
- 申し訳ございません。
eclipseのスレがありましたのであちらで質問します。 ありがとうございました。
- 865 名前:デフォルトの名無しさん [2007/07/22(日) 20:10:02 ]
- 英語と日本語が混ざった長文をテキストエリアなどに表示される場合、
正確に一画面文の文字数をカウントすることをご教授願います。 フォントサイズから一画面の文字数を数える場合、 英文が入るを正確にカウントできません
- 866 名前:デフォルトの名無しさん [2007/07/22(日) 20:14:06 ]
- できるよ。
文字数を読むメソッドがある
- 867 名前:デフォルトの名無しさん [2007/07/23(月) 02:05:51 ]
- >>846
通常、POSTとGETは使い分けるよ。使う目的も違うし、HTTPにおけるパラメータの 送信方法も異なってくる。また、Tomcatの場合はHttpServletRequestのsetCharacterEncodingは GETパラメータには利かない。(※いくつかの設定は存在する) Servletを学習するなら、同時にHTTPについて学習するのはすごく有意義だし、Web上に色々参考に なる記事が沢山落ちてるから、まずはPOSTとGETは具体的に何が違うのかを学習すると良いと思うよ。
- 868 名前:デフォルトの名無しさん [2007/07/23(月) 09:13:08 ]
- ちょっとでも、お役に立てれば。
↓ www.yukinko-net.jp/
- 869 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:23:50 ]
- Rhinoの質問いいですか。
Rhinoでコマンドライン用のスクリプトを書こうとしているのですが、 コマンドライン引数の取り方が分かりません。 RubyでいうところのARGVです。 Rhino argv で検索しても C のソースしか引っかからないし。 どなたかお願いします。
- 870 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:32:59 ]
- args
- 871 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:57:16 ]
- >>869
RhinoはJavaによるJavascriptの実装だから、実装内容に関わるような話ならこのスレかもしれないが、 単なるスクリプトプログラミングについてここで聞くのはスレ違い。 ある言語について質問する時に、その言語の処理系が何で実装されているかに関わらず、 普通はその言語のスレで質問するだろ?
- 872 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:57:53 ]
- >>870
argsは定義されていないようです。 print(args); //=> ReferenceError: "args" is not defined. Rhinoは1.6R5です。
- 873 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:01:36 ]
- >>871
JavaScript一般の話ではなく、あくまでRhino固有の話なので、JavaScript関連のスレではなくここで質問しました。 Rhino専用のスレはないし、RhinoはJava6から標準装備ですし、ここが一番適切ではないでしょうか。
- 874 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:39:30 ]
- >>871
JavaScriptのスレでこんなもんわかるやついるわけないだろ。Javaスレ行けっていわれるのがオチ。
- 875 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:53:57 ]
- >>874
じゃあお前が答えてやれよ 俺はRhinoは嫌いだ >>869 arguments
- 876 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:07:55 ]
- >>869
jrunscript で実行してるなら arguments で取れるはず。 そうでない場合は、自前でScriptEngineにセットしないとダメなんじゃね? scriptEngine.getBindings(ScriptContext.ENGINE_SCOPE).put("arguments", args);
- 877 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:26:41 ]
- >>875,876
argumentsでとってこれました。ありがとうございました。 ちなみにこういった情報はどこで見つけるものなんでしょうか。
- 878 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:30:03 ]
- >>877
java.sun.com/javase/ja/6/docs/ja/technotes/tools/share/jrunscript.html
- 879 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:59:42 ]
- >>874
呼んだ? おまえら少しはEcma Scriptスレに顔出して上げてください。 ネタがないんで普段は実装と仕様の差異の話で盛り上がっとりますよ。 SpiderMonkyが人気ないからRhinoで持ちきりなんだが・・・。 java6のRhino劣化品。いらない子。 >>878 それmozillaのdocの劣化コピペだからmozillaの開発者向けサイトかRhinoのdocに全部書いてある。
- 880 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 16:28:58 ]
- >>879
一応別のツールだから劣化コピペとは言い切れないんじゃね? Rhino のツールでは -l でスクリプト言語指定したりできないっしょ。
- 881 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:51:12 ]
- いやjdk6に入ってるjs.jarはスループット優先でRhinoの機能かなりとっぱらってサイズ減らしてるんだよ。
さらにコンパイラ省かれてるから一切最適化されてない純粋なインタープリタで動いてる。 Rhinoのドキュメントに組み込みガイドがあって そこにスループット優先でビルドする手順が書かれてるんだけどそれと同じ事してる。+JavaAdaptorが劣化。 jrunscriptはそのRhinoのScripting APIに従った純粋なラッパー。 Rhinoの殆どの実装クラスがjavax.script.*じゃなくてcom.sun.*にあるから自分でJSオブジェクト実装とかクラスシャッターでセキュリティ制限とかできない問題もある。 ecmaスレで詳しい話題が出てるよ。
- 882 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:26:28 ]
- >>881
javax.script は Rhino とは別物だよ。 で、jrunscript と org.mozilla.javascript.tools.shell も別物。 だから jrunscript の、より詳しいドキュメントとして mozilla のドキュメント読めというのはダメ。
- 883 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:29:23 ]
- >>869はjrunscriptとはいってないだろ。
Rhino1.6R5と言っただけ。Rhinoがjavaの実装で6から標準装備だからこっち来たと。 >>876が勝手にjrunscriptと言い出しただけだろ。だからecmaスレ行けって。
- 884 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:37:36 ]
- >>883
俺は >>879 にレスつけただけなんだが。なんで >>869 の話が出てくるんだ?
- 885 名前:デフォルトの名無しさん [2007/07/24(火) 01:27:16 ]
- Rhinoってなに?
- 886 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:39:57 ]
- どっかの誰かさんが作ったjavaのライブラリ
- 887 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 02:51:47 ]
- >>884おまえ上の流れくらい読めよ。馬鹿だろ?
- 888 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 02:53:20 ]
- jdbcのドライバのロードを static { } 内に記述して一度だけ実行するようにしたいんだけど、
これって可能なんでしょうか。コードは以下のような感じ。 class Hoge { static { try { Class.forName("org.postgresql.Driver");
- 889 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:00:58 ]
- 誤爆
class Hoge { static { try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException e) { throw new InternalError(e.getMessage()); } public static Connection open() { Connection conn = DriverManager.getConnection("foo", "bar", "baz); return conn; } // 以下略 } コンパイルエラーは以下。 [javac] シンボル: 変数 DriverManager [javac] 場所 : Hoge の クラス [javac] Connection conn = DriverManager.getConnection("foo", "bar", "baz"); [javac] ^ [javac] エラー 1 個
- 890 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:06:50 ]
- 静的初期化子の中のcatch節の終了の}が無い
- 891 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:07:07 ]
- >>889のソースコード、改めてみるとなかなかひどい抜けがあるけど勘弁してくれ。
クラスパスが通ってないのかなと思って servlet-api.jar にも classpath を通してみて HttpServlet を継承しただけのコードを書いてみたけど、こちらは問題なかった。 ビルドに用いている ant の build.xml のクラスパスの部分は以下。lib/ 内には postgresql.jar が配置されている。 <target name="compile"> <mkdir dir="${bin.dir}" /> <javac srcdir="${src.dir}" destdir="${bin.dir}"> <classpath> <!-- <fileset dir="lib"> <include name="*.jar" /> </fileset>--> <pathelement location="lib/postgresql.jar" /> <pathelement location="/usr/share/tomcat5.5/common/lib/servlet-api.jar" /> </classpath> </javac> </target>
- 892 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:13:33 ]
- >>890
取り急ぎ書いたんで抜けた。すまん。他にも "baz" の終わりの " が抜けたりしてる。 手元のコードはちゃんとしてるから大丈夫。
- 893 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:17:47 ]
- そして>>889にはったエラーメッセージに肝心のエラーメッセージがはってないな。
DriverManagerに対して 「シンボルを見つけられません。」 というメッセージです。
- 894 名前:888 mailto:sage [2007/07/24(火) 03:20:11 ]
- 解決しますた。
DriverManagerってずっと postgresql.jar の中にあるクラスと思ってたら java.sql.DriverManager だったのな。。。
- 895 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:21:33 ]
- >>892
import java.sql.DriverManager;してる?
- 896 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:23:38 ]
- 遅かったorz 解決して何より
まあシンボルが見つからないエラーは完全名を指定できていないミスが多いからね
- 897 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:23:59 ]
- まさに今同じミスをやらかして修正に追われていた。
Eclipseの補完機能に頼りすぎておんなじ名前のメソッド入った パッケージがこんがらがるとこういうことになる。
- 898 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 04:14:49 ]
- 設計時に使うパッケージは大方分かってるからワイルドカードでインポートして
クラス名が被るのは限定名でアクセスしてあとから「インポートの編集」すると混乱が減るよ。
- 899 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 06:42:38 ]
- インポートのワイルドカード嫌う人おおいみたいだけどなんで?
コンパイル遅くなるから? 実行時にも遅くなる? import *; ができないからどっちもどっち?
- 900 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:30:15 ]
- importの意味を知っていれば実行時に遅くなるなんて台詞は出てこないはずだぞ。
- 901 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:44:01 ]
- >>899
importは「このクラスはこいつらに依存してますぜ」というある意味クラスの設計情報みたい なもの。仕様変更やデバッグするときに鬼のようにimport hoge.*;とか書かれまくっていきな りプログラム中でクラスが使用されているとどのクラス追いかけたらいいのかわからなくなる。 でっかいシステムなら尚のこと。 俺の場合作る手間より直す手間を減らすため、かなぁ。
- 902 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:00:23 ]
- importなんて久しく意識してないな。eclipseが勝手に完全名書いてくれるからねえ
- 903 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:03:03 ]
- import hoge.* でもIDEのサポートでどのパッケージはわかるから別に困らんし、
使うオブジェクト全部をimportで指定するのは面度だが、 これもIDEのサポートでさほど手間でもない。 どっちでもいい気がするが、プロジェクトのやり方に合わせるのが基地。
- 904 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:16:44 ]
- 入門向け書籍でサンプルコードを1行でも削るために使用されてるだけじゃね?>import の *
- 905 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:31:57 ]
- importで*を使うと実行速度が低下するって聞いたんだけど本当?
- 906 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:37:36 ]
- >>905
>>900
- 907 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:51:50 ]
- 遅くならないの?
- 908 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:54:42 ]
- コンパイル時に解決されるのに、実行時に影響があるわけが
- 909 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:04:52 ]
- あーそうだね
やっとわかった ごめんね
- 910 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 16:56:27 ]
- けど無駄なリンクが発生するから要らないリンク時間がかからない?javaって動的リンクだし。
まあ、無駄なアクセスがあればの話だけど。
- 911 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:00:45 ]
- 全然分かってないじゃないか
- 912 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:02:19 ]
- importじゃなくabbreviateとかそんな予約語だったほうが良かったのかな
- 913 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:12:23 ]
- >>910
hoge.Hegeクラスを参照しているソースファイル中で、 import hoge.*; とやった場合と、 import hoge.Hege; とやった場合でコンパイル後のclassファイル中のHegeクラスの名前の指定の相違点を確認。
- 914 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:33:39 ]
- import a.*;
import b.*; とかなってるときに、 パッケージ b 内にしかなかったクラスの名前と同じクラスをパッケージ a に追加すると、 追加したところとは異なるところからコンパイルエラーが発生してびびる もっとも、たまたまシグネチャが合ってエラーが発生しなかったらと思うともっと心配かも
- 915 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:38:57 ]
- 無駄なリンクが発生するので、たぶん
要らないリンクに時間が掛かります(コンパイルに)
- 916 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:56:13 ]
- クラスサイズが大きくなるってのは?
- 917 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 20:11:12 ]
- ならないよ
コンパイラの名前解決時に影響するだけ コンパイル後はまったく一緒、クラスファイルにはフルネームで格納される
- 918 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 20:15:09 ]
- >>915-916
無駄なリンクなんて発生しねえしサイズも大きくならねえよ importは単にこのクラスもしくはパッケージからクラス定義を拾ってこいっていうコンパイラへの指令 コンパイラの実装次第でワイルドカードを使った時のクラス検索の効率に差が出るかもしれんが
- 919 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:06:32 ]
- import * ワロタ
どこの都市伝説だよw
- 920 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:43:08 ]
- import *;
永遠に compile oh what a night in jamaica!
- 921 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:43:17 ]
- すべてのパッケージからクラスを探し出すのか
- 922 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:11:46 ]
- 結局クラスパス上になければコンパイルエラーだし
クラスパス上にあるなら import *; でも探すことはできるはず。 importってコンパイルを手助けしてあげるためにあるのか? >>901の意味合いももちろんわかるけど。
- 923 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:15:11 ]
- Javaのバージョンを変えてリコンパイルし直すと、ソースいじってないのにファイルサイズ増えるよね。
これってバージョンがあがってリンク先が増えたからだと思ってた。 富○通正社員の俺 協力会社の新人に笑われたorz
- 924 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:18:12 ]
- 大丈夫落ち込むほどYOUの会社の評価は高くない。
- 925 名前:デフォルトの名無しさん [2007/07/25(水) 03:05:55 ]
- そしてなにより板の空気をよめない
923は最悪
|

|