★★Java質問・相談スレッド142★★
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/11/19(金) 03:05:30JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/ [板をp2で開く]
Webプログラミング http://pc11.2ch.net/php/ [板をp2で開く]
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
★★Java質問・相談スレッド141★★
(p)http://hibari.2ch.net/test/read.cgi/tech/1286354820/
次スレは>>950あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
(p)http://www.wikiroom.com/java/
0655645
2011/01/06(木) 22:48:04クラス jp.co.google.www.hellow.Main.class を実行する時は
cd /home/user/;java jp/co/google/www/hellow/Mainとやらないと
*.classを実行することができない(IDEでやってたので知らなかった..)
でも、それじゃ面倒なので
java jp.co.google.www.hellow.Mainで実行すると、↑と同じことをやってくれるってことですね
jp.co.google.www.hellowって入力するの、ちょっと面倒ですね
これで、クラスパスはOKでしょうか
0656デフォルトの名無しさん
2011/01/06(木) 22:49:19もしかして、javaからプログラミングやり始めた人間?
.netの方がスラスラとプログラムを作っていくことができるよ
0657デフォルトの名無しさん
2011/01/06(木) 23:00:200658デフォルトの名無しさん
2011/01/06(木) 23:05:050659デフォルトの名無しさん
2011/01/06(木) 23:11:48それ、誰に行ってるの?
0660デフォルトの名無しさん
2011/01/06(木) 23:14:38結局何が違うわけですか?
どっちもtomcatは必須ですか
0661デフォルトの名無しさん
2011/01/07(金) 00:15:54そうなのか
じゃあ.Netもやってみるよ
ただwebのサイトを作りたいと思ってるからjavaも勉強した方がいいよね?
アプリケーションでもアプリでもいいから初歩から始められる本があればいいんだけど・・・
しかしjavaの本は皆高いな
図書館にも置いてないし
0662デフォルトの名無しさん
2011/01/07(金) 00:19:04とっくに終わった技術だよ
0663デフォルトの名無しさん
2011/01/07(金) 00:28:13こんな感じのサイト
javaじゃ駄目かな?
0664デフォルトの名無しさん
2011/01/07(金) 00:43:560665デフォルトの名無しさん
2011/01/07(金) 00:54:47書き方。
書き換えが必要なところだけを効率よくかけるようにしたのがjsp
PHPでもHTMLをはき出すのは同じなんだけどな。
tomcatが必須なわけじゃない、サーブレットコンテナとよばれるものがあれば。
ほかにもJettyやらResinとかがある。
0666デフォルトの名無しさん
2011/01/07(金) 02:05:53jspは初回アクセス時にコンパイルされて
servletに変換されてるぞ
workを覗いてみれ
0667デフォルトの名無しさん
2011/01/07(金) 09:50:37この選択は間違ってないのだろうか
0668デフォルトの名無しさん
2011/01/07(金) 10:05:18PHPのほうがハードルが低いのは確かだろうけど
0669デフォルトの名無しさん
2011/01/07(金) 11:27:13とはいえ、それに見合った速度は出るはずだが。
昔はサーブレット動かそうとすると、専用サーバぐらいしか選択肢がなかったが、
GAE/JとかVPSとかで安く出来るようになったから嬉しい限りだ。
0670デフォルトの名無しさん
2011/01/07(金) 13:10:43時代遅れ
webと言えばJavaなのはサーバー側の話。アプレットはクライアント側。
アプレットなんてJREが入ってないと動かないから嫌われるよ
0671デフォルトの名無しさん
2011/01/07(金) 16:18:18FlexのほうがFlashプラグインだけで済むから楽だな。
HTML5で行くっていうてもあるな。iphoneでもできると宣伝できる。
0672デフォルトの名無しさん
2011/01/07(金) 17:00:57マークアップ言語とそれようのスクリプト言語、ブラウザを自作したいぜ
0673デフォルトの名無しさん
2011/01/07(金) 17:11:0302|{
03| // final が付いていないメソッド宣言たくさん、抽象メソッドたくさん
04|}
05|
06|public class Concrete extends ManyMethods
07|{
08| public int get(){} // オーバーライドしたくないメソッド
09|}
このような場合に
Concrete#get() のメソッド名が衝突していると
警告やエラーを発してくれる
キーワードやアノテーションってありますか?
ManyMethods の方はライブラリになってて final を付けたりできず
またオーバーライドされる事を想定したメソッドもあったりして
ManyMethods を変更せずに何とかしたいです
御教授よろしくお願いします
0674デフォルトの名無しさん
2011/01/07(金) 17:58:28間にもうひとつクラスを挟む
public abstract class ManyMethods {
...
}
public abstract class ManyFinalMethods extends ManyMethods {
public final int get() { return super.get(); } // オーバーライドしたくないメソッド
}
public class Concrete extends ManyFinalMethods {
...
}
0675デフォルトの名無しさん
2011/01/07(金) 19:06:230676デフォルトの名無しさん
2011/01/07(金) 19:33:260677デフォルトの名無しさん
2011/01/07(金) 19:45:520678デフォルトの名無しさん
2011/01/07(金) 21:40:31eclipseのメソッド補完中に出てくるコメントとか、しょうがなくhtmlのjavadoc読んで、
その結果遅いわけだろ?
IDEとの連動性とかその他の再利用性を考えるとXML+XSLTとか、いっそjson+html
の方が断然有意義なはずなのに。
0679デフォルトの名無しさん
2011/01/07(金) 22:00:490680デフォルトの名無しさん
2011/01/08(土) 08:42:10異なるメソッドで定義されたインナー・クラス内で非 final 変数 a を参照できません
となるのですがfinalだと参照できるというのがよくわかりません。
どういうことなんでしょうか?
0681デフォルトの名無しさん
2011/01/08(土) 09:02:39その変数の値を内部クラスの中にコピーして保持おけば、そのコピ−の方は参照できるが、代入とかして変更しても当然コピー元は変更されない
非finalな変数をこのように暗黙のうちにコピーして保持すると代入したときにこのような見ため矛盾が生じるのでそのようなことは出来なくした
finalな変数なら代入できないから矛盾は発生しないのでそのようなことを出来るようにした
0682デフォルトの名無しさん
2011/01/08(土) 09:11:13ありがとうございました
0683デフォルトの名無しさん
2011/01/08(土) 17:54:54(1) List<String> getNames();
(2) List<String> getNameList();
メソッド名に返り値の型名まで入れるのは野暮な気がするので、(1)かなぁと思
いつつも、もしString[]を返すメソッドも欲しくなった場合を考えると区別す
るために(2)かなぁとも思うんですが。
(2) List<String> getNameList();
(2') String[] getNameArray();
0684デフォルトの名無しさん
2011/01/08(土) 17:59:30受け側でたまたま配列が欲しいからってクラスの方に追加するのはよくないと思う
List<String>で受け取った後で自分で変換するべき
0685デフォルトの名無しさん
2011/01/08(土) 18:10:32気分で決める
だけど
> もしString[]を返すメソッドも欲しくなった場合を考えると
そんな無駄なことまで考える必要はない
実際にそのメソッドが欲しくなってから考えればいいことだ
0686デフォルトの名無しさん
2011/01/08(土) 18:32:56受け取った側がList<String>からString[]に変換するとコピーが1回ふえること
になりますよね?性能面でのデメリットが有るように思います.
>>685
String[]を返すメソッドが欲しくなってから追加した場合は、
List<String> getNames();
String[] getNameArray();
な感じで統一感が失われてなんか格好良く無い気がします.
つまり野暮だけど,メソッド名に型名を付けるのがベター気がしてきました.
(2) List<String> getNameList();
(2') String[] getNameArray();
そもそもJavaのシグニチャには返り値の型は含まれないので,メソッド名の命
名規則に統一感を出す為にはメソッド名に型名を書くのが良いのではないでしょ
うか?
0687デフォルトの名無しさん
2011/01/08(土) 18:39:37String getName();
は違和感を感じませんが,本当は違和感を感じなければならないメソッドでは
ないかという気がしてきました.よく考えてみるとこれはNameという概念は
Stringであるという設計上の了解が前提にあります.
もし,Nameという型があるならば,
Name getName();
も違和感を感じません.これはきっと正しいです.
そう考えれば今となっては
String getNameString();
は冗長には見えないのではないでしょうか?
つまり,メソッド名には返り値の型名を付けるのが設計上妥当だと言えるので
は?と思うのですがどうでしょうか.
0688デフォルトの名無しさん
2011/01/08(土) 18:51:270689デフォルトの名無しさん
2011/01/08(土) 19:09:40ライブラリだと困るじゃん
0690デフォルトの名無しさん
2011/01/08(土) 19:13:220691デフォルトの名無しさん
2011/01/08(土) 20:38:58String getName();
Name getName();
を混在させたければ、"Name"のところを工夫しろ
0692デフォルトの名無しさん
2011/01/08(土) 20:39:15すいません説明が足りなかったので少し加えさせてください
01|public abstract class ManyMethods
02|{
03| // final が付いていないメソッド宣言たくさん、抽象メソッドたくさん
04|}
05|
06|public class Concrete extends ManyMethods
07|{
08| // ManyMethods の public protected メソッドを組み合わせて使って
09| // 新しい機能を提供するメソッド get() を加えたいんだけど
10| // もしかしたら ManyMethods#get() という名前が 非 final で 宣言されてるかも
11| // オーバーライドしたら挙動が変わってめちゃくちゃ
12| // ManyMethods はメソッド多くて調べるの大変
12| // ライブラリのVerUPで ManyMethods#get() が加えられるかもしれないし
13| // 名前が重複したらチェックできたらいいな
14| public int get(){} // オーバーライドしたくないメソッド
15|}
という意味です
”オーバーライドしていること保障してくれる”アノテーションがあるのなら
逆の”オーバーライドしていないことを保障してくれる”アノテーションも
あるのかなと思って質問しました
正直ライブラリの構造があまり良くないというのもあるのですが;;
命名規約を変えるか、継承ではなく集約で実装したほうがよさそうですね・・
どうもでした
0693デフォルトの名無しさん
2011/01/08(土) 21:15:45名前をtypoってオーバライドしそこなうのは
親クラスを確認しないで継承してオーバライドしてしまうアホよりも
救済する価値が高い
0694デフォルトの名無しさん
2011/01/08(土) 21:30:140695デフォルトの名無しさん
2011/01/08(土) 21:31:29反変と下限境界(? super T)
この2つの組み合わせは別物ですか?
0696デフォルトの名無しさん
2011/01/08(土) 21:39:55ワンポイントで使うためで手抜きをするなら配列で
そこそこちゃんと作るつもりならListにする。
性能面の効率をなんとかかすめ取ることまで考えるなら、
引数にindexを渡して個々の値を所得するメソッドとサイズを返すメソッドを用意する。
配列は言語的にどうあがいても可変なので
フィールドから取り出したり格納するときに防御的コピーしなければならないのが確定
また、言語的に配列はジェネリクスと相性が悪い。
0697デフォルトの名無しさん
2011/01/08(土) 22:13:11継承関係にないクラスが大量にある場合は、あまりメリットがないような気がするのですが
0698デフォルトの名無しさん
2011/01/08(土) 22:15:530699697
2011/01/08(土) 22:29:07そうだったんだ
業務ではvisual studioを使っているんだけど、単体テストツールを使ったことがないんだ
だから、ちょっとjunitを使うとどんなメリットがあるか、わかってないんだわwww
0700デフォルトの名無しさん
2011/01/08(土) 22:34:33まず、自分が作ったクラスや関数のそれぞれについてテストコードを書いとく
特に、内部的に大きな変更を加えたようなケースで、過去のコードが全部期待通りに動くかを
まとめてテスト出来るのは便利
0701697
2011/01/08(土) 22:37:11Test Firstって考え方ですか
うちの会社でERPのカスタマイズしてるんだけど、
単体テストツール使っていなから普通の会社では使っているのかなって疑問があるわ
参考になりました。ありがとうございます
0702デフォルトの名無しさん
2011/01/08(土) 22:37:40だから.NETのアプリってクソばっかなんだな。
0703デフォルトの名無しさん
2011/01/08(土) 22:42:25MSの癖にJavaをサポートしてるのか?
エセJavaについてはシラネー
0704デフォルトの名無しさん
2011/01/08(土) 22:47:130705デフォルトの名無しさん
2011/01/08(土) 22:50:11うちの会社は田舎にある会社だから、社員がダメダメな他人ばっかりなんだよ
C#使っているのに、NUnitの存在すら誰も知らないし
そして、俺なんか未だにVB6/SQL Server200で開発してるしさ
0706デフォルトの名無しさん
2011/01/08(土) 23:00:11既存のプロジェクト+JUnit用の後付けテストコードって方法もあるから
テストファーストとはちょっと違うような。
どっちかっつーと自動テストか
0707デフォルトの名無しさん
2011/01/08(土) 23:40:35vimユーザなのでemacsキーバインドにはしたくないです
0708デフォルトの名無しさん
2011/01/09(日) 05:52:20個別にファイル消したのが悪いのかな
0709デフォルトの名無しさん
2011/01/09(日) 05:55:08その前にやったことが原因かもしれない。
0710デフォルトの名無しさん
2011/01/09(日) 13:55:46たとえばcom.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificatesです。
0711デフォルトの名無しさん
2011/01/09(日) 14:40:450712デフォルトの名無しさん
2011/01/09(日) 14:49:000713デフォルトの名無しさん
2011/01/09(日) 16:33:07プログラムの最初に
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.ImageObserver;
とあったのですが、これらってどういう意味ですか?
普段なら
import java.awt.*;
import java.awt.event.*;
と、これだけなのでこの二つの意味はわかるのですけど・・・
0714デフォルトの名無しさん
2011/01/09(日) 17:05:58* の意味がわかってないとか?
0715デフォルトの名無しさん
2011/01/09(日) 19:01:37それじゃ
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.ImageObserver;
これを
import java.awt.*;
import java.awt.event.*;
と置き換えることはできますか?
0716デフォルトの名無しさん
2011/01/09(日) 19:04:07が java.awt.* でも java.event.* でもないから無理だな
java.awt.image.* も付けないと
0717デフォルトの名無しさん
2011/01/09(日) 20:51:37import java.awt.*;
import java.awt.event.*;
java.awt.image.*
にしたら
class,interface,またはenumがないっていうエラーが出た・・・
0718デフォルトの名無しさん
2011/01/09(日) 21:01:55C#/C++は自由度が高すぎて、いろいろと考えるから疲れる
0719デフォルトの名無しさん
2011/01/09(日) 22:28:43× java.awt.image.*
○ import java.awt.image.*;
たぶん吊りなんだろうなー
0720デフォルトの名無しさん
2011/01/10(月) 00:31:40なんとかエラーが消えました。
ありがとうございます、でも今度はきちんと動作しなくなったけど・・・
0721デフォルトの名無しさん
2011/01/10(月) 03:34:12isを付けると思いますが、これのアクセサメソッド名はget(set)IsFirstになるのでしょうか?
0722デフォルトの名無しさん
2011/01/10(月) 03:37:50setFirst(boolean)か
setFirst()
resetFirst()
のどちらかにすることが多い
0723デフォルトの名無しさん
2011/01/10(月) 03:38:430724デフォルトの名無しさん
2011/01/10(月) 04:11:550725デフォルトの名無しさん
2011/01/10(月) 05:01:41動かしたい
これの通りにinput.jsp output.jsp etcのファイル作ったのに何故か動かない
http://www.atmarkit.co.jp/fjava/rensai3/struts02/struts02_1.html
ひょっとしてstrutsってeclipseとかで自動生成するものなのか?
0726デフォルトの名無しさん
2011/01/10(月) 07:15:22以前のバージョンとメニューが違う項目に移動してたりして使えないんだけど
その辺はメニューかたっぱしから開いて探すしかないの?
0727デフォルトの名無しさん
2011/01/10(月) 07:35:45パースペクティブがJavaになってないとかそんなんじゃね。
>>725
普通はblankプロジェクトから作る
まあ今更Struts1も無いと思うけどな
0728デフォルトの名無しさん
2011/01/10(月) 10:00:32お願いします。
0729デフォルトの名無しさん
2011/01/10(月) 10:02:460730デフォルトの名無しさん
2011/01/10(月) 11:02:23http://web.archive.org/web/20050218022640/http://www.netgene.co.jp/java/documents.html
0731デフォルトの名無しさん
2011/01/10(月) 11:53:20池袋のジュンク堂とか、椅子が置いてあって、JavaVMの本を座って読めるよ。
洋書も豊富にあるし。
0732デフォルトの名無しさん
2011/01/10(月) 11:56:520733デフォルトの名無しさん
2011/01/10(月) 11:58:250734デフォルトの名無しさん
2011/01/10(月) 12:01:58アメリカ辺りでは普通らしい。日本と流通のしくみが違うかららしいが。
0735デフォルトの名無しさん
2011/01/10(月) 12:02:20nunitって糞だろ
0736デフォルトの名無しさん
2011/01/10(月) 12:07:25見てるのはコード中のコメント
0737デフォルトの名無しさん
2011/01/10(月) 13:52:270738デフォルトの名無しさん
2011/01/10(月) 13:54:350739デフォルトの名無しさん
2011/01/10(月) 13:54:390740デフォルトの名無しさん
2011/01/10(月) 14:16:52普段はprivateなフィールドなんかにアクセスする訳なんてありえないと思います
結局、リフレクションは何に使われているんですか?
0741デフォルトの名無しさん
2011/01/10(月) 14:36:460742デフォルトの名無しさん
2011/01/10(月) 14:38:510743デフォルトの名無しさん
2011/01/10(月) 15:14:43プライベートフィールドにアクセスするだけの目的じゃないからな。
XMLに記述されたクラスのインスタンスの生成とか。
jspファイルに記述されたメソッドの
呼び出しとか。
プライベートフィールドをいじったのは、
.Netだけど、DBのコネクションが隠蔽されたがゆえに、
トランザクションを貼ることごできなくて、
それを回避するために使ったこと位かな。
0745デフォルトの名無しさん
2011/01/10(月) 16:43:19前にdao層の切り替え(ベンダごと)に使ったよ。
ベンダごとでsqlなりロジックなり捌き方をかえる必要があったから。
0746デフォルトの名無しさん
2011/01/10(月) 17:36:31beanからbeanとかmapに丸ごとコピーする関数を作る時とか
0747デフォルトの名無しさん
2011/01/10(月) 21:30:14別に池袋、梅田に限った話じゃないんじゃ
0748デフォルトの名無しさん
2011/01/11(火) 22:22:46おいしそうな標準ライブラリありますか。
0749デフォルトの名無しさん
2011/01/11(火) 22:33:440750デフォルトの名無しさん
2011/01/11(火) 23:09:300751デフォルトの名無しさん
2011/01/11(火) 23:37:12jbossやglassfishのようなコンテナは必須なのでしょうか?
例えばswingアプリケーションでhibernateを使いたい場合は
jbossも含めて配布する必要があるのでしょうか。
0752751
2011/01/12(水) 00:14:050753デフォルトの名無しさん
2011/01/12(水) 01:09:260754デフォルトの名無しさん
2011/01/12(水) 18:54:04■ このスレッドは過去ログ倉庫に格納されています