【初心者歓迎】Java質問・相談スレッド65 Update 2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2005/06/09(木) 00:12:33質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
前スレッド
【初心者歓迎】Java質問・相談スレッド65 Update 1
http://pc8.2ch.net/test/read.cgi/tech/1114850497/
兄弟スレッド
【初心者】Java質問・相談スレッド67【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1116750427/
兄弟スレが混雑しているときはこのスレで、このスレが混雑しているときは
兄弟スレで質問すると回答が得やすいかもしれません。
※注意※
1. 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。
2. 最近マルチ(他スレにも同じ質問を書く人)が増えております。
マルチは嫌われますので、絶対にやめましょう。
もちろん、兄弟スレとのマルチも禁止です。
3. JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
0002デフォルトの名無しさん
2005/06/09(木) 00:14:300003デフォルトの名無しさん
2005/06/09(木) 00:20:19祝! O D A 事 実 上 存 続 決 定 !
【中国の遺棄化学兵器処理施設、日本2000億円負担】
> 回収が長期化すれば、日本の負担がさらに膨らむ可能性もある
http://www.nikkei.co.jp/news/main/20050606AT1E0500L05062005.html
0004デフォルトの名無しさん
2005/06/09(木) 00:29:36ttp://pc8.2ch.net/test/read.cgi/tech/1116750427/
スレタイも変だし、このスレは削除の方向でいいんじゃね?
0005デフォルトの名無しさん
2005/06/09(木) 00:34:530006デフォルトの名無しさん
2005/06/09(木) 01:03:47ここ次スレにしちまえば?
0007デフォルトの名無しさん
2005/06/09(木) 03:18:190008デフォルトの名無しさん
2005/06/09(木) 03:20:470009デフォルトの名無しさん
2005/06/09(木) 19:36:5467が進行中で66も未消化で残ってるのに。
まあ、削除はされないだろうから、現行スレの消化待ちだね。
0010デフォルトの名無しさん
2005/06/10(金) 07:13:23どうせ全部見てるんだろ?
0012デフォルトの名無しさん
2005/06/11(土) 22:59:340013デフォルトの名無しさん
2005/06/12(日) 10:06:14Wikiと削除依頼対象にされたすれを見る限り
こりゃもう削除にしていいんじゃね。
5 名前:デフォルトの名無しさん 投稿日:2005/05/28(土) 09:11:08
こっちのスレは?
6 名前:デフォルトの名無しさん 投稿日:2005/05/28(土) 09:14:00
Wikiに追加しておいた
+[[【初心者】Java質問・相談スレッド59【大歓迎】:http://pc5.2ch.net/test/read.cgi/tech/1103729175/]]
+[[【初心者】Java質問・相談スレッド60【大歓迎】:http://pc5.2ch.net/test/read.cgi/tech/1105691367/]]
+[[【初心者】Java質問・相談スレッド61【大歓迎】:http://pc5.2ch.net/test/read.cgi/tech/1107056382/]]
+[[【初心者】Java質問・相談スレッド62【大歓迎】:http://pc5.2ch.net/test/read.cgi/tech/1108389742/]]
+[[【初心者】Java質問・相談スレッド63【大歓迎】:http://pc8.2ch.net/test/read.cgi/tech/1110197411/]]
+[[【初心者】Java質問・相談スレッド64【大歓迎】:http://pc8.2ch.net/test/read.cgi/tech/1111644392/]]
+[[【初心者】Java質問・相談スレッド65【大歓迎】:http://pc8.2ch.net/test/read.cgi/tech/1112950312/]]
+[[【初心者歓迎】Java質問・相談スレッド65 Update 1(実質66?):http://pc8.2ch.net/test/read.cgi/tech/1114850497/]]
+[[【初心者】Java質問・相談スレッド66【大歓迎】(実質67?):http://pc8.2ch.net/test/read.cgi/tech/1114858011/]]
+[[【初心者】Java質問・相談スレッド66【大歓迎】(実質68?):http://pc8.2ch.net/test/read.cgi/tech/1116690777/]]
+[[【初心者】Java質問・相談スレッド67【大歓迎】(実質69?):http://pc8.2ch.net/test/read.cgi/tech/1116750427/]]
0014デフォルトの名無しさん
2005/06/12(日) 11:07:15削除人も忙しいんだから、放置。
0015デフォルトの名無しさん
2005/06/12(日) 11:15:08おまえ、人生つまんないだろ
0016デフォルトの名無しさん
2005/06/13(月) 07:04:44サーバとクライアントに別けたらどうだろ?
0017デフォルトの名無しさん
2005/06/13(月) 09:24:210018デフォルトの名無しさん
2005/06/13(月) 09:46:41むしろ複数たっていると適度に話題が拡散するので個々のスレが見やすくていい。
0019デフォルトの名無しさん
2005/06/13(月) 16:08:10public class FractionDriver {
public static void main(String[] args) {
Fraction f1 = Fraction.readFraction("Enter first fraction");
Fraction f2 = Fraction.readFraction("Enter second fraction");
if (f1.greaterThan(f2)){
System.out.println(f1.toString() + " is greather than " + f2.toString());
}
if (f1.lessThan(f2)){
System.out.println(f1.toString() + " is less than " + f2.toString());
}
}
}
これにシンボルを解決できませんとのエラーが出ました。何回見ても思い当たる
所が見つかりません。どなたかヒントください。。
0020デフォルトの名無しさん
2005/06/13(月) 17:01:55すが、jdk1.3.1だと問題なくてjdk1.4.2だと日本語の部分だけ化け
ます。これは1.3.1と1.4.2の仕様違いなんでしょうか?
----
URL s = new URL(sURL);
InputStreamReader is = new InputStreamReader(s.openStream(), "Windows-31J");
BufferedReader in = new BufferedReader(is);
String line;
while ((line = in.readLine()) != null) {
System.out.println(":::" + line);
----
0021デフォルトの名無しさん
2005/06/13(月) 17:23:04InputStreamReader is = new InputStreamReader(s.openStream());
あるいは Windows-31J の代わりに MS932 とか Cp932 とか。
0022デフォルトの名無しさん
2005/06/13(月) 18:07:47Fraction ってのはどこのどいつだ?
0023デフォルトの名無しさん
2005/06/14(火) 07:27:53Windows用のプログラムってGUI必須なの?
プログラムにメッセージをエラー以外実装しなかったら、
「何これ?ウインドウ何もでないの?」と言われた。
実行結果のファイルができあがっているのにだ。
0024デフォルトの名無しさん
2005/06/14(火) 09:33:02> メッセージをエラー以外実装しなかったら
任務完了メッセージくらい実装してやれよ。
0025デフォルトの名無しさん
2005/06/14(火) 12:58:21使う側の問題。すれ違い。
0026デフォルトの名無しさん
2005/06/14(火) 19:38:22フリーズや暴走等を連想させて不安になる
ダイアログで正常終了メッセージ出すか
CUIベースなら「正常終了。Enter押してね」ぐらいしないと
Winしか知らない人間はかなり不安感を覚えるよ
0027デフォルトの名無しさん
2005/06/14(火) 19:59:49自分なりに調べてみたところ、Javaアプリ→中間DLL→DLLという風に
すればできるのかなと思っています。
この中間DLL(?javahで作ったヘッダをインクルードして作るDLL)を
挟まずに直接ターゲットのDLLを利用することは可能でしょうか。
よろしくお願いします。
0028デフォルトの名無しさん
2005/06/14(火) 20:29:08さんきゅ
>>27
ターゲットのDLLを書き直して再コンパイルすればいい。
0029デフォルトの名無しさん
2005/06/14(火) 20:29:21無理
0030デフォルトの名無しさん
2005/06/14(火) 20:42:10やっぱりそうですよね。ちなみに中間DLLを挟めばJavaアプリからなら
いけると思うのですが、アプレットの場合はどうでしょうか。
署名付きにすれば可能なんでしょうか。
0031デフォルトの名無しさん
2005/06/14(火) 21:26:39アプレットでもアプリの場合と同じでJNIは使えるよ。
ただ配布するDLLを実行時にどこにおいてロードするのが
スマートかはしらない。
昔SWTで動くアプレットを作ったときは遊びだったから実行前に
java.library.pathがとおってる場所に自分でおいちゃったけど。
0032デフォルトの名無しさん
2005/06/14(火) 22:56:31ああそうか。そんな問題があるんですね。
なんとかユーザが意識せずにDLLを置く方法があればいいのですが、
一般的にはどのようにするものなのでしょうか。
0033デフォルトの名無しさん
2005/06/14(火) 23:13:37ならなんとでもなるさ
0034デフォルトの名無しさん
2005/06/15(水) 00:38:45Java Web Start 使え
0035デフォルトの名無しさん
2005/06/15(水) 02:10:030036デフォルトの名無しさん
2005/06/15(水) 06:11:51そんなでもないとおもうよ?
0037デフォルトの名無しさん
2005/06/15(水) 07:11:430038デフォルトの名無しさん
2005/06/15(水) 07:11:57str = file.readLine();
StringTokenizer str2 = new StringTokenizer(str);
print("<root>");
print("<child>");
while(str2.hasmoreTokens()){
print("<table>");
print(str2.nextToken());
print("</table>");
}
print("</child>");
print("</root>");
みたいにベタで書くのは反則かな?
0039デフォルトの名無しさん
2005/06/15(水) 08:49:490040デフォルトの名無しさん
2005/06/15(水) 09:17:58そんなコードを大量に送りつけられ引き継ぎ
を頼まれたら断りたい。
Jakarta Velocityでテンプレートを作ったほうが読みやすい。
0041デフォルトの名無しさん
2005/06/15(水) 09:35:12実行頻度の低いやっつけ仕事ならそのままでもいいだろうし
ただ、タグ文字とかはいってくるとおかしくなるからちゃんとエスケープしなされ
それがいやならJAXPで
Velocity使うよりはCSVからのコンバート程度なら俺はFormatter使うかも
項目数が少ないとかならエスケープするのマンドクセでJAXPでDOM操作してるかもしれん
0042デフォルトの名無しさん
2005/06/15(水) 19:54:010043デフォルトの名無しさん
2005/06/15(水) 19:58:08Wright Once Run Anywhereに代わるもの。
0044デフォルトの名無しさん
2005/06/15(水) 20:07:03アプレットのほかにアプリケーションも配布できたり
バージョンやキャッシュコントロールとかセキュリティ周りとか
強化点は多い
でてきたのはかなり前だったが、Swingが実用的になったり
リッチクライアントが流行ってきたここ数年はわりと使われてる
0045デフォルトの名無しさん
2005/06/15(水) 20:30:08誤爆?
0046デフォルトの名無しさん
2005/06/15(水) 20:40:550047デフォルトの名無しさん
2005/06/15(水) 21:06:37javax.xml.*パッケージあたり学んでいけばなんとかなる?
0048デフォルトの名無しさん
2005/06/15(水) 21:12:44誤爆と勘違いされても仕方ないだろうな。
0049デフォルトの名無しさん
2005/06/15(水) 22:28:46Vector vector = new Vector();
String array[] = new String[11];
vector.addElement(array);
for( int i1 = 0; i1 < vector.size(); i1++)
{
String[] str = (String[])vector.get(i1);
for (int i = 0; i < str.length; i++)
{
System.out.println(str[i]);
}
}
11の配列にデータ(String)を入力し(ここでは省略)、11すべてをVectorへいれ、String型で取り出したいのですがエラーになります。
System.out.println(vector1.get(i));だと文字化けします。
アドバイスお願いします。そういったことを書いてあるサイト等ご存知でしたらお願いします。
0050デフォルトの名無しさん
2005/06/15(水) 22:39:38アプレットを使いたい人間って誰のこと?
0051デフォルトの名無しさん
2005/06/15(水) 22:46:59これっていけるんだっけ?
あと、エラーってなんだろう?
0052デフォルトの名無しさん
2005/06/15(水) 22:49:310053デフォルトの名無しさん
2005/06/15(水) 22:59:580054デフォルトの名無しさん
2005/06/16(木) 01:31:53これだと、Vector の最後にarrayオブジェクトを一つ追加するだけなのでNG。
ぐるっと回すか、Arrays.asList(array)でも使う。
Vector vector = new Vector();
String[] array = new String[11];
for (int i = 0; i < array.length; i++) {
array[i] = String.valueOf(i); // 適当に初期化
}
vector.addAll(Arrays.asList(array));
for (int i1 = 0; i1 < vector.size(); i1++) {
System.out.println(vector.get(i1));
}
005549
2005/06/16(木) 06:42:13学校からだと書き込めないので確かめられません・・・すいません。
54さんのやり方試してみます。
結果は今日の夜に。。。
すいません失礼します。
0056デフォルトの名無しさん
2005/06/16(木) 09:12:59最初は同じようにレス仕様と思った。
けど、エラーが出る理由が分からなかった。
エラーって何?>>49
0057デフォルトの名無しさん
2005/06/16(木) 12:49:50このスレに移動してきました。
ClassLoaderの動作で困ってます。
自作したクラスローダーで任意の場所のクラスファイルを読み込んで動作させたいのですが、
その時に読み込まれるクラスが内部クラスを使用していると、その内部クラスが読込めないとエラーになってしまいます。
先輩方に対処及びアドバイスをお願いします、以下にソースを載せます。
//ロードされるクラス
public class LoadedClass {
public LoadedClass(){
System.out.println("LoadedClass");
innerClass inner = new innerClass();//コメントにすると動作する
}
public class innerClass{
public innerClass(){
System.out.println("innerClass");
}
}
}
005857
2005/06/16(木) 12:50:25public class CustomClassLoader extends ClassLoader {
public static void main(String[] args) {
CustomClassLoader cl = new CustomClassLoader();
String fName = "D:\\test\\LoadedClass.class";
String cName = "test.LoadedClass";
Class c1 = cl.findClass(cName,fName);
Object te;
try {
te = c1.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
public Class findClass(String className,String fileName) {
try {
File file = new File(fileName);
FileInputStream in = new FileInputStream(file);
byte[] buff = new byte[(int)file.length()];
in.read(buff);
in.close();
Class c1 = defineClass(className, buff, 0, buff.length);
resolveClass(c1);
return c1;
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
}
0059デフォルトの名無しさん
2005/06/16(木) 13:38:49006057
2005/06/16(木) 13:59:22動きを見てると、どうやらそのようですね。
そのインナークラスをClassファイルから読込みたいのですが、
どのようにして読込んで良いか、まったくわからない状態なんですよ。
何か良い案ないですか?
ちなみにインナークラス使わないでやるってのは無しでw
0061デフォルトの名無しさん
2005/06/16(木) 14:09:390062デフォルトの名無しさん
2005/06/16(木) 14:25:59インナークラスなしで。
0063デフォルトの名無しさん
2005/06/16(木) 14:34:05るのか考えれば、何をすればいいのかは明白でしょ。
0064デフォルトの名無しさん
2005/06/16(木) 14:35:20にそってファイルを読み込めばいいだけだよねと
思うが、>>57-58見てるとURLClassLoaderで十分な気がするなあ。
0066デフォルトの名無しさん
2005/06/16(木) 14:41:22外部クラス名$インナークラス名.class
とか
外部クラス名$1.class
とかでロードしてみたらどうだ?
006757
2005/06/16(木) 15:11:46java.lang.NoClassDefFoundErrorで内部クラスが読込めないです。
URLClassLoaderの方は
ttp://homepage3.nifty.com/satoshis/java/memo.html#extension
を参考にやってみます。
0068デフォルトの名無しさん
2005/06/16(木) 15:17:40InnerClass は public static 宣言されている必要あり。
006957
2005/06/16(木) 15:29:17staticにしてもjava.lang.NoClassDefFoundErrorでした。
URLClassLoaderの方は、java.lang.ClassNotFoundExceptionです。
自作のクラスローダーだと途中までは行くけどこれだと全然行かない
public class Test {
public static void main(String[] args) {
String fName = "D:\\test\\LoadedClass.class";
String cName = "test.LoadedClass";
File file = new File(fName);
URL[] url;
URLClassLoader loader;
try {
url = new URL[]{file.toURL()};
loader = new URLClassLoader(url);
Class clazz = loader.loadClass(cName);
Object target = clazz.newInstance();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
0070デフォルトの名無しさん
2005/06/16(木) 15:39:51URL url = new URL("file:///c:/");
0071デフォルトの名無しさん
2005/06/16(木) 15:56:21なあなんでURLClassLoaderのAPI仕様を読まないかなあ。
確かにぐぐって情報を集めるのは大事だが、まず一次情報源だろ。
007257
2005/06/16(木) 16:13:56ありがとうございます、クラスファイルじゃなくてクラスパスを指定するんですね
>>71
すみません、確かにAPI仕様書をみればクラスパスを指定って書いてありました。
>>アドバイスをくれた方々
お騒がせしました。なんとかいけました。
最終的には
String fName = "D:\\test\\LoadedClass.class";
↓
String fName = "D:\\";
このようになりました
0073デフォルトの名無しさん
2005/06/16(木) 16:19:38Class.forName() でやった方が良いと思うが。
007457
2005/06/16(木) 16:30:54プラグイン追加型のシステムなので、ユーザーがプラグインの場所等を指定する為、
起動時にはどこにあるかわからないから、それだとちょっと無理かな
0075デフォルトの名無しさん
2005/06/16(木) 16:33:13FAQだな
0076デフォルトの名無しさん
2005/06/16(木) 17:22:52流用したほうが57レベルなら近道だろうなあ。
0077デフォルトの名無しさん
2005/06/16(木) 17:47:16プラグイン的なシステムって多岐にわたるので既存のものを使うって難しいぞ
たとえばゲームとかでもつかうし
0078デフォルトの名無しさん
2005/06/16(木) 18:01:32一行目と二行目のつながりが全然わからないんだが、
ためしにOscarがゲームに不適な理由とか具体的に
示してくれないか?
007949
2005/06/16(木) 21:39:01ありがとうございました。
0080デフォルトの名無しさん
2005/06/17(金) 09:28:181. pluginsディレクトリにすべてのプラグインのjarファイルを入れる
2. 起動時に、pluginsディレクトリのすべてのjarファイルをクラスパスに追加するスクリプトを経由して実行
bashならこうか?
java -cp .:`ls plugins/*.jar|xargs|sed 'y/ /:/'` some.pack.Application
WindowsならVBスクリプトで書くといいね。
クラスローダが同じためプラグイン同士で干渉しあう可能性があるが、それを気にしないのならこれで。
0081デフォルトの名無しさん
2005/06/17(金) 11:56:26JDBCドライバはこれを使うとかユーザーに選択させてね
昔のJBuilderみたいに再起動しないとつかえないとかそういうのでいいのならそれでいいが
0082デフォルトの名無しさん
2005/06/17(金) 13:51:23VBスクリプトはノートン先生に怒られる可能性があるからここはバッチファイルで
0083デフォルトの名無しさん
2005/06/17(金) 17:09:56jarを追加してるだけだから。そのほかにプラグイン
ディレクトリにどういうプラグインが入っているか
アプリケーションが知る仕組みが必要。クラスパス
に含まれているクラスを全部走査するのは非現実的
というか無理だからね。
で、そういう仕組みをいれるんなら、結局URLClassLoader
で動的にプラグインのクラスをロードするようにしても
手間としてはほとんど変わらなくなる。
0084デフォルトの名無しさん
2005/06/17(金) 21:01:06Eclipse RCPがあるんだと思うんだが、普及しないよなあ。なまじっか、
統合開発環境とかSWT/JFaceとかの知名度が中途半端にあがったんで妙な
偏見もたれてるんだろうな。
import org.eclipse.core.runtime.IPlatformRunnable;
public class Application implements IPlatformRunnable {
public Object run(Object args) throws Exception {
System.out.println("Hello World!");
return IPlatformRunnable.EXIT_OK;
}
}
みたいなSWT/JFaceを使わない単なるHelloWorldでも
立派なEclipseアプリケーションとしてプラグインシステムを利用できるんだけど。
0085デフォルトの名無しさん
2005/06/17(金) 21:42:56Eclipse使ってない俺には何がなんだかわかりません。
0086デフォルトの名無しさん
2005/06/17(金) 21:48:01それをライブラリにまとめていればいいだけだし
EclipseRCPは実績とかがなぁ
JFace追うにしても正式版では実用にならないし
RCPだめぽ
0087デフォルトの名無しさん
2005/06/17(金) 23:18:090088デフォルトの名無しさん
2005/06/17(金) 23:21:53何でそう思うの?
0089デフォルトの名無しさん
2005/06/18(土) 00:05:580090デフォルトの名無しさん
2005/06/18(土) 00:58:50あらゆる言語でこの機能はMessageBoxという名前になっ
ている、と思いこんでいるトンマが87。
0091デフォルトの名無しさん
2005/06/18(土) 05:27:15あーそれそれ。2年ぶりだったから忘れてたわ。
>>90
よ!トンマ君!
0092デフォルトの名無しさん
2005/06/18(土) 11:38:21質問してきてこれじゃぁな
0093デフォルトの名無しさん
2005/06/18(土) 12:55:28よ!トンマ君!必死だねw
0094デフォルトの名無しさん
2005/06/18(土) 14:26:250095デフォルトの名無しさん
2005/06/18(土) 15:05:26> JFace追うにしても正式版では実用にならないし
どういう意味?
0096デフォルトの名無しさん
2005/06/18(土) 20:35:24intの場合に"I"というのはサンプルにあったのですが、
それ以外の場合はどうすればよいのでしょうか。
009796
2005/06/18(土) 20:38:570098デフォルトの名無しさん
2005/06/19(日) 10:15:480099デフォルトの名無しさん
2005/06/19(日) 12:04:450100デフォルトの名無しさん
2005/06/19(日) 12:58:52構造体まではある程度わかりましたが、ポインタの理解に苦しみました。
今後、Javaでプログラムを作っていきたいのですが
入門書で何かお勧めはありますでしょうか?
JDK5.0、eclipseをつかってプログラムを組んでいく予定です。
0101デフォルトの名無しさん
2005/06/19(日) 13:07:01学ぶ?
なぜそんなものを「学ぶ」と大袈裟な表現をつかうほど
のものにしたがるのか不思議でしょうがない。
Velocityは検索すれば使い方がすぐにわかる。
javax.xmlというパッケージ単位で何かするよりも
API単位で基本的な使い方を覚えたほうがいい。
java.xml.*のすべてが必要なわけじゃないんだし。
0102デフォルトの名無しさん
2005/06/19(日) 13:08:45> こういうプラグインシステムみたいな車輪の再発明を防ぐために
> Eclipse RCPがあるんだと思うんだが、普及しないよなあ。なまじっか、
漏れはそのシステムが
SWTに依存せずAWT, Swingなどでも使えることを望む。
0103デフォルトの名無しさん
2005/06/19(日) 13:09:46Tomcatを利用したJava開発が多いこの業界では普及するのではないかと。
0104デフォルトの名無しさん
2005/06/19(日) 13:23:31次スレはこっちだからな! がんばれよ
【初心者】Java質問・相談スレッド68【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1119115837/
0105デフォルトの名無しさん
2005/06/19(日) 13:25:54そしてPart68が実質相談スレPart71だ。
つまりこういうことだ。
# 【初心者】Java質問・相談スレッド65【大歓迎】
# 【初心者歓迎】Java質問・相談スレッド65 Update 1(実質66?)
# 【初心者】Java質問・相談スレッド66【大歓迎】(実質67?)
# 【初心者】Java質問・相談スレッド66【大歓迎】(実質68?)(レス数6で落ち)
# 【初心者】Java質問・相談スレッド67【大歓迎】(実質69?)
以下のように情報が付加されるわけだ。
# 【初心者歓迎】Java質問・相談スレッド65 Update 1(実質70?)
# 【初心者】Java質問・相談スレッド68【大歓迎】(実質71?)
皆の衆よ! 良いな!
0106デフォルトの名無しさん
2005/06/19(日) 13:36:090107デフォルトの名無しさん
2005/06/19(日) 13:42:250108デフォルトの名無しさん
2005/06/19(日) 13:52:01JAVA で Sun と MS が争ってるとか昔聞いていたんだけど
数年ぶりにPC弄るようになって、今 MSjava どうなってるのかなって、
マイクロソフトJAVAって無くなったの?
0109デフォルトの名無しさん
2005/06/19(日) 14:03:44EclipseのプラグインシステムはSWTに依存しないってことが>>84の後半に
書いてあるわけだが。大体SWTがないJ2ME上でも動くし。
>>103
すでにそういうシステムになっているわけだが。
0110デフォルトの名無しさん
2005/06/19(日) 14:43:14ベンチマークソフトを探しています
以前、同様の質問をして
SPECjbb2005 をご紹介いただきましたが
できれば無償で利用できるものがあると嬉しいです
ググッてみて Java Grande というのを見つけましたが
どうやら最後に更新されてから時間が経っているようでした
http://www.epcc.ed.ac.uk/javagrande/
無償利用できる Java ベンチマークソフトで
お勧めのものがありましたらご教示ください
0111デフォルトの名無しさん
2005/06/19(日) 14:47:39例えばクライアントのGUI性能を測るのにSPECjbb2005を使っても無意味だろ?
0112デフォルトの名無しさん
2005/06/19(日) 15:10:05数値計算や文字列処理といった基本的な部分の速度や
マルチスレッド関連の処理性能あたりが特に知りたいです
GUIまわりの性能も計測できれば嬉しいですが
これについては現在のところ特に必要というわけではないです
0113デフォルトの名無しさん
2005/06/19(日) 15:19:170114デフォルトの名無しさん
2005/06/19(日) 15:28:26公開されているものを利用する方が
他の環境との比較もできて嬉しいなと思いまして
ケチケチせずに SPEC の JVM98 あたりを買うのが良いんでしょうかね
0115デフォルトの名無しさん
2005/06/19(日) 15:31:56マルチスレッドあたりのスケーラビリティをみるならjbb2005だろうなあ。
0116デフォルトの名無しさん
2005/06/19(日) 15:33:02情報ありがとうございます
それぞれ調べてみます
0117デフォルトの名無しさん
2005/06/19(日) 15:37:120118デフォルトの名無しさん
2005/06/19(日) 16:10:08よく飽きないね
0119デフォルトの名無しさん
2005/06/19(日) 16:15:350120デフォルトの名無しさん
2005/06/19(日) 16:20:42> >>102
> EclipseのプラグインシステムはSWTに依存しないってことが>>84の後半に
> 書いてあるわけだが。大体SWTがないJ2ME上でも動くし。
そうなのか。情報thx
> >>103
> すでにそういうシステムになっているわけだが。
ホットデプロイのことをいっているのか。
あれがEclipseのプラグインのようなシステム
として動いているようには見えないのだが
素人目から見たただの気のせいですかいな?
0121デフォルトの名無しさん
2005/06/19(日) 16:22:47どう思うよ?
Eclipseのプラグインを拡張したプラグインというふうにプラグインを数珠繋ぎに
してゆくことは容易ではないような気がするのだが。
0122デフォルトの名無しさん
2005/06/19(日) 16:38:42>ホットデプロイのことをいっているのか。
>あれがEclipseのプラグインのようなシステム
>として動いているようには見えないのだが
いや、Eclipseにwarをプラグインとして
登録できるって話。
0123デフォルトの名無しさん
2005/06/19(日) 16:44:190124デフォルトの名無しさん
2005/06/19(日) 16:55:130125デフォルトの名無しさん
2005/06/19(日) 16:57:52キミはどう思うんだい?
0126デフォルトの名無しさん
2005/06/19(日) 17:23:18やっぱり上手くファイル存在チェックが出来ません
0127デフォルトの名無しさん
2005/06/19(日) 17:36:23で?
0128デフォルトの名無しさん
2005/06/19(日) 17:36:45うまくいかないコードくらい載せてみれば?
0129デフォルトの名無しさん
2005/06/19(日) 17:49:330130デフォルトの名無しさん
2005/06/19(日) 17:54:46intやshortなどのプリミティブ型を
byte配列に相互変換する方法はありませんか?
int → byte[] → int みたいな感じです
0131デフォルトの名無しさん
2005/06/19(日) 18:24:150132デフォルトの名無しさん
2005/06/19(日) 18:31:06>SV2で、\\SV1\Cは見れます
>どうも、SV2内のファイルにしかチェックが出来ないみたいなのです
Sv2から \\Sv1\C が見えてないに更に1万ペリカ
String dir = "\\\\SV1\\C";
boolean exists = new File(dir).exists();
これでexistsがfalseなら、そのコードを実行している環境から \\Sv1\Cが見えてない。
0133デフォルトの名無しさん
2005/06/19(日) 18:39:52>>125
0134前スレ943
2005/06/19(日) 20:44:360135デフォルトの名無しさん
2005/06/19(日) 20:47:540136デフォルトの名無しさん
2005/06/19(日) 20:51:49>>125
0137デフォルトの名無しさん
2005/06/19(日) 21:36:49コードと詳細な環境を晒さないと
もうあなた以外のだれにも解決できないと思うよ
0138前スレ943
2005/06/19(日) 21:50:07一応前スレには書いたのですが、無くなっちゃってますかね?
0139デフォルトの名無しさん
2005/06/19(日) 21:52:06なかなか分かるようになりません・・・。
皆さんは何ヶ月で感覚をつかみましたか?
現在結城さんの本の下巻を読みつつ会社で研修を受けています。
アドバイスお願いします。
スレ違いかもしれませんが・・・
0140デフォルトの名無しさん
2005/06/19(日) 22:09:06このような状態になって途方に暮れてます
アドバイスお願いします
http://f49.aaa.livedoor.jp/~shkakuri/imgboard/img-box/img20050619220554.jpg
0141デフォルトの名無しさん
2005/06/19(日) 22:17:350142デフォルトの名無しさん
2005/06/19(日) 22:18:40全角スペースが入っている予感。
0144デフォルトの名無しさん
2005/06/19(日) 23:04:30君んところはどうかしらんが、おれんとこでは、ネットワーク越しの共有フォルダを
Eドライブに割りあてたうえで、下記チェックプログラムを実行したら、普通にtrueが返ってきたぞ。
ちなみに対象ファイルは「a.txt」で、「java FileChecker "E:\a.txt"」と実行した。
import java.io.*;
public class FileChecker {
public static void main( String[] args) {
String fileName = args[0];
FileChecker fc = new FileChecker();
fc.checkExist( fileName);
}
boolean checkExist( String filePath) {
boolean result = false;
try {
File theFile = new File( filePath);
if( theFile.exists()) {
System.out.println( "ファイルは存在します");
result = true;
} else {
System.out.println( "ファイルは存在しません");
result = false;
}
} catch(Exception e) {
e.printStackTrace(); System.exit(1);
}
return result;
}
}
てことは、プログラムが稼働しているSv2から、ファイルが存在しているSv1が見えていて、しかもSv2上で
Sv1をネットワークボリューム割当してれば、普通に「E:\hoge.txt」って感じでチェック出来るはずだ。
0145デフォルトの名無しさん
2005/06/19(日) 23:28:42釣りじゃないのなら「チェックできない」なんて曖昧な説明でなく
どんなコードを実行して、どういう結果になって
それを元にどう判断したのか順を追って説明しろ。
まぁ、釣りだろうな・・・
毎度毎度引っかかってる俺がいるわけだが_| ̄|○
0146デフォルトの名無しさん
2005/06/20(月) 01:11:39public PaintedWall() {
^
PaintedWall.java:16: シンボルを解決できません。
シンボル: メソッド setSize (int,int)
場所 : PaintedWall の クラス
setSize(400,300); //画面サイズの初期値
^
PaintedWall.java:18: シンボルを解決できません。
シンボル: メソッド addWindowListener (<anonymous java.awt.event.WindowAdapter>)
場所 : PaintedWall の クラス
addWindowListener(new WindowAdapter(){
^
PaintedWall.java:61: 互換性のない型
検出値 : PaintedWall
期待値 : java.awt.Frame
Frame w = new PaintedWall(); //コンストラクタの起動
^
エラー 4 個
こんなエラーがでるんですが、何が原因かわかりませんか?
0147デフォルトの名無しさん
2005/06/20(月) 01:12:090148デフォルトの名無しさん
2005/06/20(月) 01:30:22したり、FrameクラスのメソッドであるsetSize()とかaddWindowListner()とか呼んでる
からでしょ。
というか一番最後のエラーにちゃんとそう書いてある....
0149前スレ943
2005/06/20(月) 09:51:40//ファイル存在チェック
File objFile = new File(strFileAddress);
if (objFile.exists() == true && objFile.isDirectory() == false){
} else {
Err_Msg = "指定したファイルが存在しません。";
return false;
}
コードはこんな感じです。
strFileAddressには文字列で画面から取得してきたアドレスが入ります。
sv1:ファイルサーバ
sv2:APサーバ
pc1:クライアント
sv1のC:\直下にbook1があるときに、
sv2のB:\にsv1のC:\を割り当て、B:\book1.xlsと画面で入力する。・・・ファイルが存在しません。
\\sv1\C\book1.xlsと入力・・・ファイルが存在しません。
sv2にてエクスプローラのアドレスバーに上記入力した場合には、ファイルが見れます。
上記で、sv2上のファイルは存在があれば抜けているのですが、
sv1のファイルをチェックしようとすると、全てexistsがfalseになるようなのです・・・
0150デフォルトの名無しさん
2005/06/20(月) 11:01:26俺ならあちこちにSystem.out.println()を挿入して、
変数内容を表示させてみる。
あと、Fileを使うときは、File#list()を取得してみる。
初めからbooleanばかりじゃわかりにくいからね。
0151デフォルトの名無しさん
2005/06/20(月) 11:29:33やってみました
//ファイル存在チェック
strFileAddress = "\\sv1\C\book1.xls"
File objFile = new File(strFileAddress);
System.out.println(objFile);
System.out.println(FileAddress);
System.out.println(objFile.length());
System.out.println(objFile.lastModified());
System.out.println(objFile.list());
if (objFile.exists() == true && objFile.isDirectory() == false){
} else {
Err_Msg = "指定したファイルが存在しません。";
return false;
}
結果
\\sv1\C\book1.xls
\\sv1\C\book1.xls
0
0
null
でした・・・
0152デフォルトの名無しさん
2005/06/20(月) 11:31:54System.getProperty("user.name")の値は想定している
ユーザ名になっているかとかアクセス権がらみはOK?
0153デフォルトの名無しさん
2005/06/20(月) 11:43:22iをどうやって定義すればいいんですか?
0154デフォルトの名無しさん
2005/06/20(月) 12:10:05System.getProperty("user.name")
がSYSTEM
となっているのですが、これって・・・?どういう意味でしょう??
0155デフォルトの名無しさん
2005/06/20(月) 13:03:15実数とは別の変数に保存
0156デフォルトの名無しさん
2005/06/20(月) 13:04:23それって、administratorでログインしてるのかな?
0157デフォルトの名無しさん
2005/06/20(月) 13:06:41グローバル変数で、ルート(ー1)とする
0158デフォルトの名無しさん
2005/06/20(月) 13:14:11すみません・・・マジでそこすら分からない・・・
どうやったら確認できますか?
0159デフォルトの名無しさん
2005/06/20(月) 13:19:19小数点のある計算が意図した結果にならず、悩んでおります。
うまく処理する方法をおしえてください。
double yy = 18.33;
double hh = 100;
System.out.println(yy*hh);
----------------------
1832.9999999999998 (結果)
1833.0(←この結果を期待しています)
0160デフォルトの名無しさん
2005/06/20(月) 13:22:39ログアウト?(だっけ?Windowsの場合)して、表示されている名前を見ろ
(下にパスワード欄があったはず)
それがadministratorだったら、非常にまずい。
0161デフォルトの名無しさん
2005/06/20(月) 13:23:34>>1とか読んでる?
0162159
2005/06/20(月) 13:47:05wikiをよんでみましたが、該当箇所がみつかりませんでした。
またgoogleで小数点・java のキーワードで検索もしました。
ttp://web.hc.keio.ac.jp/~fujimura/lang/page-7-1.html
(上記の結果が最も参考にはなりそうでした。)
単純な計算を複雑な処理をしなければならないところ
(基準が難しいところですが)に疑問をもったため、
質問させていただきました。簡単な方法をご存知でしたら、
ご教授ください。よろしくおねがい致します。
0163デフォルトの名無しさん
2005/06/20(月) 13:52:31pc1については、私のPCなのでUserNameはMyNameでした。
sv2については、administratorではありませんでしたが、
sv1については、administratorのようです。
えっと・・・マズイんですか・・・??(汗
0164159
2005/06/20(月) 14:03:55double yy = 18.33;
double hh = 100;
System.out.println(yy*hh);
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(2);
formatter.setMinimumFractionDigits(2);
System.out.println(formatter.format(yy*hh));
このあたりで解決していきたいとおもいます。ありがとうございました。
0165デフォルトの名無しさん
2005/06/20(月) 14:05:18SYSTEMはWindowsでサービスを動かすときのデフォルト
アカウント。当然ファイルサーバ側の共有リソースの
設定で権限が与えられていなければアクセスすることは
できない。
というわけで次はファイルサーバ側の共有フォルダの
アクセス権とファイルシステム上でのアクセス権の
チェックをすること。
つーか、もうJavaの話じゃないから、もし自分の理解の
範疇を超えていたらPC初心者板に移動してください。
0166前スレ943
2005/06/20(月) 14:31:07ファイルサーバ側の共有フォルダの
アクセス権とファイルシステム上でのアクセス権の
チェック
これはPC初心者板で聞いたほうが良いってことですかね・・・
0167デフォルトの名無しさん
2005/06/20(月) 14:46:12ユーザーがいないとか権限がないとかだと思うけど
0168デフォルトの名無しさん
2005/06/20(月) 15:16:37なるほど・・・ちょっとPC初心者板に行って来ます。
もし、それでも分からなかったら再度お聞きして宜しいですか?
0169デフォルトの名無しさん
2005/06/20(月) 16:03:530170デフォルトの名無しさん
2005/06/20(月) 16:49:35エスケープ処理されてないようにみえるんだが
0171デフォルトの名無しさん
2005/06/20(月) 17:05:08そんな見かけの表示で誤魔化すんじゃなくBigDecimal使え。
0172デフォルトの名無しさん
2005/06/20(月) 17:37:25速度と範囲をとるために正確さを犠牲にしている方法なのにな
つーかつい最近もまったく同じような質問みたような気がする
0173前スレ943
2005/06/20(月) 19:06:11try{ 〜catch}
ですか??
0174デフォルトの名無しさん
2005/06/20(月) 20:07:090175デフォルトの名無しさん
2005/06/20(月) 20:12:520176デフォルトの名無しさん
2005/06/20(月) 20:13:540177デフォルトの名無しさん
2005/06/20(月) 20:18:49public void paint (Graphics g) {
目一杯描きます。
}
0178デフォルトの名無しさん
2005/06/20(月) 20:54:54紙テープでFORTRAN やってた時代から FAQ ですな。
0179デフォルトの名無しさん
2005/06/20(月) 20:56:03ヒント: System.out.println("\\");
0180デフォルトの名無しさん
2005/06/20(月) 23:48:31Java/COMやJ/Direct等があるようなのですが、それぞれの
ざっくりとしたメリットとデメリットを教えて頂けないでしょうか。
とりあえずデメリットとしては、J/DirectはJ++じゃないとダメ、
Java/COMはUNIX系に移植するとき苦労する、とかでしょうか。
0181デフォルトの名無しさん
2005/06/21(火) 00:21:11mainなんかで外からファイル文字列を受け取る場合は例外として、プログラム内部で
文字列でファイルパスを書く時は、\はjavaではエスケープ指定であって\という文字では
ない。だから\という文字を指定する時は\\とかく。
\\Srv1\C\
は
\\\\Srv1\\C\\
と書かなければいけない。
0182デフォルトの名無しさん
2005/06/21(火) 00:22:03JNI以外は無視していい。
Windows限定のプログラムを作るなら、別にJavaを使う必要ないんだし。
0183デフォルトの名無しさん
2005/06/21(火) 00:32:49そんな単純なものだっけ?
0184デフォルトの名無しさん
2005/06/21(火) 00:44:48MS独自拡張だしな
MSVMメンテされないし
0185デフォルトの名無しさん
2005/06/21(火) 00:55:080186デフォルトの名無しさん
2005/06/21(火) 01:21:210187デフォルトの名無しさん
2005/06/21(火) 07:39:12java.io.File.separatorとかjava.io.File.pathSeparatorとか使っていこうよ
0188前スレ943
2005/06/21(火) 08:51:21それって、ユーザが画面入力する時にも意識させておかないとまずいんですか?
ユーザも\\\\sv1\\Cと入力しないといけない??
0189デフォルトの名無しさん
2005/06/21(火) 09:39:280190デフォルトの名無しさん
2005/06/21(火) 10:11:32セパレータには\ではなく/を使え
若しくはFile.separatorを使え
0192デフォルトの名無しさん
2005/06/21(火) 11:01:07エスケープシーケンスとか知らんのか?
0193デフォルトの名無しさん
2005/06/21(火) 11:08:35お前のコードがそうなってるだろ
0194デフォルトの名無しさん
2005/06/21(火) 11:20:02while(falseになるまで次の文字に移りながらn文字回、ループを回す){
//なんかじっこーする
if(ユーザが入力したキー.equals('\\')){
//なんたら
}
//うんたらかんたら
}
0195デフォルトの名無しさん
2005/06/21(火) 11:36:06Stringの中に入ってる文字は関係ない。
0196デフォルトの名無しさん
2005/06/21(火) 12:57:21int wk = 0;
byte[] b = new byte[1];
for(int i = 0; i < 8; i++){
wk += (Integer.parseInt(bin.substring(i, i + 1)) * (1 << (7 - i)));
}
b[0] = (byte)wk;
String str = new String(b); // str = "A"
System.out.println(str);
二進ダンプしたものを元に戻す処理として上記のようなものを書いたのですが
もうちょっとさくっとできないものでしょうか?
0197デフォルトの名無しさん
2005/06/21(火) 13:09:14じゃダメなんかい?
0199デフォルトの名無しさん
2005/06/21(火) 14:29:30class a{
int a[][] = new int[2][2];
・・・・・2*2の同じ画像が出るようにしてあります
}
class b{
ここで例えば[0][0]の画像が押されたら
[1][1]の画像が変るというような処理を行いたいのですが
クリックされたのはどこの画像なのかを識別するには
どうすればいいのでしょうか?
0200デフォルトの名無しさん
2005/06/21(火) 14:49:150201デフォルトの名無しさん
2005/06/21(火) 15:34:43int配列との関係が不明。
適当なリスナを用意する。
0202デフォルトの名無しさん
2005/06/21(火) 15:53:42デスクトップ上でダブルクリックしたとき、配布されているもの(V2C)は実行されるのに、自分のものは
ウインドウを開くだけなのに、エラーで実行されません。
コンソールでは、実行されます。
なにが、間違っているのでしょうか?
ソース
import javax.swing.*;
import java.awt.*;
public class main {
public static void main(String args[]) {
JFrame frm = new JFrame("Kitty on your lap");
frm.setBounds(0 , 0 , 400 , 200);
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
0203デフォルトの名無しさん
2005/06/21(火) 16:05:54http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/jar.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jar/jar.html#JAR%20Manifest
0205202
2005/06/21(火) 16:33:54???
自分プログラマ向いてないかも・・・orz
0206デフォルトの名無しさん
2005/06/21(火) 16:37:26「Main-Class: manifest jar」でぐぐれ。
0207デフォルトの名無しさん
2005/06/21(火) 16:48:30できました。サンクス。なんとか首がつながりそうです。
0208デフォルトの名無しさん
2005/06/21(火) 17:44:090209デフォルトの名無しさん
2005/06/21(火) 17:46:55この道より他にわれを生かす道なしこの道を行く
〜武者小路実篤
0210デフォルトの名無しさん
2005/06/21(火) 17:51:530211前スレ943
2005/06/21(火) 18:22:42>>193
>>194
>>195
なるほど・・・勉強になりました。
前スレより続いていた問題は解決しました。
私がTomcatのユーザをちゃんと確認していなかっただけでした。
申し訳ありませんでした。
数々のご対応頂きありがとうございました。
0212デフォルトの名無しさん
2005/06/21(火) 19:04:58java version "1.5.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09)
Java HotSpot(TM) Client VM (build 1.5.0_02-b09, mixed mode, sharing)
% cat AvailableImageWriters.java ~:8551
import javax.imageio.ImageIO;
import java.util.Arrays;
public class AvailableImageWriters {
public static void main(String[] args) {
System.out.println(Arrays.asList(ImageIO.getWriterFormatNames()));
}
}
% java AvailableImageWriters ~:8552
[BMP, jpeg, bmp, wbmp, JPG, png, jpg, PNG, WBMP, JPEG]
だそうだ。
個人的にはGIFで保存なんてアリエナイので困らんけど、210は困るんだろうな。
0213デフォルトの名無しさん
2005/06/21(火) 19:18:310214デフォルトの名無しさん
2005/06/21(火) 19:25:10主なるクラスが他のクラスを継承している状態でアプレットを継承できません。
インターフェイスでアプレットを実装する事はできませんか?
0215デフォルトの名無しさん
2005/06/21(火) 19:25:100216デフォルトの名無しさん
2005/06/21(火) 19:26:07できません。
0217デフォルトの名無しさん
2005/06/21(火) 19:36:34じゃあアプレットを使う時は
スパゲティで書くしかないのですね・・・
0218デフォルトの名無しさん
2005/06/21(火) 20:01:01きっちり設計すれば、必要なくなる。
ガンバレ
0219デフォルトの名無しさん
2005/06/21(火) 20:15:580220デフォルトの名無しさん
2005/06/21(火) 20:22:40継承しないとスパゲッティになる理屈が分からん。逆だろ。
だいたい OO 初心者は不要な継承が多すぎだ。
0221デフォルトの名無しさん
2005/06/21(火) 21:16:38PNGの方が小さい。それよりJPEG2000は普及しないのかね。
>>217
あえて多重継承を禁止してるのはスパゲッティ継承を防ぐためなんだが。
0222デフォルトの名無しさん
2005/06/21(火) 21:18:01曖昧さを防ぐためだろ。
0223デフォルトの名無しさん
2005/06/21(火) 21:27:350224デフォルトの名無しさん
2005/06/21(火) 21:37:010225217
2005/06/21(火) 21:48:00クラス毎に処理が書けなくて
逆に一つのクラスに長く書き綴る事になるんじゃないですか?
ちなみにJava暦3ヶ月の初心者ですのでほとんどわかりませんが・・・
0226デフォルトの名無しさん
2005/06/21(火) 22:01:56クラスを役割分担させればいいんじゃないの?
0227デフォルトの名無しさん
2005/06/21(火) 22:02:40それに継承だけだと階層が深いとやってられんよ
0228デフォルトの名無しさん
2005/06/21(火) 22:10:540229デフォルトの名無しさん
2005/06/21(火) 22:15:290230デフォルトの名無しさん
2005/06/21(火) 22:17:05それもある。
というかスパゲティ継承をすると曖昧さも問題になる。
そんなわけで議論を過熱させこのスレは早めに葬りましょう。
Java質問スレが2つもあると面倒。
0231デフォルトの名無しさん
2005/06/22(水) 00:04:53いや、世の中には多重継承できない言語の方が多いんだから、困ってないんだよ。
継承は現実には、本当に必要な時以外使わないように言われてる。
かわりに、役割に応じてクラスを分割して、AppletならメインとなるAppletサブクラスの
インスタンス変数に、その分割したクラスのインスタンスを保持しとく。
アプレット内部では、必要に応じて保持しているインスタンスのメソッドを呼べばいい。
0232デフォルトの名無しさん
2005/06/22(水) 00:05:41土足で既存のスレに割り込んできて、「仲良くしようぜ」って。
0233デフォルトの名無しさん
2005/06/22(水) 00:10:310234デフォルトの名無しさん
2005/06/22(水) 00:23:34プロパティファイルを同梱して、アプレットからプロパティファイルを
読み込む、というようなことをしたいのですが、プロパティファイルは
JARの中のどこに入れればよいでしょうか。
もしくはこんなことはできないですか?
0235デフォルトの名無しさん
2005/06/22(水) 00:31:03クラスパスの通ってるところ(要するにjarの、.classファイルがあるところだが)なら
どこでも。
プログラム内からプロパティファイルを読み込む時は、getResource()で取得する。
クラスパス内から指定リソースを探してくれる。
0236デフォルトの名無しさん
2005/06/22(水) 00:38:24ありがとうございます。できそうです!
0237デフォルトの名無しさん
2005/06/22(水) 01:58:38矩形領域の情報と、直線の情報が与えられる。
矩形領域は、矩形の始点座標(x, y)と横幅の長さと縦幅の長さとで表す。
直線は、両端点の座標で表されす。
直線が矩形領域内に収まっている場合には、直線の両端点の座標を返す。
直線が矩形領域内に収まっていない場合には、矩形と直線の交点を返す。
いわゆる、クリッピングを行うものを作ろうと考えています。
これを実現するアルゴリズムは、すぐに考えることは出来ました。
しかし、スマートなコードでライブラリを書こうと思うと、どのような方針で
書いていけば良いのか分かりません。
Javaでライブラリを作るとなると、それはインタフェースにすべきなのか?継承させる
べきなのか?メインプログラムからライブラリに複数の情報を渡すにはどうすれば
よいのか?など疑問なところだらけです。
計算アルゴリズムは自分で出来ますので、「矩形情報と直線情報を渡すだけのメインプログラム」
と「情報を渡されて、計算結果を返すライブラリ」の基本構造を御提示願えないでしょうか?
お願いします。
0238デフォルトの名無しさん
2005/06/22(水) 02:03:20継承させる → 意味なし
Rectangle クラスに Line clip(Line) メソッドでも作れ。
0239デフォルトの名無しさん
2005/06/22(水) 11:22:40ライブラリを作る→意味なし
どう考えてもメソッドひとつ分の機能しかないだろそれ。クラスにすらならん。
Rectangle継承するのも勿体ないからLine clip(Line,Rectangle)メソッドでいいよ。
0240デフォルトの名無しさん
2005/06/22(水) 12:49:19Apache Antの<manifest>タグを使えば
もっと楽にJARを作れるぞ。
0241デフォルトの名無しさん
2005/06/22(水) 12:51:49宿題は専用スレで
0242デフォルトの名無しさん
2005/06/22(水) 13:17:37レベル的にant理解するほうが厳しいと思われ
IDE使えばなんにも意識しないけどな
0243デフォルトの名無しさん
2005/06/22(水) 13:20:28static なクラスを作るのと、singleton のクラスを作るのとで、どのような
違いがあるのでしょう?
singleton の場合、インスタンスが2つ以上(有限)の場合なら、static なク
ラスとの違いが分かるのですが、一つしかインスタンスがない場合、static
なクラスで良いのではないかと思ってしまいます。
わざわざ singleton にすることのメリットが分からないのです。お教えいた
だけないでしょうか?
0244デフォルトの名無しさん
2005/06/22(水) 13:27:30staticなものは継承が使えない。
0245243
2005/06/22(水) 13:36:49・継承を使わないなら、static でよい。
・元のクラスもstatic だったら、新しいクラスも satatic でよい。
(ただし、プロパティは(オーバーライドしない限り)共有される)
という理解でよろしいでしょうか?
0246デフォルトの名無しさん
2005/06/22(水) 13:44:02「元のクラス」「新しいクラス」ってなんだ?
それから、staticなものは継承してもプロパティはオーバーライドされないぞ。
「継承を使わないなら」は、将来使う可能性も無いことがはっきりしているならという意味ではその通り。
将来、継承したサブクラスを作成する可能性があるならstaticで作成しない方がいい。
0247243
2005/06/22(水) 14:10:42クラス = 子 というつもりでした。
継承に付いては、勘違いをしていました。子クラスにフィールドを新設しても、
それにアクセスするメソッドも含めてオーバーライドしないと、新設したフィー
ルドにはアクセスされないのでしたか。
実は、Factoryクラスを作ろうとしています。Factoryクラス自体が情報を保持
していて、生成するインスタンスにそれを初期化パラメータとして与えるので
すが、今のところ、継承の予定もありませんし、static クラスでかまわない
かと思っております。どのように思われますか?
0248デフォルトの名無しさん
2005/06/22(水) 14:24:50違う。staticなものは、フィールドもメソッドもオーバーライドされない。
各クラスオブジェクトに属するだけ。
俺ならDIコンテナにインスタンス管理させてSingletonオブジェクトとして生成されるように設定する。
0249デフォルトの名無しさん
2005/06/22(水) 14:44:25それ、設計に問題あるんじゃないか?
というのはさておき、そのような用途ならstaticで構わん気もする。
あくまで生成だけを行うFactoryであれば。
0250デフォルトの名無しさん
2005/06/22(水) 15:06:54それぞれ分割したいのです。
例えば入力が
ここは大学の教室です
とあったとしたら
str1 = ここは
str2 = 大学
str3 = の
str4 = 教室
str5 = です
といった具合です。
正規表現を使えば出来そうだということはなんとなく分かるんですが…
アドバイスをお願いします。
0251243
2005/06/22(水) 15:29:28ようです。勉強します。
DIコンテナについては全然知らないので、今回は時間も無いし、とりあえず
static でやってみます。いろいろありがとうございました。
0252デフォルトの名無しさん
2005/06/22(水) 15:31:20java.lang.Character.UnicodeBlockを使ってごにょごにょ。
正規表現をつかうのはかえって難しい。
ところで、日本語localeでのjava.text.BreakIterator.getWordInstance()
はどういう動作になるんだろうか。
0253デフォルトの名無しさん
2005/06/22(水) 15:45:55あえて正規表現を(無理やり)使って書いてみた例。
String test = "ここは大学の教室です";
String[] hoge = test.split("[^ぁ-ん]+");
String[] hage = test.split("[ぁ-ん]+");
String[] moge = new String[hoge.length + hage.length - 1];
for(int i = 0; i < hoge.length - 1; i++){
moge[i * 2] = hoge[i];
moge[i * 2 + 1] = hage[i + 1];
}
moge[moge.length - 1] = hoge[hoge.length - 1];
// mogeにばらされた文字列が入ってるはず。
無論実際にこんな処理を書くのはお勧めしない。
こういう処理は実は正規表現を使わずごりごり無骨に(?)処理した方が良い。その方が軽いし。
複雑な文字列操作は正規表現で、という思い込みは覚えたてのころはありがちだ罠。
0254デフォルトの名無しさん
2005/06/22(水) 16:35:47構文解析とか形態素解析のクラスライブラリみたいなの、
どっかが出してなかったっけ。
0255デフォルトの名無しさん
2005/06/22(水) 18:34:330256デフォルトの名無しさん
2005/06/22(水) 18:45:31ヒントだけでいい!
シグナルびんびん弾けるライブラリ知りません?
0257デフォルトの名無しさん
2005/06/22(水) 20:04:35C:...からはじまってcd D:\...と打ってもぜんぜん移動してくれません
0258デフォルトの名無しさん
2005/06/22(水) 20:09:07Javaとは関係ないが…
d:
0259デフォルトの名無しさん
2005/06/22(水) 20:50:580260デフォルトの名無しさん
2005/06/22(水) 22:45:59同じボタンを押したら、同じ新規の画面を表示(生成)するサンプルプログム
を作りたいですのでが、なにぶんにも力不足でつれません。
アドバイスをお願いいたします。(新規の画面生成を繰り返す方法)
参考URLでも結構です。
0261デフォルトの名無しさん
2005/06/22(水) 22:54:35button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Frame f = new Frame("氏ね");
f.setVisible(true);
}
});
0262デフォルトの名無しさん
2005/06/22(水) 22:56:35お前・・・それ動かしてみたか?
0263デフォルトの名無しさん
2005/06/22(水) 23:05:220264デフォルトの名無しさん
2005/06/22(水) 23:10:00文句いうのならハッキリ指摘すれ
ちっさいやつらだなぁ
おまえら、意見言うところで言わないから「使えない」PGなんだよ いつまでたっても・・・
0265デフォルトの名無しさん
2005/06/22(水) 23:12:08最小セットで質問に答えたつもりだが? ちゃんとしたコードに貼り付ければ実行できるし。
1. コードが完全じゃないのが気に入らない
2. 出したウィンドウが消えないのが気に入らない
3. 全角空白でインデント付けてるのが気に入らない
4. 無名 inner クラスを知らない
5. その他
0266デフォルトの名無しさん
2005/06/22(水) 23:15:250267デフォルトの名無しさん
2005/06/22(水) 23:32:43どういう事が原因なんでしょうか?
0268237
2005/06/22(水) 23:33:24レスありがとうございます。ライブラリクラスに変数列を渡す形にすることにします。
今作っているプログラムでクリッピングの操作は数千のオーダーで使うので、ライブラリ
にした法が良いかなと思っています。
>>241
宿題ではありません。
0269デフォルトの名無しさん
2005/06/22(水) 23:34:54コンパイラに言われたことを全て晒しさらせ
0270デフォルトの名無しさん
2005/06/22(水) 23:36:090271267
2005/06/22(水) 23:47:07AddCross.java:18: シンボルを解釈処理できません。
シンボル: メソッド setCB (CrossBlocks)
位置 : Inputplate の クラス
ip.setCB( cb );
^
エラー 1 個
メソッド名も変数名も間違ってないです.
0272267
2005/06/22(水) 23:56:580273デフォルトの名無しさん
2005/06/22(水) 23:58:050274デフォルトの名無しさん
2005/06/23(木) 00:02:31ミ ∠_)
/
/ \\
ウイーン Γ/了 | |
ウイーン |.@| | | ガッガッガッ
| / | . 人
|/ | < >_Λ∩ <267
_/ | //. V`Д´)/
(_フ彡 /
0275デフォルトの名無しさん
2005/06/23(木) 00:18:58すごく素敵です。
0276デフォルトの名無しさん
2005/06/23(木) 02:14:11を
String b = new String(a, "UTF-8")とやってから
b.getBytes("UTF-8")とやっても元のAの配列に戻ってくれません
数も合わねー
こういうものなんでしょうか?
元にもどる方法がありましたら誰か教えてください
0278262
2005/06/23(木) 07:13:510279デフォルトの名無しさん
2005/06/23(木) 07:14:42今度は「当てつけ」の誤用が来たか。
0280デフォルトの名無しさん
2005/06/23(木) 07:20:31具体的にbyte配列にどんなのを使っているの。具体的数値とかどうやって得られたとか。
0281デフォルトの名無しさん
2005/06/23(木) 07:23:21そんなの関係ありますか?値によって動きが違うんですか?
0282デフォルトの名無しさん
2005/06/23(木) 07:34:510283276
2005/06/23(木) 08:41:03普通の文字列を配列にしたものではないです。
そういうのだと上手くいきますね。
配列に入ってる値はbyteの域内のほぼランダムな値です。
十進数で表示させると−128から128までの値のどれかがめちゃくちゃに10個くらいならんでます。
なんか変な説明ですいません
そもそもビットとかバイトとにもか詳しくないので
宜しくお願いします。
0284デフォルトの名無しさん
2005/06/23(木) 09:26:34ランダムなバイト配列をUTF-8で文字に変換するという操作の意味を考え直すべきかと。
0285デフォルトの名無しさん
2005/06/23(木) 10:01:49でたらめなバイト列がUTF-8として解釈できるはずないので、String化
するときに?にでも換えられているはず。UTF-8じゃなくてISO-8859-1に
すばれ思い通りになるかもしれないが、そもそもそういうバイト列を
Stringにする必要がある時点で、何かがおかしい。なんでStringにした
いのか?
0286デフォルトの名無しさん
2005/06/23(木) 10:06:470287デフォルトの名無しさん
2005/06/23(木) 10:29:36話繋がってませんよね?
0288デフォルトの名無しさん
2005/06/23(木) 10:35:150289デフォルトの名無しさん
2005/06/23(木) 10:42:12だな。ただ、>>283 がしたいのはそういう意味だと思った。
0290276
2005/06/23(木) 10:55:38とりあえず可逆でエンコードデコードできないのは教えていただきましてわかったので設定見直してちゃんとバイナリ返すようにするか
それがどうしても駄目なら登録でベース64で変換してから登録するようにします。
有難うございました
0291デフォルトの名無しさん
2005/06/23(木) 13:03:30そのまま見送ったほうがいいんだろうな。
0292デフォルトの名無しさん
2005/06/23(木) 13:41:39敗因は早漏
0293デフォルトの名無しさん
2005/06/23(木) 15:54:17国語の成績悪かったろw
0294デフォルトの名無しさん
2005/06/23(木) 16:24:29途中で辞めてしまいました。
また初めてみようと思ってるのですが、1年前の本でも大丈夫ですか?
あたらしく買ったほうが良いでしょうか?
0295デフォルトの名無しさん
2005/06/23(木) 16:25:051年前ので十分
0296デフォルトの名無しさん
2005/06/23(木) 16:34:140297デフォルトの名無しさん
2005/06/23(木) 16:45:590298デフォルトの名無しさん
2005/06/23(木) 16:59:51ありがとう!
0299デフォルトの名無しさん
2005/06/23(木) 17:55:58getText() すると、いわゆる全角文字がすべて ddddd; にエスケープされて
しまうんだけど Unicode のまま取り出す方法は無いですかね?
0300デフォルトの名無しさん
2005/06/23(木) 19:01:07> いわゆる全角文字がすべて ddddd; にエスケープされて
ウチではされなかったけど。
0301デフォルトの名無しさん
2005/06/23(木) 20:20:24URLを入力し、以下のメソッドを呼んでいます。
public void PlayMP3(URL urlPass){
try{
Player mp3Player = Manager.createRealizedPlayer(urlPass);
mpePlayer.start();
} catch(NoPlayerException npe){ return; }
} catch(CannotRealizedException cre){ return; }
} catch(IOException ioe){ return; }
}
本来は例外対処もちゃんと書いております。
URLが、http://から始まるものであれば、問題なく再生されます。
しかし、URLがディスク上のファイルパスの場合は実行時にエラーが出ます。
ファイルパスはlinux環境なので、URL url = new URL("file:" + filePass );
としています。filePassはString型で、例えばtext形式のファイルを読込ませて
表示するものは上手く出来ているので、filePassは正しく作られています。
HDDに記録されたmp3ファイルを再生するには、どうしたらよいのでしょうか?
次レスに報告されたエラーを載せます。
標準出力を入れてみた結果、Player mp3Player = Manager.createRealizedPlayer(urlPass);
の行でエラーが出ている様です。
0302301
2005/06/23(木) 20:22:23at com.ibm.media.parser.video.MpegParser.convBytesToTimeAV(MpegParser.java:781)
at com.ibm.media.parser.video.MpegParser.updateDurationAudioVideoOnly(MpegParser.java:846)
at com.ibm.media.parser.video.MpegParser.updateEOMState(MpegParser.java:954)
at com.ibm.media.parser.video.MpegParser.initTrackAudioVideoOnly(MpegParser.java:632)
at com.ibm.media.parser.video.MpegParser.getTracks(MpegParser.java:330)
at com.sun.media.BasicSourceModule.doRealize(BasicSourceModule.java:180)
at com.sun.media.PlaybackEngine.doConfigure1(PlaybackEngine.java:229)
at com.sun.media.PlaybackEngine.doConfigure(PlaybackEngine.java:193)
at com.sun.media.ConfigureWorkThread.process(BasicController.java:1370)
at com.sun.media.StateTransitionWorkThread.run(BasicController.java:1339)
上で書いた問題と思われる個所を try{ }catch(NullPointerException npe){//}
で囲んで見ましたが、ここでcatchされず、エラー表示に変化はありませんでした。
よろしくお願いします。
0303デフォルトの名無しさん
2005/06/23(木) 23:11:05ありがとうございました。他の方もありあがとう
ございました。連続の意味が異なりました。
IEで例えると ファイル -> 新規作成 -> ウィンドウ
と操作するウィンドウが連絡して開くという意味でした。
0304デフォルトの名無しさん
2005/06/23(木) 23:39:55>Player mp3Player = ...
>mpePlayer.start();
mpePlayerとmp3Playerは別?
urlPassの中身がnullでないかは大丈夫だよね?
0305デフォルトの名無しさん
2005/06/23(木) 23:52:59EclipseのJAR生成機能は漏れ的には不満だな。
Antのほうが融通が利くというか。
0306デフォルトの名無しさん
2005/06/23(木) 23:54:46だんだんウザイスレになってきたな。
0307デフォルトの名無しさん
2005/06/23(木) 23:55:11JarタスクにMANIFEST.MFからantのバナー削る(というか、挿入しない)オプション付けたのを
ふと思い出した
まぁ小手先の細工はしょせん小手先の細工ですたが。
0308デフォルトの名無しさん
2005/06/24(金) 00:12:150309デフォルトの名無しさん
2005/06/24(金) 00:15:22http://pc8.2ch.net/test/read.cgi/tech/1046627795/1-304
0310301
2005/06/24(金) 02:05:11レスありがとうございます。
>mpePlayerとmp3Playerは別?
タイプミスです。mp3Playerです。
>urlPassの中身がnullでないかは大丈夫だよね?
はい、ちゃんとパスは入っていました。
createRealizedPlayerメソッドの中にtry catchがあってそこで例外を
拾っているのでしょうか・・・。
JMFはクラスの解説サイトとかが乏しいので苦難しております。
0311デフォルトの名無しさん
2005/06/24(金) 05:06:03Eclipseってへんなantつかってるの?
0312デフォルトの名無しさん
2005/06/24(金) 09:01:210313デフォルトの名無しさん
2005/06/24(金) 10:00:46しかも教えて貰うことが当たり前だと勘違いしている。
で、思い通りにいかないと逆ギレして暴れる。
まるで中学生みたいだ。
最近の大学生は中学生みたいな餓鬼ばかりなのか。
0314デフォルトの名無しさん
2005/06/24(金) 11:06:32マジレスすると、その通り。
ゆとry
0315デフォルトの名無しさん
2005/06/24(金) 11:12:15テキストボックスに文字をタイプし
その後ボタンを押すと,下にその文字が表示される
というプログラムを書こうと思い,以下のように書いたのですが
なぜか文字がちゃんと表示されません.
いろいろ考えたのですが原因がどうしてもわかりません
どなたか教えてくださいませ
0316315
2005/06/24(金) 11:16:58import java.awt.*;
import javax.swing.event.*;
import javax.swing.*;
import java.awt.event.*;
public class TestButton extends {
private static String labelPrefix = "New string:";
private String newString;
private JLabel label;
private JTextField text;
class ButtonAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
label.setText(labelPrefix + text.getText());
}
}
public Component createComponents() {
label = new JLabel(labelPrefix + "XXX");
text = new JTextField();
JButton button = new JButton("Move!");
ButtonAction buttonListener = new ButtonAction();
button.addActionListener( buttonListener );
0317315
2005/06/24(金) 11:17:42pane.setLayout(new GridLayout(0, 1));
pane.add(text);
pane.add(button);
pane.add(label);
return pane;
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) { }
JFrame frame = new JFrame("SwingApplication");
SwingApplication app = new SwingApplication();
Component contents = app.createComponents();
frame.getContentPane().add(contents, BorderLayout.CENTER);
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
frame.pack();
frame.setVisible(true);
}
}
0318315
2005/06/24(金) 11:29:30板汚しごめんなさい
0319デフォルトの名無しさん
2005/06/24(金) 13:37:35判定したいのですが何を使ったら宜しいですか?
0320デフォルトの名無しさん
2005/06/24(金) 14:08:59最近にちゃんねるはじめたのか?
0321デフォルトの名無しさん
2005/06/24(金) 14:53:36簡単なサンプル作ってみた。使い方が悪いのか環境が悪いのかどっちだろう?
すみません、ちょっと長いですが。
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class a extends JFrame{
public a(){
final JEditorPane editor = new JEditorPane();
editor.setContentType("text/html");
this.getContentPane().add(editor);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.out.println(editor.getText());
System.exit(0);
}
});
}
public static void main(String[] args){
System.out.println("Locale : " + Locale.getDefault());
System.out.println("Encoding: " + System.getProperty("file.encoding"));
JFrame f = new a();
f.setVisible(true);
}
}
0322デフォルトの名無しさん
2005/06/24(金) 14:55:22Locale : ja_JP
Encoding: MS932
<html>
<head>
</head>
<body>
<p>
あいうえおabcde
</p>
</body>
</html>
java version "1.4.2_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-b05)
Java HotSpot(TM) Client VM (build 1.4.2_07-b05, mixed mode)
0323デフォルトの名無しさん
2005/06/24(金) 14:56:32あいうえおabcde
0324デフォルトの名無しさん
2005/06/24(金) 18:29:58lengthでは無理ですか?
0325デフォルトの名無しさん
2005/06/24(金) 18:38:150326デフォルトの名無しさん
2005/06/24(金) 19:08:31<OBJECT>がString型だったら文字列が返ってきますけど、
配列とかbeanとかだと、「クラス名@ハッシュコード」という形になりますよね。
これを、クラス名@ハッシュではなく、
中身が視認できる形式でダンプしてくれるライブラリがあった気がするんですが、
ご存じの方います?
jakarta-commons-langのObjectUtilsやStringUtilsを漁ってみたんですが、
目的のものがなかったとです。。。
0327デフォルトの名無しさん
2005/06/24(金) 19:10:04サンクス
0328デフォルトの名無しさん
2005/06/24(金) 19:44:28toString()をオーバーライドしなされ
0329デフォルトの名無しさん
2005/06/24(金) 19:58:490330デフォルトの名無しさん
2005/06/24(金) 20:26:37他人事みたいに言っちゃダメだね。
0331デフォルトの名無しさん
2005/06/24(金) 20:49:01プログラムを作っているのですが,Timerクラスを使ってもうまく行きません。
sleepメソッドやwaitメソッドも試しましたがどちらも駄目でした。
どうにかして一定時間止めるようにしたいのですが,何かうまい方法はありませんか??
0332デフォルトの名無しさん
2005/06/24(金) 21:28:43うまくいかなったソースは?
0333デフォルトの名無しさん
2005/06/24(金) 22:12:34�@
private class BActionListener implements ActionListener{
public void actionPerformed(ActionEvent ae){
A.setEnabled(false);
B.setEnabled(false);
final Obje o1 = getObje();
d.setObje(o1);
// 一定時間を待つ
java.util.Timer t = new java.util.Timer();
t.schedule(new TimerTask(){
public void run(){
backObje.setIcon(o1.getIcon());
AButton.setEnabled(true);
BButton.setEnabled(true);
}
}, 1000);
0334デフォルトの名無しさん
2005/06/24(金) 22:13:07while(d.getValue() < CONSTANT){
t.schedule(new TimerTask(){
public void run(){
d.showObje();
}
}, 1000);
final Obje o2 = getObje();
d.setObje(02);
// 一定時間を待つ
t.schedule(new TimerTask(){
public void run(){
d.showObje();
AButton.setEnabled(true);
BButton.setEnabled(true);
}
}, 1000);
}
}
}
showObjeが画像表示メソッドです。
↑
逆にすればよかったorz
0335デフォルトの名無しさん
2005/06/24(金) 22:16:090336デフォルトの名無しさん
2005/06/24(金) 23:35:15Timer#schedule(TimerTask,long,long)で一回だけタスク指定して条件が整ったらキャンセル汁。
0337デフォルトの名無しさん
2005/06/24(金) 23:51:52もう少し詳しくお願いします
一回だけタスク指定とか言われてもちょっとぴんときません。
0338デフォルトの名無しさん
2005/06/25(土) 00:06:430339デフォルトの名無しさん
2005/06/25(土) 01:53:14できたファイルをダブルクリックすると
Failed to load Main-Class manifest attribute from...
というメッセージが出てきてしまい実行できません。
このような場合、どうすれば実行可能なjarファイルができますか?
0340デフォルトの名無しさん
2005/06/25(土) 02:11:33メソッドまで指定してるってのにその反応かよorz
ピンと来ないとか寝ぼけた事言ってないで、まずこれを読め。
ttp://java.sun.com/j2se/1.5/ja/docs/ja/api/java/util/Timer.html
んで、藻前が使ってるのはこれ「Timer#schedule(TimerTasktask,longdelay)」だが、これだと
delay ms後にtaskを一回実行するだけだ。
で、漏れが言ってるのは、こっち「Timer#schedule(TimerTasktask,longdelay,longperiod)」を使って、
以下の様にすれば、whileループなんか要らねーだろって事だ。
new TimerTask(){
public void run(){
#ここに描画前処理(表示画像の切り替え等)
d.showObje();
if(#終了条件が満たされていれば){
#ここに終了時処理
cancel();
}
}
};
0341デフォルトの名無しさん
2005/06/25(土) 02:38:40どうすればよいですか?
0342デフォルトの名無しさん
2005/06/25(土) 02:50:51またはプロセスタブで javaw.exe を選択してプロセスの終了。
0343デフォルトの名無しさん
2005/06/25(土) 04:42:14MessageDrivenBean経由で呼べと言われました
どうするのがクールでしょうか?
やってもよいこと
MDBが動く鯖に既存アプリを置いてもよい
制約
RMI禁止(なんか嫌いだそうな)
WebService禁止(なんか嫌いだそうな)
絶対MDB使え(JMS直接使用禁止)
0344343
2005/06/25(土) 04:48:16とりあえず現状では
EAR
WAR(自分アプリ)
MDB
lib
使用するライブラリ一式
という構成にしてクラスロダを共有させてしまい
MDBから自分アプリのクラスを直接触れるようにして解決しています
0345343
2005/06/25(土) 04:50:50EAR
WAR(自分アプリ) without クラス、ライブラリ
MDB
lib
使用するクラス、ライブラリ一式
0346デフォルトの名無しさん
2005/06/25(土) 08:13:27ターミナルからps axして、pidを調べ、killで止める
0347デフォルトの名無しさん
2005/06/25(土) 16:30:49graphicsクラスを使って表示した図形をbmpなりpngなりの画像で保存する方法って、ありますか?
Alt+PrntScrnで毎回保存するのはばかげているし。
0348デフォルトの名無しさん
2005/06/25(土) 17:29:28sizeとsuffixはお好みで。
importは必要に応じて。
BufferedImage image = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
component.paint(g);
Iterator<ImageWriter> i = ImageIO.getImageWritersBySuffix(suffix);
while (i.hasNext()) {
ImageWriter writer = i.next();
try {
ImageOutputStream output = ImageIO.createImageOutputStream(file);
writer.setOutput(output);
writer.write(image);
output.close();
break; // or return true;
} catch (final IOException e) {
//エラー処理
}
}
// return false;
breakした場合は保存されてる。
breakせずにループを抜けてしまった場合は適合するImageWriterがなかった。
メソッド化するなら真偽値で返したほうがいいかもな。
0349デフォルトの名無しさん
2005/06/25(土) 17:31:12画像に吐き出すコードになっている。
component.paint(g) のところを g.draw(xxx)の呼び出しの羅列に
してももちろんOKのはず。
0350デフォルトの名無しさん
2005/06/25(土) 17:41:360351デフォルトの名無しさん
2005/06/25(土) 23:23:37packageなしでコーディングをしたfoo.classとbar.jpg、SWT.jarをhoge.jarにまとめた場合
マニフェストのclass-pathにはどう記述すればいいですか?
普通に Class-Path: . swt.jar としてしまうとhoge.jarと同じディレクトリをみてしまうし
Class-Path: hoge.jar でも怒られてしまいます…
0352デフォルトの名無しさん
2005/06/25(土) 23:25:150353351
2005/06/25(土) 23:35:46回答ありがとうございます。
ではjarの中にjarを入れてはいけないということでしょうか?
また、jarの中にjpgを入れた場合も同様にダメなのですか?
0354351
2005/06/25(土) 23:46:420355デフォルトの名無しさん
2005/06/26(日) 00:18:23勝手に人のものを、自分の jar に含めるのはお勧めできない。
jpg は問題ない。
0357デフォルトの名無しさん
2005/06/26(日) 03:19:19/********** paint ***************/
public void paint(Graphics g) {
○○○ h3 = new ○○○(200, 100, 50, Color.blue, Color.green);
h3.construct(g);
}
その図形をGUIプログラムによって表示された画面をクリックしたときに表示されるようにしたいんですけど、
public void mouseClicked(MouseEvent e) {
Graphics g = getGraphics();
← ここにはなんて書けばいいんでしょうか? (e.getX() e.getY()を使って)
g.dispose();
}
0358デフォルトの名無しさん
2005/06/26(日) 03:29:230359デフォルトの名無しさん
2005/06/26(日) 03:49:07jarの中のjarを読み込めるClassLoaderを作って
実行時にそのClassLoaderを使って自分で読み込めばよい。
0360デフォルトの名無しさん
2005/06/26(日) 10:12:51このファイルの最終更新日時を取得することは可能でしょうか?
0361デフォルトの名無しさん
2005/06/26(日) 10:29:140362デフォルトの名無しさん
2005/06/26(日) 10:35:28importする。
0363デフォルトの名無しさん
2005/06/26(日) 10:41:00getResourceをstaticブロックで行うことは可能でしょうか。
0364デフォルトの名無しさん
2005/06/26(日) 13:38:54//double mean = computeMean(examScores);
if(Statistics.computeMean(examScores)>= 90) &&
(Statistics.computeMean(examScores) <= 100)
return 'A';
こいつが、illegal start of expressionというエラーを出します。
いきなり、if statementを使うというのはみとめられてないのでしょうか??
0365デフォルトの名無しさん
2005/06/26(日) 13:53:030366デフォルトの名無しさん
2005/06/26(日) 14:45:48public class Foo{
static{
URL url = Foo.class.getClassLoader().getResource("...");
}
}
0367360
2005/06/26(日) 14:53:56ムリなんでしょうか。
0368デフォルトの名無しさん
2005/06/26(日) 15:00:49そもそも何がしたい? 設定の自動リロードか? バージョン表示か?
0369デフォルトの名無しさん
2005/06/26(日) 16:20:33クラスパスさえ通っていればimportはまったく関係ない
0370デフォルトの名無しさん
2005/06/26(日) 17:40:54アプレットを含めたJARファイルを作成して
<applet archive="〜.jar" ・・・>
という風にしていて、JARファイルの中のファイルをローカルにコピー
するのですが、既にコピーされている場合はその処理を飛ばす、
ということをしたいのです。
これだとファイルの存在チェックをすればいいのですが、そのファイルを
更新した場合は上書きする、というようなことをやりたいのです。
分かりにくくてすいません。
0371デフォルトの名無しさん
2005/06/26(日) 18:36:21自分で全部処理するって手もあるけど。
0372デフォルトの名無しさん
2005/06/26(日) 18:39:24いつも FQN で書いてんの?
>>370
毎回上書きで良いと思うが。更新されたか知りたければ 2 ファイルを
バイナリレベルで比較でも良い。
0373デフォルトの名無しさん
2005/06/26(日) 20:59:47パフォーマンスとか無視?
0374デフォルトの名無しさん
2005/06/26(日) 21:06:03>更新されたか知りたければ 2 ファイルをバイナリレベルで比較でも良い。
それでどっちが新しいかわかるん?
0375デフォルトの名無しさん
2005/06/26(日) 21:08:34ファイルサイズが数百MBとか、VPN on ダイアルアップでファイル共有してる
ディレクトリとかならともかく、起動ごと程度の頻度で現実的に問題になると?
0376デフォルトの名無しさん
2005/06/26(日) 21:09:35JAR に入ってるのが「真」だろ? おまえスレ読んでねーだろ。
0377369
2005/06/26(日) 21:13:29>いつも FQN で書いてんの?
>JSPで\web-inf\classesに作ったクラスを使用するにはどうしたらいいですか?
という質問に対して
>importする。
という回答がおかしいといっているだけ。
0378デフォルトの名無しさん
2005/06/26(日) 21:22:32格好良いと思ってるのか、否定しといて自分の意見を言わない奴が最近
目に付く。
0379デフォルトの名無しさん
2005/06/26(日) 21:28:18で?
0380デフォルトの名無しさん
2005/06/26(日) 21:28:38その手の条件は一切書かれていなかったよね。
0381デフォルトの名無しさん
2005/06/26(日) 21:49:470382デフォルトの名無しさん
2005/06/26(日) 22:01:59意外な反応だな。
0383デフォルトの名無しさん
2005/06/26(日) 22:02:24言えてる。
ようするに厨房が増えたってことだね。
最近の大学生にもああいうバカが増えてる感じだ。
アルバイトとして入ってきた学生プログラマのうち
何人かは自己中で我が儘で態度がでかい。
そういう奴が多い。
そのくせ寂しがり屋というのが笑えるが。
0384デフォルトの名無しさん
2005/06/26(日) 22:03:31JARから出たファイルに手を加えることがあった場合とかに
それじゃわかんないだろうと思ったん。
0385デフォルトの名無しさん
2005/06/26(日) 22:10:370386デフォルトの名無しさん
2005/06/26(日) 22:59:26お前何歳?
0387デフォルトの名無しさん
2005/06/26(日) 23:05:510388120
2005/06/26(日) 23:19:29>失礼しました。
ワラタ
0389デフォルトの名無しさん
2005/06/26(日) 23:26:51ワロスwww
0390デフォルトの名無しさん
2005/06/26(日) 23:30:29自演かよ。
0391デフォルトの名無しさん
2005/06/27(月) 05:41:18そういう事をする為のライブラリってありますか?
0392デフォルトの名無しさん
2005/06/27(月) 06:01:580393デフォルトの名無しさん
2005/06/27(月) 06:38:29int[] y = {5, 5, 6, 10, 12}
Vector temp = new Vector();
for (int i = 0; i < x.length; i++) {
boolean flag = false;
for (int j = 0; j < y.length; j++) {
if (x[i] == y[j])
flag = true;
}
if (flag) {
temp.add(new Integer(x[i]);
System.out.print(x[i] + ", ");
}
}
上のコードのoutputが何で、10,12,6になるのかわかりません。
説明もらえますか?
0394デフォルトの名無しさん
2005/06/27(月) 06:41:26そのコードだとその結果になるのは当然だとしか言いようがない。
おまえが期待する結果は何だ?
0395デフォルトの名無しさん
2005/06/27(月) 06:51:35あんさんはエクセルか!!!!!!!!!!!
0396デフォルトの名無しさん
2005/06/27(月) 07:03:16。
0397デフォルトの名無しさん
2005/06/27(月) 07:09:12死ねば?
0398デフォルトの名無しさん
2005/06/27(月) 08:24:10どんな答えを求めてるの?
それ基本的な構文しかないんだけども、
英会話だとばーなーなー言ってるレベル、説明って全部教えろなのか、
自分のスペックを晒せ!期待する返答のテンプレをはれ!!
取り乱してしまったお詫びに答えてみます。でっなに答えるんだ
flag = x[0] == y[0];
flag = x[0] == y[1];
flag = x[0] == y[2];
flag = x[0] == y[3]; // 10 == 10
temp.add(new Integer(x[i]);
System.out.print(x[i] + ", ");
flag = x[0] == y[4];
flag = x[1] == y[0];
通じないなら無駄だやめちまえ、故郷へかえればかもん
>397
質問?それはきっとclasspathだよ!
0399デフォルトの名無しさん
2005/06/27(月) 09:24:400400デフォルトの名無しさん
2005/06/27(月) 09:36:27and has methods Fraction(num, denom), getNum(), getDenom(),
setNum(num), setDenom(denom), equals(x) with obvious meaning.
Given
Fraction a = new Fraction(2,3);
Fraction b = a;
Fraction c = (Clone) a.clone();
final Fraction d = new Fraction(2,3);
Fraction e = new Fraction(a.getNum(), a.getDenom());
(a) (a==b) is it true or false?
(b) (a.equals(b)) is it true or false?
(c) (a==c) is it true or false?
(d) (b.equals(c)) is it true or false? T
(e) (c.equals(e)) is it true or false?
(f) Is the assignment d = b; legal?
(g) Is the method invocation c.setNum(5) legal?
(h)Is the method invocation d.setNum(5) legal?
After the assignment a.setNum(4); is
(i)a.equals(b) true or false?
(j)a.equals(c) true or false?
(k) a == b true or false?
英語ですいません、答え合わせをしたいんですけど、どなたか
お願いします。
0401デフォルトの名無しさん
2005/06/27(月) 14:08:27> Fraction c = (Clone) a.clone();
コンパイル通らねーんじゃ?
0402デフォルトの名無しさん
2005/06/27(月) 14:31:50答え合わせならまずキミの解答を書こうな。
しかし、Fraction(num, denom)はmethodじゃなくてconstructorだろ、と言いたい。
0403デフォルトの名無しさん
2005/06/27(月) 16:46:18TreeMap<E, Object>となっていますが、Valueの方を使わないなら無駄なので、
Treeを使ってTreeSet, TreeMapを実装した方がよさそうですが。
0404デフォルトの名無しさん
2005/06/27(月) 16:47:420405デフォルトの名無しさん
2005/06/27(月) 23:04:24指定することは可能でしょうか?
イメージ的にはこんな感じです。
<Context path="/aaa" docBase="C:\docs;C:\jsp" 〜/>
下記はだめでした。(Tomcat が起動できず)
<Context path="/aaa" docBase="C:\docs" 〜/>
<Context path="/aaa" docBase="C:\jsp" 〜/>
C:\docs 配下に aaa というディレクトリを無理やり作っても×。
<Context path="/" docBase="C:\docs" 〜/>
<Context path="/aaa" docBase="C:\jsp" 〜/>
Tomcat5.5 にバージョンアップしようとしてるのですが
過去の資産がなぜか静的コンテンツと JSP が同じパスになっています。
本番環境は WebLogic だったので、WebLogic では問題なかったのかもしれません。
以前のローカル環境は Baykit XML Server だったようで
docBase="C:\docs;C:\jsp" のような設定が可能だったようです。
0407デフォルトの名無しさん
2005/06/27(月) 23:38:17ある。
0408デフォルトの名無しさん
2005/06/27(月) 23:41:18できる。
0409デフォルトの名無しさん
2005/06/27(月) 23:46:02つ [BoxLayout]
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/BoxLayout.html
0410デフォルトの名無しさん
2005/06/28(火) 05:44:02int a[] = {116,184,17663,8211,5816};
みたいな初期化の文みたいにまとめて書く事って出来ませんか?
a[0] = 116;
a[1] = 184;
...
と書くしかないんでしょうか?
0411デフォルトの名無しさん
2005/06/28(火) 06:38:02いまいち何言ってるかわからんけど処理の途中に
a = {116,184,17663,8211,5816};
じゃいかんのか?
0412デフォルトの名無しさん
2005/06/28(火) 07:17:08おい
0413デフォルトの名無しさん
2005/06/28(火) 08:13:450414デフォルトの名無しさん
2005/06/28(火) 08:21:49java [arg ...]
常になんかしらのオプションを付加させたかったりします。
java Main 111 から java -Xdebug Main 111
手軽でリスク少ない方法について少し語りませんか?
わたしは聞いてます。
java.bat とか #!java しか浮かびません
呼ばれ方で全く無意味になり大変
知恵を貸してください。
0415デフォルトの名無しさん
2005/06/28(火) 08:25:35write(byte[])じゃだめなのかい?
>414
Good Job!
みな!紳士の414がいい議題をもってきた、熱く語ろう
0416デフォルトの名無しさん
2005/06/28(火) 14:12:41その clone メソッドが C++ で言うコピーコンストラクタに相当するわけですよね?
0417デフォルトの名無しさん
2005/06/28(火) 14:13:540418デフォルトの名無しさん
2005/06/28(火) 14:15:42コピーコンストラクタがディープコピーかという話はおいて置いて、まぁそういう事だ。
0419416
2005/06/28(火) 14:22:32有難う御座います。勉強になります。
>>417
クラスのメンバへの参照だけをコピーするのが「浅いコピー」
C でいうところのポインタだけを渡したものだと思えばいい。
A.herName = "Emi";
B = A;
B.herName = "Kaori";
System.out.println(A.herName);
これを実行すると A も B も香織さんになる。これが浅いコピー。
メンバーの実体もコピーされる(別な記憶域が確保される)のが深いコピー。
0420デフォルトの名無しさん
2005/06/28(火) 15:00:35J2E1.2では、座標指定で表示できたり、アイコンなどもドラッグ移動できたりした記憶があるのですが。
(なにぶん数年前なので記憶が思い出せない)
0421デフォルトの名無しさん
2005/06/28(火) 15:59:32iTextでAcrobat javascriptを定義しようとしているのですが、itextでAcrobat javascriptのfunctionの定義ってできますか?
散々探したのですが、アラートのサンプルしかなく途方にくれています。
よろしかったらお力をお貸しください。
0422デフォルトの名無しさん
2005/06/28(火) 18:06:19一般的なスタイルとか、クラスとか勉強してきま
0423デフォルトの名無しさん
2005/06/28(火) 18:21:22jの数って8つまでなんですか?それ以上の数で宣言することはできるんですけど、
コンストラクタを呼び出そうとするとArrayIndexOutOfBoundsExceptionがでます。
0424デフォルトの名無しさん
2005/06/28(火) 18:27:030425デフォルトの名無しさん
2005/06/28(火) 18:27:29なんで、Javaは、1ファイルに1つのPublicなクラスしか入れられないのですか?
複数入れられた方が、ツリー構造のPublicなクラスを一つのファイルで記述できたりして
いいような気がするのですが・・・
0426デフォルトの名無しさん
2005/06/28(火) 18:28:530427デフォルトの名無しさん
2005/06/28(火) 18:44:07ファイルシステムがすでにツリー構造だから、かな?
少なくともひとつのファイル内でツリー構造を表現する方が無理があると思うけど・・・。
ん?ファイルシステムがツリー構造じゃないシステム上で実装されたJavaは(あるとしたら)どうなるんだ?
0428デフォルトの名無しさん
2005/06/28(火) 20:22:59おい
0429デフォルトの名無しさん
2005/06/28(火) 20:40:44int[] data ={ 4,8,1,0,8,0,1 };
System.out.println("before");
for (int i=0; i < data.length; i++){
System.out.print(data[i]+" ");
}
System.out.println(" ");
for (int i=0; i < data.length -1; i++){
for (int j=i+1; j < data.length; j++){
if(data[i] > data[j]) {
int a= data[i];
data[i]= data[j];
data[j]= a;
}
}
}
System.out.println("after");
for (int i=0; i < data.length; i++){
System.out.print(data[i]+" ");
}
}
}
このソートプログラムなんですが、模範解答のようにやるとちゃんと左から小さい順番に数字が並ぶのですが、自分が考えるとどうしても最終的に
int[] data ={4,1,0,8,9,1,8}
という並び順にしか理解ができないのです。
私の考えてやっていくと、まず二つのforによって比べられている最初の数字をみてdata[i]<data[j]となってifの条件式にあてはまらないので4が左のまま。
次に比べる数字はdata[i]>data[j]となるので8と1を交代させ→int[] data ={ 4,1,8,0,8,0,1 }、次も[i]>data[j]となるので8と0を交代させる→int[] data ={ 4,1,0,8,8,0,1 }。
自分の考えでやっていくと最終的にint[] data ={4,1,0,8,9,1,8}となる。
このように左から小さい順にならばないのです。
先輩方私にどうか正しい考え方を教えてください
0430デフォルトの名無しさん
2005/06/28(火) 20:49:53間違った指令を忠実に実行します
己を信じるな、全部己を疑え
0431デフォルトの名無しさん
2005/06/28(火) 20:52:19for (int i=0; i < data.length -1; i++){
for (int j=i+1; j < data.length; j++){
if(data[i] > data[j]) {
int a= data[i];
data[i]= data[j];
data[j]= a;
}
// ↓これでも入れてよく考えろ
System.out.print("[" + i + ":" + j + "] ");
for (int x=0; x < data.length; x++) System.out.print(data[x]+" ");
System.out.println();
}
}
0432デフォルトの名無しさん
2005/06/28(火) 20:56:48そんなことないですよね。
0433デフォルトの名無しさん
2005/06/28(火) 21:12:55import java.awt.*;
import java.awt.event.*;
public class DotTest extends Canvas{
private DotTest(){
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent me){
Graphics g = getGraphics();
// update(g);paint(g);
repaint();
g.fillRect(me.getX(), me.getY(), 5, 5);
}
});
Frame f = new Frame("DotTest");
f.add(this);
f.setSize(400,400);
f.setVisible(true);
}
public static void main(String[] args){
new DotTest();
}
}
マウスでクリックすると、そこが黒く描画され、
さらにクリックすると、先にクリックした点が消えてあらたな点が描画されるプログラムなのですが、
repaint()を使うとうまく描画されず、update(g)やpaint(g)を使うとうまくいくのはなぜでしょうか。
0434デフォルトの名無しさん
2005/06/28(火) 21:18:07http://pc8.2ch.net/test/read.cgi/tech/1109330204/606
◇- has> →HashMap
設置場所クラス<名前適当
◇- 1 Aggregation 0..* →InstallationAdapter◇- 1 Aggregation 1→Machine
固有ID(配置番号)はHashMapのキーがそのまま使えませんか?
固有ID特有の条件(追加不可等)は設置場所クラスで実装。
導入日等が不変であるなら(コンストラクタ)InstallationAdapter(Date, Machine)
等としてImmutable化。
こんな感じだとどうでしょう?
0435デフォルトの名無しさん
2005/06/28(火) 21:22:05あるボタンを押したときと同じ処理を,キーボードの'A'を押したときにも
行わせたいのですが,このようにするにはALTも押さなくてはなりません。
(ニーモニックキーとして使用)
KeyListenerを実装しようとも思ったのですが,
それだとactionPerformedの中の処理と同じ内容をコピーしてこなくてはいけないので
効率が悪いと判断してニーモニックキーを使用しています。
0436デフォルトの名無しさん
2005/06/28(火) 21:28:06KeyListener と ActionListener の中で同じメソッドを呼べば良い。
0437デフォルトの名無しさん
2005/06/28(火) 21:30:29やっぱりメソッド化ですか。
おとなしくそうします
0438デフォルトの名無しさん
2005/06/28(火) 21:31:45明示的に解放することは可能でしょうか。
0439デフォルトの名無しさん
2005/06/28(火) 21:58:36編集中の内容を保存したいんだけど、JInternalFrame の全部のコンポーネントに
KeyListener を仕掛けなきゃだめ?
0440デフォルトの名無しさん
2005/06/28(火) 22:17:21描画前にリペイントよびだしてどうする
0441デフォルトの名無しさん
2005/06/28(火) 22:33:050442デフォルトの名無しさん
2005/06/28(火) 22:45:44ね
0443デフォルトの名無しさん
2005/06/28(火) 23:27:23大きさを変えたりするのってどうやるんでしょうか? ヒント教えてください。
0444デフォルトの名無しさん
2005/06/28(火) 23:36:58ArrayListとVectorの違いがよくわかりません
同期の問題が出る場合後者を使うって感じで問題ないのでしょうか?
前者をラップして使う方法は一応ですが知っています
あとHashSetに対応するものもあると思うのですがわかりません・・・
この辺りのコレクションフレームワークの使い分けとかを教えてください
0445デフォルトの名無しさん
2005/06/28(火) 23:44:10Hashtabl, Vector は JDK 0.9〜1.1 の頃に使用されていたもの。初期バージョンとはいえ
さすがにコレクションくらい使えないとまずいでしょ。その後 J2SE 1.2 でコレクションフレー
ムワークがきちんと作り直され、Hashtable や Vector は過去との互換性のために残された。
MS JVM (JDK 1.1相当) で動かす前提とかならこれらのクラスが必要だが、それ以外は
Map や List 使っとけ。ちなみに 1.1 までは Set に対応するものは無かった。
0447デフォルトの名無しさん
2005/06/29(水) 00:07:21いじる場所で排他かけるべし
0448デフォルトの名無しさん
2005/06/29(水) 00:39:53public void keyReleased(KeyEvent ke){}
public void keyPressed(KeyEvent ke){
int keycode = ke.getKeyCode();
if(keycode == KeyEvent.VK_S){
standAction();
}
}
public void keyTyped(KeyEvent ke){}
こんなん作ってみましたけど動きません。
0450デフォルトの名無しさん
2005/06/29(水) 00:44:35KeyListenerをインプリメントしてない
or
addKeyListenerをしてない
のどちらかだな
0451デフォルトの名無しさん
2005/06/29(水) 00:46:20private class StandActionListener implements ActionListener, KeyListener
というプライベートクラスを使ってます。
actionPerformedの方は問題なく動きます。
0452デフォルトの名無しさん
2005/06/29(水) 00:49:32解決しました。
0453デフォルトの名無しさん
2005/06/29(水) 02:58:22http://www.amazon.co.jp/exec/obidos/ASIN/4569620973/250-1090913-6566616
0454デフォルトの名無しさん
2005/06/29(水) 07:15:20理由は?
0455デフォルトの名無しさん
2005/06/29(水) 07:49:11InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(reader);
String str = br.readLine(); int res = Integer.parseInt(str);
if(!str.matches("[1-2]+")){
System.out.println("1、2から選択してください。");
continue;}
if(res == 1){ System.out.println("キーワードを入力");
reader = new InputStreamReader(System.in); br = new BufferedReader(reader);
str = br.readLine(); String sql = "SQL文"; ResultSet result = stmt.executeQuery(sql);
Vector vector1 = new Vector(); String[] array1 = new String[2];
while(result.next()){ array1[0] = result.getString("Res1");
array1[1] = result.getString("Res2"); vector1.addElement(array1);
array1 = new String[2];} for(int i = 0;i < vector1.size();i++ ){
String Res1 = null; String Res2 = null; String[] str1 = (String[])vector1.get(i);
Res1 = str1[0]; Res2 = str1[1]; System.out.println("Res1,Res2は" + Res1 + "\t" + Res2);}}
if(res == 2){1と似ているので省略・・}}catch(IOException e){System.out.println(e + "例外が発生しました");}}}
長すぎる!メソッドを分割しろ!!と怒られました・・。
コツ教えてください
0456デフォルトの名無しさん
2005/06/29(水) 08:01:26だれに怒られたんだ?先輩か?
0457デフォルトの名無しさん
2005/06/29(水) 09:47:11BufferedReaderの引数はコンストラクタそのまま書けば一行短くできる。
「リファクタリング」って名著があるよ。
0458デフォルトの名無しさん
2005/06/29(水) 09:59:06import java.awt.*;
import java.awt.event.*;
import java.io.*;
0459デフォルトの名無しさん
2005/06/29(水) 10:00:43public class Kintai extends JFrame implements ActionListener
{
JButton button;
JLabel label;
// コンストラクタ
public Kintai(String title)
{
super(title);
// コンテントペインを取得
Container contentPane = getContentPane();
// レイアウトマネージャーを設定
contentPane.setLayout(new GridLayout(2,1));
// ラベルを生成
label = new JLabel("出勤退勤時間設定");
// 文字を真ん中に表示
label.setHorizontalAlignment(SwingConstants.CENTER);
// ラベルを追加
contentPane.add(label);
0460デフォルトの名無しさん
2005/06/29(水) 10:01:20// ボタンを作成
button = new JButton("書き込み");
// アクションリスナーを登録
button.addActionListener(this);
// ボタンを追加
contentPane.add(button);
// ウインドウが閉じられたときにアプリケーションを終了するように設定
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// サブコンポーネントの推奨サイズおよびレイアウトに合わせて
// この Window をサイズ変更するように設定
pack();
// 表示します
setVisible(true);
}
0461デフォルトの名無しさん
2005/06/29(水) 10:02:21//メイン
public static void main(String[] args)
{
// フレームを作成
Kintai frame = new Kintai("出勤退勤時間設定");
frame.setBounds(0 , 0 , 400 , 200);
}
0462デフォルトの名無しさん
2005/06/29(水) 10:03:16//アクションが発生すると呼び出されます。
public void actionPerformed(ActionEvent ae)
{
// イベントが指定されたボタンで発生した場合
if (ae.getSource().equals(button))
{
try {
FileOutputStream fos = new FileOutputStream("hello.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
String msg = "こんにちは 世界";
bw.write(msg);
bw.close();
osw.close();
fos.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}
なのですが、ボタンがセンターに来ないのですが、どこか書き忘れているものが、あるのでしょうか?
0463t
2005/06/29(水) 10:42:240464デフォルトの名無しさん
2005/06/29(水) 15:10:07誘導までして頂きありがとうございました。
本来なら
http://pc8.2ch.net/test/read.cgi/tech/1109330204/606
でこっちにくるべきですよね・・・。
教えていただいた方法で、そのまま設計してみます。
ありがとうございました。
0465455
2005/06/29(水) 20:26:32アドバイスありがとうございます。
学校からでは書き込めないので・・・
未だにできません。
try{
System.out.println("1. 2. どちらかを選択してください");
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(reader);
String str = br.readLine();
int res = Integer.parseInt(str);
if(!str.matches("[1-2]+")){
System.out.println("1、2から選択してください。");
continue;}
if(res == 1){
System.out.println("キーワードを入力");
reader = new InputStreamReader(System.in);
br = new BufferedReader(reader);
str = br.readLine();
String sql = "SQL文";
ResultSet result = stmt.executeQuery(sql);
0466455つづき
2005/06/29(水) 20:27:52Vector vector1 = new Vector();
String[] array1 = new String[2];
while(result.next()){
array1[0] = result.getString("Res1");
array1[1] = result.getString("Res2");
vector1.addElement(array1);
array1 = new String[2];}
for(int i = 0;i < vector1.size();i++ ){
String Res1 = null; String Res2 = null;
String[] str1 = (String[])vector1.get(i);
Res1 = str1[0]; Res2 = str1[1];
System.out.println("Res1,Res2は" + Res1 + "\t" + Res2);}}
if(res == 2){1と同様なので省略・・}}
catch(IOException e){
System.out.println(e + "例外が発生しました");}
}}
以上です。
答えはないと言われましたが皆さんのお手本にします。
お願いします
0467デフォルトの名無しさん
2005/06/30(木) 00:58:20再読み込みするとイラン空白挿入されてるし。
0468デフォルトの名無しさん
2005/06/30(木) 07:19:39自分でカスタマイズされてはいかがですか?
0469デフォルトの名無しさん
2005/06/30(木) 12:58:330470デフォルトの名無しさん
2005/06/30(木) 13:04:58キャストはできないので、DoubleのAPIリファレンスを読んで手段を見
付けてください。
0471デフォルトの名無しさん
2005/07/01(金) 10:44:08やっぱそれしかねぇよなぁ… つことで今やってるけど。
0472デフォルトの名無しさん
2005/07/01(金) 21:06:27みなさんにお聞きしたいのですが、アプリケーションサーバーは何をお使いですか?
0473デフォルトの名無しさん
2005/07/01(金) 22:29:550474デフォルトの名無しさん
2005/07/01(金) 23:51:360475デフォルトの名無しさん
2005/07/02(土) 01:00:410476デフォルトの名無しさん
2005/07/02(土) 01:10:40Apache GeronimoはとうとうJ2EE certification(互換性検査)を通ったようだよ。
いよいよか。
0477デフォルトの名無しさん
2005/07/02(土) 10:09:40皆さんありがとうございます。これから参考して選んでいきたいと思います。
0478デフォルトの名無しさん
2005/07/02(土) 10:49:250479478
2005/07/02(土) 11:17:080480デフォルトの名無しさん
2005/07/02(土) 14:51:40Java EE 5 に対応してんのかな?
0481デフォルトの名無しさん
2005/07/02(土) 16:41:47stopメソッドとdestroyメソッドがありました。
stopメソッドを使った場合、コンパイル時に"推奨されないAPIが含まれています"と
言われてしまいます(sunのページにも推奨されないと書かれていますが)。
そこで、destroyメソッドを使おうと思ったのですが、使い方が悪いのでしょう、実行時
にエラーが出てしまいます。
テスト用のファイルを作ったので、どのように使えば良いのかご教授お願いします。
ttp://www.uploda.org/
ファイル「138951」
パスワード「dtest」
0482481
2005/07/02(土) 16:42:45ファイル「138915」
です。お願いします。
0483デフォルトの名無しさん
2005/07/02(土) 16:45:13そして停止側のスレッドで停止処理を記述しろ。
0485デフォルトの名無しさん
2005/07/02(土) 21:12:56僕もThreadのdestroyの使い方が分からないんですね。
destroy()は引数は取らないし、殺したいスレッドが仮にthrという名前だとすると、
thr.destroy(); とするしかないはずなのですが、メソッドが無いというエラーが出ます。
destroyはどう使えばいいんですか?
0486デフォルトの名無しさん
2005/07/02(土) 21:17:07JBossとどっちがいいんだ?
JBossはHSQLDB, Hiernateを標準サポートしているし
知名度が高いし。
0487デフォルトの名無しさん
2005/07/02(土) 21:17:080488デフォルトの名無しさん
2005/07/02(土) 21:19:29Apacheはライセンスがみんな好きだから普及しそうだが
安心して使えるまではしばらく時間がかかると思われ
0489デフォルトの名無しさん
2005/07/02(土) 21:23:00どうして非推奨メソッドをあえて呼びたいの?
0490デフォルトの名無しさん
2005/07/02(土) 23:14:22そこにメソッドがあるからさ
0491デフォルトの名無しさん
2005/07/02(土) 23:22:240492デフォルトの名無しさん
2005/07/02(土) 23:56:19ことを知らず、
その上司の思考が新しいJ2SEではなく古いJ2SEで止まっているのだろう。
バカで頑固な上司は新しい技術を導入すべきタイミングを見計らう能力が
無く懐古主義なのでレガシーな非推奨メソッドを使いたがる。
0493デフォルトの名無しさん
2005/07/02(土) 23:57:12おまえも「レガシー」という言葉を使いたがるんだな
0494デフォルトの名無しさん
2005/07/02(土) 23:57:390495デフォルトの名無しさん
2005/07/02(土) 23:58:33Jakarta製品の使用も躊躇う。
0496デフォルトの名無しさん
2005/07/02(土) 23:59:37古典的と呼んでやればいいか
0497デフォルトの名無しさん
2005/07/03(日) 00:00:24「使うのはいいが、影響範囲を洗い出せ!」
とか言いそうだな
存在するとすれば5.0のバグであり、
予測できる影響範囲は無い!
0498デフォルトの名無しさん
2005/07/03(日) 00:02:49ことを知らず、
>>492 の思考が新しい Java SE ではなく古い J2SE で止まっているのだろう。
バカで頑固な >>492 は新しい名称を導入すべきタイミングを見計らう能力が
無く懐古主義なのでレガシーな名称を使いたがる。
0499デフォルトの名無しさん
2005/07/03(日) 00:07:27まだJ2SE5.0でいいのだが
0500デフォルトの名無しさん
2005/07/03(日) 00:10:050501デフォルトの名無しさん
2005/07/03(日) 00:20:290502デフォルトの名無しさん
2005/07/03(日) 01:30:56調子に乗って Java SE 7 から Java 7000 ね。とか言い出すぞ。
0503デフォルトの名無しさん
2005/07/03(日) 01:33:44JavaSEと書いておきながら6.0とかいたのは確かにミス
内部バージョンでももう0.1はあげないらしいね
sunは伝統的に0.1がメジャーバージョンアップだったけど一般ユーザーにはそんなことしらんから
Java2という名前付けたのだが、それを消すのなら最初からやっていろと
0504デフォルトの名無しさん
2005/07/03(日) 01:35:22内部バージョンは6で
0505デフォルトの名無しさん
2005/07/03(日) 05:38:28private int a = 0;
public boolean equals(Object o){
return (o instanceof A) && ((A)o).a == this.a;
}
}
class B extends A{
private int b = 1;
public boolean equals(Object o){
return super.equals(o) && (o instanceof B) && ((B)o).b == this.b;
}
}
A a = new A();
B b = new B();
の場合、a.equals(b) と b.equals(a) って意味的に違うよな? 継承関係を考慮した
equals() ってどう実装するの?
0506485
2005/07/03(日) 05:54:37>>487, 489
僕は古いバージョンのものを使っているので、v1.4.0のサイトを見て勉強を
していました。sunのサイトでもそうですが、v1.4.0ではdestroyは非推奨とは
書いていないんですね。
新しいバージョンのサイトを見てみると、確かに非推奨だと書いてありました。
やはり、使うなということなのですね。
でも、非推奨であれ使い方が分からないのは何だか気持ちが悪いです。
stopはv1.4.0でも非推奨ですが、thr.stop(); とやれば使えます。
ではdestroyは???
#上司がどうこう書かれていますが、独学なので違います。
0507デフォルトの名無しさん
2005/07/03(日) 06:20:26どんな低脳でも叩けるから。その証拠に誰もまともに答えず話が脱線してる。
stop() と destroy() の仕様上の違いはクリーンアップをするかどうか、要は
ThreadDeath を投げるか、その場で突然死するかだ。stop() を呼び出すと
例外として ThreadDeath が発生し、finally ブロックが実行され synchronized
ブロックを抜けてスタックを巻き戻したところで終了する。destroy() はそれを
やらず状態不整合が発生してようが即時終了。まぁ今は destroy() は実装
されてないけど。
stop() はスレッドを管理、監視するコンポーネントでよく使う。たとえば無限
ループや無応答で何十分も停止してる処理を停止するためのシステム
ツールや、プラグイン型のバックグラウンド処理のフレームワーク作る時など。
だから初心者スレで聞いても「非推奨だから使わない (使ったことない)」と
しか帰ってこなくて当然。
0508デフォルトの名無しさん
2005/07/03(日) 08:39:50公式のドキュメント読めば簡単にわかることだから
だれもわざわざ答えたりしないんですよ
与えられてる情報すら満足に処理できないのは初心者以下です
0509デフォルトの名無しさん
2005/07/03(日) 09:05:190510デフォルトの名無しさん
2005/07/03(日) 09:12:49将来わたってその非推奨メソッドを使うと汎用性、拡張性が下がり
修正しなければならない可能性があるからだろうよ。
0511デフォルトの名無しさん
2005/07/03(日) 09:14:00fj.comp.lang.java?
0512デフォルトの名無しさん
2005/07/03(日) 09:30:05じゃあ死ねば?
>>508
まず自分を振り返った方がいいですよ。
0513デフォルトの名無しさん
2005/07/03(日) 09:33:20>>512
0514デフォルトの名無しさん
2005/07/03(日) 10:49:24循環参照になりますが?
0515デフォルトの名無しさん
2005/07/03(日) 16:28:44つまり「死ぬまでテメエのレス読んでろ」と言う意味かと。
0516デフォルトの名無しさん
2005/07/03(日) 16:37:520517デフォルトの名無しさん
2005/07/03(日) 16:40:57Effective Java に書いてあったような気がするが、
equals のオーバライドをあきらめる。
または、そのインスタンスのクラスオブジェクトをチェックすれば
(getClass()だっけ)意図した動作になるかもしれない?
ちなみに、equals をオーバライドしたら
hashCode もオーバライドする
0518デフォルトの名無しさん
2005/07/03(日) 16:51:57そして大学でも先生や先輩からも嫌われている。そして相手にされていない。
だから2chで質問しようとしている。
ところがどんな情報が少ない質問にも答えて貰えるのが当たり前だと
勘違いして2chで大暴れしていると。
0519デフォルトの名無しさん
2005/07/03(日) 16:57:07要約すると「>>512 の居場所はどこにもない」ってことかな?
0520デフォルトの名無しさん
2005/07/03(日) 17:15:350521ぼく
2005/07/03(日) 17:15:48JavaでCORBAのプログラミングをしております。
その中でCORBAサーバを立てているのですが、
使われているポート番号が不定です。
port番号は出力しているiorファイルをdecodeして確認しました。
クライアントはそのiorファイルを利用して接続しに来るのですが、
セキュリティの関係で、使用するポートを限定(特定)したいのです。
どこかのWebを参考にしたサンプルですが、以下に示します。
何か、ヒントやxxxを参照しろなど、アドバイスいただければ幸いです。
(環境:Solaris 9 + J2SDK 1.4.2_08)
よろしくお願いいたします。
--
0522ぼく
2005/07/03(日) 17:20:33try{
// ORBの生成と初期化を行います
String[] param = {"-ORBInitialPort", "1050",
"-ORBInitialHost", "localhost"};
ORB orb = ORB.init(param, null);
// RootPOAの参照を取得しPOAManagerを使用可能にします
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
// サーバントを生成し、それにORBを登録します
AdapterSyncImpl smsasImpl = new AdapterSyncImpl();
xxxxImpl.setORB(orb);
// サーバントからオブジェクトリファレンスを取得
org.omg.CORBA.Object object = rootpoa.servant_to_reference(xxxxImpl);
// サーバントオブジェクトの文字列化とファイルへの書込み
String str = orb.object_to_string(object);
String filename = "Adapter.ior";
FileOutputStream fos = new FileOutputStream(filename);
PrintStream ps = new PrintStream(fos);
ps.print(str);
ps.close();
System.out.println("Serverが起動しました");
// クライアントからの呼び出しを待ちます
orb.run();
}catch (Exception e){
e.printStackTrace();
}
0523デフォルトの名無しさん
2005/07/03(日) 17:30:23最近自分宛てのレスを他人に叩き付けちゃう人が多いねぇ。
0524デフォルトの名無しさん
2005/07/03(日) 17:34:51昔からそんなもんかと
0525デフォルトの名無しさん
2005/07/03(日) 18:41:43賛成の方も反対の方も、このスレで自分は賛成か反対かをお書きください。
プログラム技術板に強制ID制を導入すべきか否か
http://etc4.2ch.net/test/read.cgi/vote/1118144381/
理由などの記入は別に構いません。
<<賛成>>か<<反対>>かだけ御記入頂ければ結構です。
ちなみに、当たり前ですが運営の方にIPが見えているので、1日ごとにIDが変わるからといって多重投稿しないでください。
0526485=506
2005/07/03(日) 20:02:07結局は非推奨だから使うなということですね。
>>507
>まぁ今は destroy() は実装されてないけど。
僕はここの認識が無かったようです。
destroyは実装されていないんですね。
0527デフォルトの名無しさん
2005/07/03(日) 22:35:23運営ってのはどういう人たちなの?
0528デフォルトの名無しさん
2005/07/04(月) 17:39:59どのへんのクラスを使えば出来るのでしょうか?
0529デフォルトの名無しさん
2005/07/04(月) 17:44:220530デフォルトの名無しさん
2005/07/04(月) 19:29:22完全に破棄できるの?
0531デフォルトの名無しさん
2005/07/04(月) 19:46:13スレッドの処理が run() メソッドを抜ければ active でなくなりシステムリソースは
開放され、インスタンス自信もいずれ GC が回収してくれる。
0532デフォルトの名無しさん
2005/07/04(月) 20:00:34自信は回収しない。
0533デフォルトの名無しさん
2005/07/04(月) 20:15:020534デフォルトの名無しさん
2005/07/04(月) 20:19:520535デフォルトの名無しさん
2005/07/04(月) 20:38:120536デフォルトの名無しさん
2005/07/04(月) 22:28:540537デフォルトの名無しさん
2005/07/04(月) 23:04:16class A {
while (true) {
socket = server.accept();
new B(server.accept()).start();
}
}
とした時、クラスA側のfinallyにはSocketのクローズ処理書いてるんですが、
B側でも閉じる必要があるのでしょうか?
環境によっては再度立ち上げる際に「既にポートが使用されています」とでるので、
問題箇所はガベージ関連ぽいのですが。
イメージ的には、Aのwhile内で毎回ソケットを作成してるので、A側だけで
クローズすれば良い気がするのですが、スレッドの場合はアドレス渡しされるという話も
ききます。
どなたか教えて下さい。
0538デフォルトの名無しさん
2005/07/04(月) 23:05:570539デフォルトの名無しさん
2005/07/04(月) 23:19:28ServerSocket serverとSocket socketのどっちの話をしてるの?
あと、server.accept()が2つあるのは間違いだよね。
0540537
2005/07/04(月) 23:21:27Socketクラスの方です。
このようなプログラムで例外が発生すると、次回起動時にServerSocketを生成する時点で
エラーが発生するようです。
あとacceptは間違いです。すいません。
0541デフォルトの名無しさん
2005/07/04(月) 23:22:29全てのセルに対してsetText("")をしていると、
テーブルが大きいと非常に時間がかかってしまい困っています。
効率の良い初期化方法ってありますでしょうか。
0542デフォルトの名無しさん
2005/07/04(月) 23:41:01「次回起動時に」の問題を解決するのが目的なら、Socket socketの方は関係ない。
server.bind()の前にserver.setReuseAddress(true)すればいい。
「Socket socketのclose()を確実にやるにはどうするか」の件は、Aの
方でfinallyでやろうとしても、最後にaccept()したソケットしか処理
できないんじゃないかい。
0543デフォルトの名無しさん
2005/07/04(月) 23:45:33参照切らない限りGCされないはずだぜ。
0544デフォルトの名無しさん
2005/07/04(月) 23:53:41setText?
レンダラを自作してるってこと?
0545541
2005/07/05(火) 00:00:59ごめんなさい、自分で間違えてました。
テーブルの全てのセルに対して、
setValueAt("", i, j); (i, jはセルのインデックス)
を呼んでます。
これをどうにか高速にできないかなぁと思ってます。
0547デフォルトの名無しさん
2005/07/05(火) 00:17:52TableModelってしってる?
0549デフォルトの名無しさん
2005/07/05(火) 09:27:29>>536はきっと厨房時代に引きこもりになっちゃったんだよ。
外部との接触がなくなった→他者から参照されない、ってことだな。
0550デフォルトの名無しさん
2005/07/05(火) 14:15:36リテラルで記述するとjavacが落ちるという
謎の現象に遭遇した……。
1.5.04入れたら直ったけど、何だったんだろう……。
0551デフォルトの名無しさん
2005/07/05(火) 18:55:35それともAMD64搭載マシンだったら通常のXPでもOK?
0552デフォルトの名無しさん
2005/07/05(火) 18:56:540553デフォルトの名無しさん
2005/07/05(火) 19:18:57面白くないですよ。
0554デフォルトの名無しさん
2005/07/05(火) 22:00:55同じ現象なんですが、どうすればいいんですかね?
0555デフォルトの名無しさん
2005/07/05(火) 22:23:58Javassistでテスト対象のクラスを書き換えながらテストを出来たらいいなぁと思ったのですが…
0556デフォルトの名無しさん
2005/07/06(水) 00:16:34おまえは現実世界であってもきちがいだろうけど
0557デフォルトの名無しさん
2005/07/06(水) 01:10:410558デフォルトの名無しさん
2005/07/06(水) 01:14:31具体的には、java.util.regex.Patternオブジェクトを毎回生成せずにstatic変数にしているんですが、
特定のメソッドの中でしか使用しないんで、そのメソッドの中で定義できるとうれしいんですが。
private static Pattern pat = Pattern.compile("^\\s*$"); // これをメソッドの中で定義したい
public void foo(String str) {
Matcher m = pat.matcher(str);
...
}
0559デフォルトの名無しさん
2005/07/06(水) 01:32:03不可能。
C だとできるんだけどね〜、Java でも使えたら良いのにと思う状況に年に何度か遭遇する。
0561デフォルトの名無しさん
2005/07/06(水) 09:28:270562デフォルトの名無しさん
2005/07/06(水) 09:54:13static の意味と変数のライフサイクルちゃんと分かってるか?
0563デフォルトの名無しさん
2005/07/06(水) 10:58:59図星感溢れる、いいレスですね
0564デフォルトの名無しさん
2005/07/06(水) 12:13:29あるメソッドの中に限定されたスコープを持つ static 変数ってあったら便利よ?
C/C++ とか使ったことない?
0565デフォルトの名無しさん
2005/07/06(水) 12:19:27スコープを最小にしつつ保持範囲を広げるなんてクラス使えないから使うという感じ
0566デフォルトの名無しさん
2005/07/06(水) 12:31:25それをメソッドまで縮めると「ノー」? よくクラス設計語ってるねw
0567デフォルトの名無しさん
2005/07/06(水) 13:01:23クラス変数とローカル変数の違いがあるから単にスコープを縮めて適用していいと
いうことにはならないと思うが。
0568デフォルトの名無しさん
2005/07/06(水) 13:22:12違いがあるから」ってどういう意味ですか?
「Java でできないのは何か理由があるに違いない、だから Java の仕様を支持しておけば
間違いない」 って感じでもっともらしい理由つけてアプローチする展開は虚しい限り。
過去それで覆されたのはアサーション、enum、テンプレート (ボクシング)、可変引数などがあったな。
0569デフォルトの名無しさん
2005/07/06(水) 13:55:50メソッドの中まで追いかけないとクラスに結びつくメモリ使用量がわからないというのもアレだ
0570デフォルトの名無しさん
2005/07/06(水) 14:02:58method static な変数があったとして、それはクラス変数なの?ローカル変数なの?
> クラス変数をメソッドのスコープに限定するという話ですが
これだとクラス変数と読めるが。じゃあクラス変数ではだめな理由は何?
メソッドを使い終わってもローカル変数が生きているのは気持ち悪くないか?
下段は発想が飛躍しすぎ。
0571デフォルトの名無しさん
2005/07/06(水) 14:06:34アサーション以外はあからさまにC#対策なんだけどなw
つうかJavaって1.4あたりからなんだか方針転換してるんだよなぁ、NIOとかさ。
0572デフォルトの名無しさん
2005/07/06(水) 14:45:21enumはタイプセーフなenumの実装がないとダメという理由で遅れてた
Cのenumならたしかにいらないしね
ダイナミックリンクがデフォのJavaでは危険すぎる
可変長引数はObject配列の書き方を変えて制限しただけ
printfを実装したかったという理由だけかと
一方scanfの実装がアレだが安全性のためには仕方ないか
0573デフォルトの名無しさん
2005/07/06(水) 14:57:49test2.htmlをダブルクリックした時
"ELIZABETH"という文字を出したいのですが、
灰色の長方形が出てくるだけで、
"ELIZABETH"の文字が出てきません。
appletviewer test2.htmlだと
文字が表示されているのですが。
test2.htmlと、test2.javaと、test2.classは
同じフォルダに入れてます。
test2.html-----------------------------------
<head></head>
<body>
<applet code="test2.class" width="300",height="200">
</applet>
</body>
</html>
test2.java-----------------------------------
import java.applet.Applet;
import java.awt.*;
public class test2 extends Applet {
public void init(){}
public void paint(Graphics g){
g.drawString("ELIZABETH",50,50);
}
}
0574デフォルトの名無しさん
2005/07/06(水) 15:01:41JavaMail を使ってメールの送信を行おうとしているのですが、題名、本文と
もに2バイトコード1文字の場合に、以下のエラーになります。予想ですが、文
字コードの判別に失敗しているようです。
[java] java.nio.BufferOverflowException
[java] at java.nio.charset.CoderResult.throwException(CoderResult.java:259)
[java] at java.lang.StringCoding$CharsetSE.encode(StringCoding.java:343)
[java] at java.lang.StringCoding.encode(StringCoding.java:374)
[java] at java.lang.String.getBytes(String.java:573)
[java] at javax.mail.internet.MimeUtility.doEncode(MimeUtility.java:643)
[java] at javax.mail.internet.MimeUtility.encodeWord(MimeUtility.java:625)
[java] at javax.mail.internet.MimeUtility.encodeText(MimeUtility.java:426)
[java] at javax.mail.internet.MimeMessage.setSubject(MimeMessage.java:772)
2バイトコード2文字以上なら、問題なく送れます。
どのようにして、エラーを回避したらよいでしょうか?
メールのエンコーディングは ISO-2022、DBのデータはEUC-JP、Javaのソース
コードもEUC-JP です。
0575デフォルトの名無しさん
2005/07/06(水) 15:15:07だからそのいまさらな考え方が下段だっての。「if(DEBUG) assert(test); で
だめな理由は?」「enum一項目づつにクラス割り当てるのでだめな理由は?」
「多態化でだめな理由は?」「Object[] 渡しでだめな理由は?」
JDK のバージョンが上がるまでは「正論」だった論法な。
> メソッドを使い終わってもローカル変数が生きているのは気持ち悪くないか?
気持ち悪い論はただの主観だな。生きてて欲しいから「こういう機能はない
ですか?」という話になってるんだろ。
0576デフォルトの名無しさん
2005/07/06(水) 15:34:22ンスタンス変数まで保持できる。こういう関数は、メソッドを一つしか持たな
いオブジェクトのように振舞うことができる。これをclosure(クロージャ、
関数閉包)と呼ぶ。
こういうものに慣れていると、Java というのは、安全で分かりやすいけど、
不自由だと感じる。
0577デフォルトの名無しさん
2005/07/06(水) 15:35:59>>570の気持ち悪い論とかは確かに主観だな。
ただ、筋を通してemumなどは不要と主張するのならそれはそれでありだと思うし
それを「JDKに採用されたから必要(正義)→不要論は却下(言い訳)」
と決め付けるのもどうかと思われ。
0578デフォルトの名無しさん
2005/07/06(水) 15:40:41まぁね。
無いものネタでヒートアップさせても何の結論も出ないのは明確だからここらへんで。
0579574
2005/07/06(水) 15:58:59呼び出し個所は、こう書いています。
mimeMessage.setSubject(title, "iso-2022-jp");
ここで title が2文字以上だと問題なく送れるのですが、1文字の2バイトコー
ドだとエラーになってしまうのです。1バイトコードだと1文字でも問題ありま
せん。
0580デフォルトの名無しさん
2005/07/06(水) 16:12:290581574
2005/07/06(水) 16:15:280582デフォルトの名無しさん
2005/07/06(水) 16:16:380583デフォルトの名無しさん
2005/07/06(水) 16:24:27Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
これで良いでしょうか?
0584デフォルトの名無しさん
2005/07/06(水) 16:27:07JIS変換で無限ループする有名なバグもちだ
0585574
2005/07/06(水) 16:33:57避したらよいでしょう?!
0586573
2005/07/06(水) 16:52:08うまく行きました。
ありがとうございました。
0587574
2005/07/06(水) 17:41:06問題は起こらなくなりました。ありがとうございました。
それにしても、こんなことで半日潰してしまいました。お恥ずかしい限りです。
0588デフォルトの名無しさん
2005/07/06(水) 21:10:09cp = getContentPane();
cp.add(menuBar, BorderLayout.NORTH);
(この書き方で間違いないはずなんですが・・・)
と書くと画面を最大にしないとメニューバーが現われません。
いろいろ試したのですが、どうしても初期画面に表示されません。
どなたかよろしくお願いします。
0589デフォルトの名無しさん
2005/07/06(水) 21:49:29つ Frame.setMenuBar
0590デフォルトの名無しさん
2005/07/06(水) 23:23:05俺も参加させてくれ!
クラス変数でなくインスタンス変数の可視性を
メソッドだけに制限したい場合は如何指定すればいいのか?!
というのはさておき
自分的に、可視性についてC#のをパクって欲しいのは
プロジェクトプライベートみたいなのだなぁ。
パッケージプライベートを整合性の最後の境界にするには
(整合性を保つのに必要なクラス一式を同じパッケージに入れるのは)、
結構きついので、ほとんどの場合
言語仕様外の約束事みたいなものが必要に思える。
ところで、あるフレームワークの拡張ポイントのために、
リスナーを表すインタフェースを実装する場合、かつ、
そのフレームワークからの呼び出しに限って
引数にnullを渡さないことが分かっている場合、
そのインタフェースのメソッドの実装(もちろんpublic)に
nullチェックは書く?書かない?
0591デフォルトの名無しさん
2005/07/07(木) 07:15:27つまんね
0592デフォルトの名無しさん
2005/07/07(木) 11:55:03そのフレームワーク作った奴が信用ならなければ書く。
0593デフォルトの名無しさん
2005/07/07(木) 23:04:22信用は関係ありませんね。
0594デフォルトの名無しさん
2005/07/07(木) 23:31:280595デフォルトの名無しさん
2005/07/07(木) 23:44:340596デフォルトの名無しさん
2005/07/08(金) 00:21:28java.sql.Dateに代入しようとしたとき
どういったやり方があるのでしょうか?
ググって
ttp://home.f02.itscom.net/soukyoku/jtips/hiduke.html
ここなど参考にしたのですが
これはjava.util.Date型みたいで、うまくできませんでした
教えてください
0597デフォルトの名無しさん
2005/07/08(金) 00:42:190598デフォルトの名無しさん
2005/07/08(金) 00:57:19コンストラクタをよーく見てみよう
0599デフォルトの名無しさん
2005/07/08(金) 01:00:26java.util.Date d1 = new java.util.Date();
java.sql.Date d2 = new java.sql.Date(d1.getTime());
>>597
InnputStream in = null;.
OutputStream out = null;
try{
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
byte[] buffer = new byte[1024];
while(true){
int len = in.read(buffer);
if(len < 0) break;
out.write(buffer, 0, len);
}
} finally {
try{ if(in != null) in.close(); } catch(IOException ex){ }
try{ if(out != null) out.close(); } catch(IOException ex){ }
}
0600デフォルトの名無しさん
2005/07/08(金) 02:10:29java.sql.Date date = java.sql.Date.valueOf("2005-07-07");
0601デフォルトの名無しさん
2005/07/08(金) 07:16:09それです。
0602デフォルトの名無しさん
2005/07/08(金) 16:29:34Java を使って何かプログラムでも書いてみようと考えています。
Pocket PC 上で動作させる Java 環境として
最も広く利用されているもの、あるいは、
オススメなものなど、ありましたらご教示ください。
J2ME CDC の参照実装は Linux 向けしか存在せず
J2ME CLDC PDAP の実装も未公開なようなので
J2ME CLDC MIDP ではじめてみようと考えています。
J2ME CLDC MIDP で開発を行う際の開発環境として
最も広く利用されているもの、あるいは、
オススメなものなど、ありましたらご教示ください。
その他、同分野に関する良著など、
ご存知でしたらご教示いただけると助かります。
0603デフォルトの名無しさん
2005/07/08(金) 19:07:22があるけど、どっちが本スレ?
0604デフォルトの名無しさん
2005/07/08(金) 20:04:59public class A extends Thread {
public void run() {
while (item.getIterator().hasNext()) {
String proc = (String) item.getIterator().next();
…
}
}
}
この方法以外に、もっとスマートな書き方はないでしょうか?
0605デフォルトの名無しさん
2005/07/08(金) 20:10:14「スマート」の定義次第
0606604
2005/07/08(金) 20:17:59Iterator iter = item.getIterator();
while (iter.hasNext()) {
…
このように定義されるのを避けたいのです。
0607デフォルトの名無しさん
2005/07/08(金) 20:36:260608604
2005/07/08(金) 20:40:360609デフォルトの名無しさん
2005/07/08(金) 21:15:30http://www.airbitway.com/meng/cp.php?site=airppcpc&req=171_01_01&category=houjin&sort_type=0
0610デフォルトの名無しさん
2005/07/08(金) 21:22:470611デフォルトの名無しさん
2005/07/09(土) 00:34:44class a{
int x
int y
a(int x, int y){}
}
と言うのは可能ですか?
それとも
a(int _x, int_y){
x=_x;
y=_y;
}
としないとやばいですか?
0612好きなだけ一行で書け
2005/07/09(土) 00:44:400613デフォルトの名無しさん
2005/07/09(土) 00:46:290614デフォルトの名無しさん
2005/07/09(土) 01:30:29ひょっとしてコンパイラが�dでもなく古くて
実行数がバイトコードサイズに反映される環境なのかも
0615デフォルトの名無しさん
2005/07/09(土) 01:33:18つーか、試してみればいいじゃん。
0616デフォルトの名無しさん
2005/07/09(土) 03:19:39> method static な変数があったとして、それはクラス変数なの?ローカル変数なの?
クラス変数に決まってるだろ。変数のスコープがメソッド内になったからといって、クラス変数がローカル変数になるわけじゃない。
つーか、クラス変数とローカル変数の仕組みがわかっとらんとみた。
> これだとクラス変数と読めるが。じゃあクラス変数ではだめな理由は何?
クラス変数でだめなんていってない。クラス変数のスコープをあるメソッドだけに限定したいというだけだ。
> メソッドを使い終わってもローカル変数が生きているのは気持ち悪くないか?
だからクラス変数だといっとるだろが。
あのな、クラス変数とローカル変数はそもそもの仕組みが違うんだよ。クラス変数はヒープ領域、ローカル変数はスタック領域に取られる。それとスコープとの話は別なの。
クラス変数のスコープをメソッドローカルにするのは、技術的に十分可能なんだよ。ぜんぜん難しい話じゃない。
0617デフォルトの名無しさん
2005/07/09(土) 03:44:23言いたいことはわかるがクラス変数である意味はないと思うぞ。
あるメソッドだけから見えるフィールドってもんがあってもいいだろうから。
0618デフォルトの名無しさん
2005/07/09(土) 11:13:55もとの議論は、クラス変数をメソッド内で定義したいという話。インスタンス変数のことではない。
しかし
>あるメソッドだけから見えるフィールドってもんがあってもいいだろうから。
これはおもしろい発想だな。
0619デフォルトの名無しさん
2005/07/09(土) 14:29:30ちょっと考えただけでもスコープが限定されてるので、
コンパイル時に確実な代入によるチェックがしにくくなる、
とかのデメリットがあるね。
> クラス変数のスコープをメソッドローカルにするのは、技術的に十分可能なんだよ。
それ以外の要素を全然考えてないよーな気もするが。
同期処理はするの? しないの? とか。
0620デフォルトの名無しさん
2005/07/09(土) 15:13:46他にも名前の扱いについて
同名のクラスフィールドは許されるのか?
同名の局所変数、メソッドの引数は?
リフレクションでのアクセスの時の名前は? 等々。
0621デフォルトの名無しさん
2005/07/09(土) 18:14:31なぜスコープが限定されると
>コンパイル時に確実な代入によるチェックがしにくくなる、
という結論になるのか。詳しい説明希望。
>それ以外の要素を全然考えてないよーな気もするが。
>同期処理はするの? しないの? とか。
スコープが限定されていること意外は、普通のクラス変数と同じでいいだろ。
今のままでもクラス変数は自動的に同期化されるわけじゃないだろ。それと同じで問題ない。
>同名のクラスフィールドは許されるのか?
>同名の局所変数、メソッドの引数は?
>リフレクションでのアクセスの時の名前は? 等々。
これらは全部、許すか許さないかのどちらかに決めればいいだけの話。
shadowingを許すなら何も警告しない、許さないならエラーをだす、それだけ。
心配ならshadowingをまったく許さないようにすればよい。
0622デフォルトの名無しさん
2005/07/09(土) 18:38:46っつか、そこまで強固にアクセス権限設けたいなら
メソッドのためにクラス一個作ればいいんじゃね?
> これらは全部、
既存のものと違和感無く決められるか? という話。
で、そーゆー事を全く考えてないから
> 許すか許さないかのどちらかに決めればいいだけの話。
とかゆー無神経な言葉が出てくるんだと思われ。
> shadowingを許すなら
shadowing って何? hiding とか隠蔽とかの事か?
0623デフォルトの名無しさん
2005/07/09(土) 18:44:420624デフォルトの名無しさん
2005/07/09(土) 18:49:13考え無しのアイデアだね、って言われてるだけにみえるが。
そっか、間違ってるって言われてるように見えるのか。
んじゃ、やっぱり、どっか間違ってるんじゃないか?
0625デフォルトの名無しさん
2005/07/09(土) 18:52:04それはおまえの被害妄想。
0626デフォルトの名無しさん
2005/07/09(土) 19:04:17そうだね。メソッド内で、他から見えないクラス変数持ちたいってのは
メソッドが状態持ちたいって事だから、
Java的にはそのためにクラス一つ作るのが正道だと思われ。
0627デフォルトの名無しさん
2005/07/09(土) 19:07:100628デフォルトの名無しさん
2005/07/09(土) 19:09:50>>623
まったく、だからもうこの話はやめとこうって言ったのに。
assert や Boxing、可変引数が無かった頃、高説垂れて否定してた現状保守派を思いだすな。
この手のもしあったら話は、現行で問題ない、代替策が有る、じゃあ Java 使うな、といった
意味のない終わり方にしかならないから。
0629デフォルトの名無しさん
2005/07/09(土) 19:13:11っつか、2ch で騒いでる時点で意味があるとは思えん。
意味のある事したいなら Sun のBBSとか、BugParade 行くとかすればいいじゃん。
0630デフォルトの名無しさん
2005/07/09(土) 19:18:24同意。
2chでやってる時点で結論に関係なく意味がない終わり方しかしない。
0631デフォルトの名無しさん
2005/07/09(土) 19:18:30毎回インスタンス生成したくない (元の話題だと正規表現をコンパイルしたくない) から
クラス変数を要求してんだけど、おまえ目の前の論議で思考停止してるだろ。
それに強固な要求を満たすなら、そのクラスは特定のメソッド内からのみ参照可能で
なければならないわけだが、メソッド内で定義した無名 inner クラス使ったところで
インスタンスは毎回作らなきゃならないだろ。
0632デフォルトの名無しさん
2005/07/09(土) 19:21:11いや、彼は自分の説が支持されたら意味があるんじゃない?
一瞬でも良い気分になれる、とかさ。よくわからんけど。
0633デフォルトの名無しさん
2005/07/09(土) 19:24:23. |(・∀・)|
. | ̄ ̄ ̄
△
△l |
__△|_.田 |△_____
|__|__門_|__|_____|_____
0634デフォルトの名無しさん
2005/07/09(土) 19:24:38> 毎回インスタンス生成したくない (元の話題だと正規表現をコンパイルしたくない) から
その場合、static final なクラスフィールドとか、
final なインスタンスフィールド使えれば それほど不満は無いかな。
> メソッド内で定義した無名 inner クラス使ったところで
内部クラス(メンバクラスじゃないよ)では、
クラスフィールドは定義できなかったような?
0635デフォルトの名無しさん
2005/07/09(土) 19:31:50|彡ミ )
|'_、_ |
|,_ノ`/ 莫迦により振り出しに戻る
|...V
|::)
0636デフォルトの名無しさん
2005/07/09(土) 19:33:30> 毎回インスタンス生成したくない (元の話題だと正規表現をコンパイルしたくない) から
> クラス変数を要求してんだけど、おまえ目の前の論議で思考停止してるだろ。
ところで、なんでクラス変数じゃないと思考停止になるんだろ?
インスタンス生成時に与えられた正規表現で〜って場合も考えれば
インスタンスフィールドに関しても同じ要求があっても良いのでは?
0637デフォルトの名無しさん
2005/07/09(土) 19:36:11良いだろ。それは否定しない。
思考停止は「スコープ限定したければクラス定義すれば?」に当てたもの。
0638デフォルトの名無しさん
2005/07/09(土) 19:40:23読み出し専用の正規表現オブジェクトのスコープを、
そこまでして限定したいのか? ってのが良くわからんのだが。
0639デフォルトの名無しさん
2005/07/09(土) 19:42:43普通スコープを限定したいのは読み書きする変数
読み書きする変数ってのは状態だから…… と考えたんだが、
そっちの方が思考停止しとらんか?
0640デフォルトの名無しさん
2005/07/09(土) 19:45:380641デフォルトの名無しさん
2005/07/09(土) 19:50:47っつーか、enum とか可変長引数とかって否定されてたっけか?
個人的には enum は積極的支持してたけどなぁ。
0642デフォルトの名無しさん
2005/07/09(土) 19:53:49ああ、Pattern は immutable だからスコープ広がっても問題ないだろーって
ところで停止してたわけか。何のためにスコープがあるか分かってるよな?
> と考えたんだが、
超後付臭い言い訳ありがとw
どうでもいいけど、ざっと流し読むと 「か?」とか「な?」 で終わる書き込み
(?は全角) が多いのが笑えるw
0643デフォルトの名無しさん
2005/07/09(土) 19:56:50_ | (・∀・) |
`)) | ̄ ̄ ̄ ̄
´ ∧
<⌒>
/⌒\ △
_________]皿皿[-∧-∧、 △l |\
/三三三三三三∧_/\_|,,|「|,,,|「|ミ^!、__△|_.田 | |△_
__| ̄田 ̄田 / ̄ ̄Π . ∩ |'|「|'''|「|||:ll;|____△|_.田 |△ |____
/__,|==/\=ハ, ̄ ̄|「| ̄ ̄ ̄ ̄|「| ̄ ̄| |__|__門_|__|_____|\_
/_| ロ ロ 「 ̄ ̄ ̄ | | 田 |「| 田 田 |「|[[[[||ll.|ロ ロ,/| l⌒l.l⌒l.| | |「| |「|ミミミミミミ
0644デフォルトの名無しさん
2005/07/09(土) 19:57:410645デフォルトの名無しさん
2005/07/09(土) 20:03:42そういう1行レスはデフォでスルーするのが話を正しく進めるコツだよ。
て言っても、既に勝ち負けの話になってるから、行き着く先は知れてるけどな。
0646デフォルトの名無しさん
2005/07/09(土) 20:04:45↓次の質問
0647デフォルトの名無しさん
2005/07/09(土) 20:11:26Pattern が immutable なだけじゃなくて、使い方も読み込み専用じゃん。
で、そこで思考停止しないなら >>638-639、状態ならクラスにするのが正道だと思うんだが。
0648デフォルトの名無しさん
2005/07/09(土) 20:15:38今度は「?」付けないのか?w
0649デフォルトの名無しさん
2005/07/09(土) 20:18:49反論のしようも無いと。もしくは時間稼ぎ?
0650デフォルトの名無しさん
2005/07/09(土) 20:22:170651デフォルトの名無しさん
2005/07/09(土) 20:24:02まぁ、ネタ主が厨房だから仕方が無いといえば仕方が無い
言語仕様決める奴が見てると思われる BugParade やら Sun の掲示板行けと
言っても 2ch に来やがるし。で、叩かれたら無意味だったとか相手を非難するだけで
叩かれた部分を考えて もっと説得力のある案に とかそーゆー思考も無いみたいだしね
0652デフォルトの名無しさん
2005/07/09(土) 20:28:38こーゆー話に勝ち負けがあるのかw
行き着く先を決めた奴が誰なのかは一目瞭然だなw
0653デフォルトの名無しさん
2005/07/09(土) 20:53:36多分君の言うネタ主=>>646 なんだけどな。
変数は必要最小限のスコープで使用できたほうが良いという話をしようとしたら、
いつの間にか現行仕様保守派に囲まれて BugParade 行けって話に誘導
されてたw
このスレも長いからもしもネタがどういう終わり方するかは大体分かってるんだけどな。
でも言語仕様超越してても何かわくわくするアイディアや考え方はないかな〜とか
見てるんだけど、現行以上の話できない奴ばかりで白けて終わりだね。まぁ当然か。
BugParade や Sun の掲示板行けって? 興味あるネタで雑談できれば良いからここ
なんだよw お前もそうだろー? で、まだ続けんの?
>>652
なんか分からんが必死なのは伝わった。
0654デフォルトの名無しさん
2005/07/09(土) 21:06:55> このスレも長いからもしもネタがどういう終わり方するかは大体分かってるんだけどな。
いや、もしもネタだからじゃなくて、
考え無しにアイデア出しておいて、ちょっと叩かれたら叩いた奴が悪い、
みたいな反応するからだよ。
ちょっとぐらい叩かれても >>568 とか >>628 みたいな反応せずに
前向きに議論してたら支持してくれる奴とか援護してくれる奴が出てくると思うけどね。
0655デフォルトの名無しさん
2005/07/09(土) 21:18:07だからもともとそんな話する気は無かったんだってばw
0656デフォルトの名無しさん
2005/07/09(土) 21:23:28どっちが叩いたやつでどっちが叩かれたやつなんだ?
インスタンスメソッド内でクラス変数を定義するなんて、ごく普通の発想だと思うのだが。Cでも関数内でstatic変数できるし。
Javaコンパイラをちょっと改造すりゃすむだけだし、JVMにも何の影響も与えない。
それをむきになって否定する理由を探すやつらの頭がわからん。
そして、否定した理由が間違いだと指摘されたら、2chじゃなくてSunにいえと?あほか、自分の意見が否定されたからといって話をすりかるな。
0657デフォルトの名無しさん
2005/07/09(土) 21:26:08えーと、要するに叩かれたかったのか?
それとも、
> でも言語仕様超越してても何かわくわくするアイディアや考え方はないかな〜とか
とか期待してたわけ?
> このスレも長いからもしもネタがどういう終わり方するかは大体分かってるんだけどな。
って言ってるのに?
0658デフォルトの名無しさん
2005/07/09(土) 21:34:38> インスタンスメソッド内でクラス変数を定義するなんて、ごく普通の発想だと思うのだが。
少なくとも、今回の Pattern の例は不適切だね。
> 自分の意見が否定されたからといって
変数は状態。で、状態はインスタンスで保持するのが Java では正道。
これに対する反論がまったく無いんだけど。
> 話をすりかるな。
すりかえた覚えは無いよ。言語仕様変えて欲しいなら Sun に言えば良いだけ。
Sun やら JCP なら言語仕様変えられるんだから、少なくとも 2ch より話が早い。
0659デフォルトの名無しさん
2005/07/09(土) 21:46:18> Javaコンパイラをちょっと改造すりゃすむだけだし、JVMにも何の影響も与えない。
本当に?
いや、それはオマエがその程度でしか考えてないって事にしかならんと思うが。
例えばインスタンスメソッドでクラス変数を定義する方法を
C言語の関数内の static な変数を模して短絡的に決めれば >>636 みたいに
メソッドローカルなインスタンス変数を作ろうとするときに障害になる可能性もある。
0660デフォルトの名無しさん
2005/07/09(土) 21:51:17何が不適切? 「状態が変わらないか〜」ってのがその説明なら、不適切という
表現は間違いだな。
> 変数は状態。で、状態はインスタンスで保持するのが Java では正道。
static 変数の存在は否定ですか? 変数のスコープを短くするのは悪ですか?
反論が無いのは「状態をインスタンス変数で〜」なんて脱線してるのがお前だけだから。
>>659
名前のバッティングや隠蔽はタダの決め事でしかない。つーか、そんなん現状でも
あるだろ。何が問題だ?
0661デフォルトの名無しさん
2005/07/09(土) 21:57:30> 何が不適切?
件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
> static 変数の存在は否定ですか?
static なメンバ変数の大半は final で修飾された定数なんだけどね。
まぁ必要があれば使うけど、あんましオススメできないね。
0662デフォルトの名無しさん
2005/07/09(土) 21:58:37> 名前のバッティングや隠蔽はタダの決め事でしかない。
>>659 は隠蔽の話なんかしてないと思うが?
0663654
2005/07/09(土) 22:03:18>少なくとも、今回の Pattern の例は不適切だね。
なにがどう不適切なのかさっぱりわからん。変化することのないオブジェクトをクラス変数として定義してるだけだが。
これをインスタンス変数にするほうが不適切。
>変数は状態。で、状態はインスタンスで保持するのが Java では正道。
>これに対する反論がまったく無いんだけど。
変数は値。値が状態を表すこともあるというだけ。今回の例では状態を表してるわけではない。
論点がずれていて、反論するどころか、読み飛ばしていた。ごめんな。
>言語仕様変えて欲しいなら Sun に言えば良いだけ。
言語仕様変えて欲しいというのは、658の勝手な解釈。
「言語仕様がこうなっているのはなんでだろうね」と話していただけ。なのになぜか「Sunに言えばいい」だって。
「郵政民営化って国民のためになるのかな」と話してたら、「文句あるんなら自分で選挙に立候補しろ」といわれた気分。
0664デフォルトの名無しさん
2005/07/09(土) 22:04:11Sun に言えって話はスルーかw
0665デフォルトの名無しさん
2005/07/09(土) 22:07:02>件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
それは不適切とは言わない。
>まぁ必要があれば使うけど、あんましオススメできないね。
で、そのスコープを限定できても良いのではという話をしてるわけだが? (インスタンス変数を含めても良い)
>>>659 は隠蔽の話なんかしてないと思うが?
すまんが、お前の脳内でどういう話になってるのか分からない。
0666デフォルトの名無しさん
2005/07/09(土) 22:08:20> 変化することのないオブジェクトをクラス変数として定義してるだけだが。
メソッドにスコープを限定する必要は?
Pattern は immutable だし、final にしとけば変更される必要も無いから。
> 今回の例では状態を表してるわけではない。
で、今回の例は上記により不適切なんだが。
> 「言語仕様がこうなっているのはなんでだろうね」と話していただけ。
そうは見えないんだが。
> 「文句あるんなら自分で選挙に立候補しろ」といわれた気分。
まぁ、文句あるんなら選挙で投票しろ、ぐらいかな。
選挙に立候補しろ、ぐらいの論調だったら「新しい言語作れ」って言うから。
0667デフォルトの名無しさん
2005/07/09(土) 22:10:28>それは不適切とは言わない。
必要性が説明しにくい例が不適切じゃないとでも?
>すまんが、お前の脳内でどういう話になってるのか分からない。
相手を叩くためだけに反論するのを止めたら理解できると思うよ。
0668デフォルトの名無しさん
2005/07/09(土) 22:13:27> それは不適切とは言わない。
いや、不適切だろ。
private static final Pattern pat = Pattern.compile("^\\s*$"); じゃいけないの?
って言われたらクラス内で別の箇所でも pat って名前を使いたい、ぐらいしか言えなくらなんか?
0669デフォルトの名無しさん
2005/07/09(土) 22:13:38>メソッドにスコープを限定する必要は?
別のメソッドで変数名スペルミスしたときのバグになる。つまり意図しないところで使われて問題に
なることがある。つか、そんなもんスコープを限定する必要性理解してればすぐ分かるだろ。
0670デフォルトの名無しさん
2005/07/09(土) 22:15:46> 別のメソッドで変数名スペルミスしたときのバグになる。
スコープ限定のコアな理由が隠蔽じゃなくてスペルミス防止なのかよ。
0671デフォルトの名無しさん
2005/07/09(土) 22:17:24> なることがある。つか、そんなもんスコープを限定する必要性理解してればすぐ分かるだろ。
オマエがスコープを限定する必要性をどう理解してるかが分かった
うんうん、たしかにスペルミスは防止しないといけないねぇ
0672デフォルトの名無しさん
2005/07/09(土) 22:17:55>相手を叩くためだけに反論するのを止めたら理解できると思うよ。
それはお前。そうでなければ変数名のバッティング以外で >>659 の何が問題なのか、
お前の脳内問題を言ってみろ。
0673デフォルトの名無しさん
2005/07/09(土) 22:18:28みたいな必要性しか主張できなくなるから、不適切なんだろーな
0674デフォルトの名無しさん
2005/07/09(土) 22:19:22>本当に?
本当。Javaじゃなくてもいいから、コンパイラとVMを作ってみ。
中身がわかれば、スコープを限定したところでクラスファイルに影響を与えないことなんかすぐわかる。
>いや、それはオマエがその程度でしか考えてないって事にしかならんと思うが。
おまえがどのくらい考えてものをいってるのかしらんが、少なくともクラス変数とローカル変数の仕組みぐらいはわかってるんだろうな。
>例えばインスタンスメソッドでクラス変数を定義する方法を
>C言語の関数内の static な変数を模して短絡的に決めれば >>636 みたいに
>メソッドローカルなインスタンス変数を作ろうとするときに障害になる可能性もある。
なにがどう障害になるのか、わかりやすく説明してくれ。
>>661
>件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
はぁ?「あるメソッドでしか使わないからスコープをそのメソッドのみに限定する」、すげー簡単じゃん。
何が説明しにくいの?
>static なメンバ変数の大半は final で修飾された定数なんだけどね。
>まぁ必要があれば使うけど、あんましオススメできないね。
そりゃ、おまえがそういう使い方しかしてないってだけじゃん。
Singletonパターンとかでクラス変数はしょっちゅうつかうけどな。
0675デフォルトの名無しさん
2005/07/09(土) 22:20:02質問スレは重複してるし面白いネタなら歓迎だが、つまんないからいい加減終了してほしいのだが。
#反応してる側が相手にするのやめないと終わらんから。頼むよorz
0676デフォルトの名無しさん
2005/07/09(土) 22:20:55何どうでもいいところ突っ込んでんだ?
0677デフォルトの名無しさん
2005/07/09(土) 22:22:41単純にメソッド内で
static 型名 識別子 <= 初期化子>;
と書いたらクラス変数になるという仕様にした場合、
メソッドローカルなインスタンス変数を追加しようとした場合はどーすんの?
新しく local みたいな単語を予約語にするにしても、
既に static でクラス変数になるという仕様があると弱くなるよね。
メソッドローカルなインスタンス変数とメソッドローカルなクラス変数の
一貫性もとりにくいし。
0678デフォルトの名無しさん
2005/07/09(土) 22:24:03> Singletonパターンとかでクラス変数はしょっちゅうつかうけどな。
Singleton で使うときって、普通は final で修飾しないか?
0679デフォルトの名無しさん
2005/07/09(土) 22:25:16実装できるってレベルと仕様の設計ができるってレベルは違うのよね、悲しいけど
0680デフォルトの名無しさん
2005/07/09(土) 22:27:15例としては不適切だな。
>>668 みたいに言われたらおわりだし。
0681デフォルトの名無しさん
2005/07/09(土) 22:28:46質問に質問で返すか、しかも結局問題は名前のバッティングかよw
言語のセマンティクス変わる事になるからキーワード追加だろうが何でもできるだろ。
> 既に static でクラス変数になるという仕様があると弱くなるよね。
何が弱くなるの? 一貫性って名前の? 脳内問題とかいわれたくなかったら第三者に伝わる
言葉でおながいしますよ。
0682デフォルトの名無しさん
2005/07/09(土) 22:28:52それしか考え付かなかったんでしょ。
Pattern の例でブラックボックスにする価値ってどこにあるのよ?
0683デフォルトの名無しさん
2005/07/09(土) 22:31:21名前っつーか、文法のバッティングなんだけどね
>言語のセマンティクス変わる事になるからキーワード追加だろうが何でもできるだろ
無駄にキーワード追加して言語が汚くなっても構わないのか
0684デフォルトの名無しさん
2005/07/09(土) 22:32:12assert追加した時の悲劇を繰り返しても良い、と?
0685デフォルトの名無しさん
2005/07/09(土) 22:33:20何で Java では C のようにメソッドの最初でローカル変数宣言するのではなく、本当に
必要なところで宣言するか知ってる?
それ以前に何でスコープが必要か理解してる? 入門書レベルでいいからさ。
0686デフォルトの名無しさん
2005/07/09(土) 22:36:14スペルミスしないためでしょw
っつか、Pattern の例だと immutable だし、
pat 自体はクラス内で隠蔽できるし final つけられるから
そーゆー解釈にしかならんが。
0687デフォルトの名無しさん
2005/07/09(土) 22:36:43>メソッドローカルなインスタンス変数を追加しようとした場合はどーすんの?
知るかよ、そんなの。「メソッドローカルなインスタンス変数」を追加したいのはおまえなんだから、おまえが考えろ。
>新しく local みたいな単語を予約語にするにしても、
>既に static でクラス変数になるという仕様があると弱くなるよね。
なにがどう弱くなるのかさっぱりわからん。
>メソッドローカルなインスタンス変数とメソッドローカルなクラス変数の
>一貫性もとりにくいし。
どういう一貫性だよ。おれはおまえの頭の中覗けるわけじゃないんだから、わかるようにかいてくれ。
>>678
>Singleton で使うときって、普通は final で修飾しないか?
finalつける方法もあるし、つけない方法もあるだろ。
インスタンスオブジェクトの生成が重いときは、必要になるまで生成しないほうがよい。
そのときはfinalにしない。
0688デフォルトの名無しさん
2005/07/09(土) 22:36:46例じゃなく本質的なところに来いよ。自信ないのか?
0689デフォルトの名無しさん
2005/07/09(土) 22:38:51> 知るかよ、そんなの。「メソッドローカルなインスタンス変数」を追加したいのはおまえなんだから、おまえが考えろ。
だから、>>659 は >>636 がそーゆー事を考えてない案だって言ったわけ。おわかり?
0690デフォルトの名無しさん
2005/07/09(土) 22:39:34本質的なところね。何で Sun に直接言わないの?
0691デフォルトの名無しさん
2005/07/09(土) 22:39:37だから、必要以上のスコープは弊害しか起きないってまだ認めたくないのか?
これは immutable な Pattern に特化した話も含んでる。
0692デフォルトの名無しさん
2005/07/09(土) 22:39:45>668 みたいに言われたらおわりだし。
private static final Pattern pat = Pattern.compile("^\\s*$"); のことか?
finalにするかどうかが問題じゃないだろ。「スコープを限定したい」というのがもともとの話じゃないのか。
なぜfinalにしたらおわりなのか。
0693デフォルトの名無しさん
2005/07/09(土) 22:40:13それは本質的すぎ。それ言うと続かなくなるよ。
0694デフォルトの名無しさん
2005/07/09(土) 22:41:36例として不適切だということを説明しただけだが。
0695デフォルトの名無しさん
2005/07/09(土) 22:42:20> なぜfinalにしたらおわりなのか。
弊害がスペルミスによる誤用ぐらいしかないから。
0696デフォルトの名無しさん
2005/07/09(土) 22:42:29考える必要のないことを出してくるなよ。
おまえのいってるのは、話を否定するためだけに無理やり別の要求をだしてるの。おわかり?
0697デフォルトの名無しさん
2005/07/09(土) 22:42:50Java 言語仕様の話だけしてるんじゃないんだけど、莫迦ですか?
0698デフォルトの名無しさん
2005/07/09(土) 22:43:34>弊害がスペルミスによる誤用ぐらいしかないから。
おまえ実務経験浅そうだな。
0699デフォルトの名無しさん
2005/07/09(土) 22:45:55メソッド内にスコープを限定したい変数の例を出してこないと説得力ないよ。
スコープの話なら、C++ の protected みたく、パッケージ内では使用不可だけど、
継承したクラスだけが使用できるアクセス指定子があっても良い訳だし、
あっても良いって話であれば、何でもあって良いわけだから。
特に これはあった方が良いって言えるだけの材料はあった方が良いと思うけどね。
0700デフォルトの名無しさん
2005/07/09(土) 22:46:19はあ?弊害があるからスコープを限定したい、っていってるわけじゃないだろ。
この変数はこのスコープでしか使わない、ということを構文的に明示するために、スコープを限定するんじゃない。
0701デフォルトの名無しさん
2005/07/09(土) 22:46:44じゃ、なんでJavaスレでやってるんだよw
0702デフォルトの名無しさん
2005/07/09(土) 22:47:53Java の話が大きく絡んでるから。莫迦?
0703デフォルトの名無しさん
2005/07/09(土) 22:50:30オレ的には最初のPatternの例で十分説得力あるんだが。
0704デフォルトの名無しさん
2005/07/09(土) 22:50:58じゃ、なんで Sun に言わないわけ?
0705デフォルトの名無しさん
2005/07/09(土) 22:52:12それが Pattern の話だろ。
だが
static final 宣言すれば問題ない
↓
不必要にスコープを大きくするのは不適切
↓
例出せよ
の無限輪廻地獄。
0706デフォルトの名無しさん
2005/07/09(土) 22:52:40ループさせて楽しいか? そうか楽しいか。
0707デフォルトの名無しさん
2005/07/09(土) 22:53:31だから、Pattern の例は immutable だし、
final にすれば変更不能にできるし、private にすればクラス内に隠蔽できる。
仮にメソッド内ローカルなクラス変数ができても
スペルミスの対策ぐらいにしかならない、って意味で適切な例ではない。
あぁ、後は発案者の精神的安定には寄与するかもしれない。
0708デフォルトの名無しさん
2005/07/09(土) 22:55:49じゃ、話をすすめようか。
不必要にスコープが大きくなっているのは特定のメソッドでしか使用しないクラス変数だけじゃない。
>>699 みたいに、パッケージ内では使用されたくないけど、継承先では使用して欲しいって場合もある。
メソッド内ローカルのクラス変数だけが特別に必要な理由は?
0709デフォルトの名無しさん
2005/07/09(土) 22:56:56まぁ、ループさせてんのは適切な例出さない方だしねぇ。
楽しいんじゃないの?たぶん。
0710デフォルトの名無しさん
2005/07/09(土) 22:56:58誤用が防げるなら十分有用。
お前の言ってることが正しければ、Java には C/C++ のように boolean 型はいらないということになる。
0711デフォルトの名無しさん
2005/07/09(土) 22:57:08クラス変数の使い方が想像できない>>699のために。
// Singletonパターン
public class VeryLargeObject {
private static VeryLargeObject instance = null;
public synchronized VeryLargeObject getInstance() {
if (instance == null) {
instance = new VeryLargeObject();
}
return instance;
}
}
// インスタンスを生成した数を記録
public class Foo {
private static count;
public Foo() {
count++;
}
public static getCount() { return count; }
}
どちらの例でも、クラス変数はある特定のメソッドでしか使われてない。
0712デフォルトの名無しさん
2005/07/09(土) 22:58:54オマエこそ例をだせよ。
0713デフォルトの名無しさん
2005/07/09(土) 22:59:18> public synchronized VeryLargeObject getInstance() {
static 忘れてるよw
0714デフォルトの名無しさん
2005/07/09(土) 23:00:09だからそのメソッド内でしか使用しないクラス変数を文法上で明記することだと言ってんのに。
0715デフォルトの名無しさん
2005/07/09(土) 23:00:41FilterInputStream みたいなものを作る場合、protected InputStream in は継承先からは使用されても良いが
同パッケージ内からは使用できなくてもかまわない。
0716デフォルトの名無しさん
2005/07/09(土) 23:02:49Singleton の場合ってメソッドローカルに出来る事による利点がそれほどあるとは思えんが。
後半の場合は二つのメソッドから使用されてるので >>636 みたいな安易な方法じゃ無理。
0717デフォルトの名無しさん
2005/07/09(土) 23:03:14>final にすれば変更不能にできるし、private にすればクラス内に隠蔽できる。
immutableとかfinalだとかprivateとかはどれも関係ない。なんでそんな関係ないところをだしてくるの?
今議論になっているのは、変数のスコープを限定したいということ。
あるクラス変数が特定のメソッドでしか使われないことを、ソースコード上で構文として明示的に示したい。
メソッド内でクラス変数が定義できたらそれが実現できるよね、という話。
なんで変更不可とかクラス内に隠蔽とかでてくるわけ?
0718デフォルトの名無しさん
2005/07/09(土) 23:04:38> なんで変更不可とかクラス内に隠蔽とかでてくるわけ?
例が不適切だから。
0719デフォルトの名無しさん
2005/07/09(土) 23:07:31>利点がそれほどあるとは思えんが。
で否定されるYokannヨカーン
0720デフォルトの名無しさん
2005/07/09(土) 23:08:48ウェブアプリを配置したいのですが、どうしたらいいのですか?
0721デフォルトの名無しさん
2005/07/09(土) 23:11:11それこそ例として不適切。
0722デフォルトの名無しさん
2005/07/09(土) 23:12:01どこが?
0723デフォルトの名無しさん
2005/07/09(土) 23:12:22単に話の意図を汲み取りきれてないからだろ。Java に限らずスコープを限定する事が推奨されてるのは
なぜかちょっと調べれば分かると思うんだが、かたくなに「immutable を static final 宣言すれば問題ない」
「利点があるとは思えないので不適切」という御主張。
0724デフォルトの名無しさん
2005/07/09(土) 23:15:04影響範囲が違うよ、boolean はあらゆるところで使われるけど、
Pattern pat の場合はクラス内で気をつければよいだけだからね。
0725デフォルトの名無しさん
2005/07/09(土) 23:16:15「利点がそれほどあるとは思えない。」
0726デフォルトの名無しさん
2005/07/09(土) 23:16:44どのへんが?
0727デフォルトの名無しさん
2005/07/09(土) 23:19:20スコープを限定するのは良いことだが、
細かいスコープを限定するために修飾子を沢山作ったりしたら際限がない。
あれば便利だが、なくても構わん、という程度ではないか?
0728デフォルトの名無しさん
2005/07/09(土) 23:20:05すでにstaticというキーワードがあるんだが。
0729デフォルトの名無しさん
2005/07/09(土) 23:20:42あれば便利だし、実現するのも簡単、という話ではないか?
0730デフォルトの名無しさん
2005/07/09(土) 23:24:08で、>>677 将来の拡張性が犠牲になるのでは?
0731デフォルトの名無しさん
2005/07/09(土) 23:24:26いや、そういう話ではなくてさ。プログラマの誤用を防ぐ方向に考える事の有用性のこと。
boolean 導入は型を明示して C/C++ のような条件分内の代入などの誤用を防いでいる。
スコープもしかり。明示できること = 誤用の防止について「注意すれば良い」などと
考えてる奴はかなり後退的。
0732デフォルトの名無しさん
2005/07/09(土) 23:24:39で、そんなん知ったことか。
0733デフォルトの名無しさん
2005/07/09(土) 23:25:49で、そっちが知ったことでないなら、
メソッド内ローカルなクラス変数なんて知ったことか。
0734デフォルトの名無しさん
2005/07/09(土) 23:28:56いや、あらゆる事を明示していたら際限がない。
個人的には好きだった adding generics のどっかのバージョンにあった
読み込み専用な配列とかも却下されたみたいだし。まぁ、文法はアレだったけど。
0735デフォルトの名無しさん
2005/07/09(土) 23:31:56あったあった。type[+] identifier とかやるんだっけ?
0736デフォルトの名無しさん
2005/07/09(土) 23:33:080737デフォルトの名無しさん
2005/07/09(土) 23:33:37だからそんな「将来の拡張」を話してるのはおまえだけ。しかも話を捻じ曲げるために持ち出している。
そもそも、メソッド内でstaticが使える・使えないという話と、「メソッドローカルなインスタンス変数」の話は関係ないだろ。
メソッド内でstaticが使えるようになったら、「メソッドローカルなインスタンス変数」が実現しにくくなるのか?
メソッド内でstaticが使えなければ、「メソッドローカルなインスタンス変数」が実現できるのか?
メソッド内でstaticが使えようが使えまいが、「メソッドローカルなインスタンス変数」の実現性には影響しない。
それより>>677の
>既に static でクラス変数になるという仕様があると弱くなるよね。
何が弱くなるのかすげー気になる。
0738デフォルトの名無しさん
2005/07/09(土) 23:34:41件のクラス変数より読み込み専用の配列の方が欲しいかも。
0739デフォルトの名無しさん
2005/07/09(土) 23:35:54メソッドローカルなインスタンス変数は新しい予約語を導入しないと難しいんじゃないか。
0740デフォルトの名無しさん
2005/07/09(土) 23:37:57>>720みたいな質問が埋もれる
TomcatがのデフォでROOT使ってるからそれを差し替えるだけでいいんじゃないかな
0741デフォルトの名無しさん
2005/07/09(土) 23:39:11予約語があるっつーよか C言語の文法を真似すれば、だね。
0742デフォルトの名無しさん
2005/07/09(土) 23:39:12使えそうなものはなかったなか。const も予約語だったな。
0743デフォルトの名無しさん
2005/07/09(土) 23:39:41そう、その難しいことをどこからともなく持ち出してきて、簡単なほうも無理やり否定しようとしているのが>>677
0744デフォルトの名無しさん
2005/07/09(土) 23:40:06むしろさっさと埋めて合流したほうが良いんだが。
0745デフォルトの名無しさん
2005/07/09(土) 23:41:13はぁ? スコープを限定できるのは善なんだろ?
だったら難しいも簡単もなくスコープは限定できるべきだろ?
0746デフォルトの名無しさん
2005/07/09(土) 23:42:50言語仕様変えるのって簡単なんだ
だったら Sun に言って変えて貰えば
0747デフォルトの名無しさん
2005/07/09(土) 23:44:24で、そんなん言ってたら際限がない。
0748デフォルトの名無しさん
2005/07/09(土) 23:44:390749デフォルトの名無しさん
2005/07/09(土) 23:45:09で、そんなん言ってたらメソッドローカルのクラス変数の時点で際限がない。
0750デフォルトの名無しさん
2005/07/09(土) 23:45:39そうだよ。だから簡単なものは実現してほしいねといっている。実現が難しいものはあとまわしにしてもいいし、
そもそもメソッドローカルクラス変数ができたからといって、なぜそれがメソッドローカルインスタンス変数の妨げになるのかわからん。
>>677の「弱くなる」がキーワードみたいなのだが、説明してくれないし。
0751デフォルトの名無しさん
2005/07/09(土) 23:46:17いや、C言語で既知の方法で実装できそうだから、とっととやれって話じゃないの?
0752デフォルトの名無しさん
2005/07/09(土) 23:47:40> そもそもメソッドローカルクラス変数ができたからといって、なぜそれがメソッドローカルインスタンス変数の妨げになるのかわからん。
メソッドローカルのクラス変数の宣言に static 以外のキーワード使いたくなるかもしれないから。
0753デフォルトの名無しさん
2005/07/09(土) 23:54:27はーい先生、質問があります。
質問1. 使いたいのはどんなキーワードでしょうか。
質問2. そして、staticじゃいけない理由は何でしょうか。
質問3. static以外のキーワードを使ったとして、メソッドローカルインスタンス変数の実現と何の関係があるんでしょうか。
つーか、使いたくなる「かもしれない」なんてことを理由にするとは、よほどお困りと見える。
0754デフォルトの名無しさん
2005/07/09(土) 23:57:55local とか出てなかったっけ?
> そして、staticじゃいけない理由は何でしょうか。
static でメソッドローカルのクラス変数にするんでしょ?
> static以外のキーワードを使ったとして、メソッドローカルインスタンス変数の実現と何の関係があるんでしょうか。
メソッドローカルインスタンス変数とメソッドローカルクラス変数で一貫性が無くなる。
0755デフォルトの名無しさん
2005/07/09(土) 23:59:020756デフォルトの名無しさん
2005/07/09(土) 23:59:31・実は欲しくない
・実は騒ぐのが目的
0757デフォルトの名無しさん
2005/07/10(日) 00:00:41とか、そんなこと言ってるの?
クラス変数は public > protected > package private > private で隠蔽性を確保してる。
利用できるスコープもしかり。メソッドローカルなクラス変数は private より狭いスコープに
なるだけだから、影響範囲が限定的になるだけで開発側としての副作用は… 別に思い
つかないな。
この順序性というか構造を崩すような無理やりなスコープでなければ「際限が無い」ってことはないだろ。
0758デフォルトの名無しさん
2005/07/10(日) 00:01:39よくよめ。
>メソッドローカルのクラス変数の宣言に static 以外のキーワード使いたくなるかもしれないから。
メソッドローカルのインスタンス変数についてじゃない。
メソッドローカルのクラス変数にstatic以外を使いたいんだと。
0759デフォルトの名無しさん
2005/07/10(日) 00:04:53> この順序性というか構造を崩すような無理やりなスコープでなければ「際限が無い」ってことはないだろ。
ありとあらゆるものを明示的に宣言したら際限がない。
具体的には、>>711 の後半のパターンとか。
> 開発側としての副作用は… 別に思いつかないな。
staic の多義性の問題とか出てくるかもね。
今でも複数の意味に使われてるし。
0760デフォルトの名無しさん
2005/07/10(日) 00:05:03いや、実現性の話も出てるが『スコープ限定は不適切』論が出てるから騒いでるんだろ。
0761デフォルトの名無しさん
2005/07/10(日) 00:07:39>メソッドローカルインスタンス変数とメソッドローカルクラス変数で一貫性が無くなる。
から、メソッドローカルのクラス変数で static 以外のキーワードを使いたいんだろ。
メソッドローカルクラス変数とメソッドローカルインスタンス変数で同じキーワード使いたいんじゃないの?
0762デフォルトの名無しさん
2005/07/10(日) 00:08:21誰が『スコープ限定は不適切』なんていったんだ?
0763デフォルトの名無しさん
2005/07/10(日) 00:09:52また新しい理由を考えたようだな。自分を守るのに必死な759がんばれ。
>今でも複数の意味に使われてるし。
Javaで複数の意味に使われてるっけ。Cではそうだけど。
0764デフォルトの名無しさん
2005/07/10(日) 00:10:10いつの間にか『スコープ限定は不適切』になってるのは?
0765デフォルトの名無しさん
2005/07/10(日) 00:11:56文法上、「節」になってるのは クラス > メソッド (>メソッド内のブロック) の順序だから、
2つ以上のメソッドを跨ぐスコープを持つ変数ってのはクラス変数にしかなり得ないな。
順序性とか構造と言ったのはそういうこと。
0766デフォルトの名無しさん
2005/07/10(日) 00:14:05え? Java では局所クラスやら無名クラスがあるから、
2つ以上のメソッドを跨ぐスコープの局所変数ってできるよ?
あと、クラス変数だけじゃなくてインスタンス変数もね。
0767デフォルトの名無しさん
2005/07/10(日) 00:18:15>>766
んー、30 秒だけ考えてみたがどういうことか分からん。final 宣言したローカル変数が
無名 innter クラスのメソッドから見えるという話をしてるのか?
0768デフォルトの名無しさん
2005/07/10(日) 00:19:57そゆ事。
0769デフォルトの名無しさん
2005/07/10(日) 00:24:34反応されるだけの間違いをしてると思うが。
0770デフォルトの名無しさん
2005/07/10(日) 00:31:25確かにそうだが、俺が言いたいこととはちょっと違うかな。
>>769
『不適切』で茶化しただけだがw
素直に『スコープ限定は不要』論、と言ったほうが良かったようだな、これは失敗。
0771デフォルトの名無しさん
2005/07/10(日) 00:34:150772デフォルトの名無しさん
2005/07/10(日) 00:36:41> 素直に『スコープ限定は不要』論、と言ったほうが良かったようだな、これは失敗。
いや、メソッドローカルのクラス変数だけ特別扱いしてスコープ限定する意味あるの? って主張してるんだが。
つまり、特定の一つのメソッドでしか使わないクラス変数ってそんなに多いか?
個人的には >>699 みたいな継承オンリーのスコープのが欲しいと思う回数が多い。
0773デフォルトの名無しさん
2005/07/10(日) 00:40:12なんだ、メソッドローカルのクラス変数が欲しい、じゃなくて
スコープ限定=善、それを否定する奴は悪になってたのか。
0774デフォルトの名無しさん
2005/07/10(日) 00:46:08個人的にはシングルトンだったらメソッドローカルのクラス変数みたいな小手先の解決策取らんで
singleton とかのキーワード付けてクラス宣言する、みたいにした方が良いような気がする。
0775デフォルトの名無しさん
2005/07/10(日) 00:46:36意味があるとずっと主張してるんだが。
例をあげると、「それは不適切」とかなんとかきってすてるし。
しかもなぜ不適切かというと「理由として弱い」だとさ。
結局、「おれには必要ないから却下、おれが必要な継承オンリーのスコープが正義」というのが本音だろ。
0776デフォルトの名無しさん
2005/07/10(日) 00:46:36多いよ。元の話の Pattern のような構築に時間がかかるが不変なインスタンス、
getInstance() しかない Singleton、共有不要なメソッド内の定数、メソッド内でしか
使用しない定数テーブルや何かの判定用の定数Setもそう。
0777デフォルトの名無しさん
2005/07/10(日) 00:47:38悪で無い理由は? 「例が不適切」だから?w
0778デフォルトの名無しさん
2005/07/10(日) 00:49:56> 共有不要なメソッド内の定数、メソッド内でしか
> 使用しない定数テーブルや何かの判定用の定数Set
定数でメソッド内に限定する意味あるの?
0779デフォルトの名無しさん
2005/07/10(日) 00:50:26悪でないとは言ってないよ。っつか、誰もんな事言ってないし。
0780デフォルトの名無しさん
2005/07/10(日) 00:52:02で、何が言いたかったの?
0781デフォルトの名無しさん
2005/07/10(日) 00:52:42> 例をあげると、「それは不適切」とかなんとかきってすてるし。
少なくとも、Pattern は不適切だろ。
切って捨てられても文句は言えない。
> しかもなぜ不適切かというと「理由として弱い」だとさ。
そーゆー時に「理由として弱い」なんて言ったっけか?
0782デフォルトの名無しさん
2005/07/10(日) 00:53:06メソッドローカルのクラス変数は必要ない。
0783デフォルトの名無しさん
2005/07/10(日) 00:53:14そのメソッドでしか利用しないなら、限定する意味ありありじゃん。わかっていってるのかな?
0784デフォルトの名無しさん
2005/07/10(日) 00:54:12定数でない変数よりは限定する必要は少ないよね?
もちろんわかってるよね?
0785デフォルトの名無しさん
2005/07/10(日) 00:54:18ちょっとまて、なんであの例が不適切なんだ?
0786デフォルトの名無しさん
2005/07/10(日) 00:55:47だ・か・ら、スコープ限定のメリットが定数でない変数やら可変オブジェクトと比べて少ないから。
0787デフォルトの名無しさん
2005/07/10(日) 00:57:07> 件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
おまえは「説明しにくい」という感想しか言ってないな。>>674 はスルーか?
0788デフォルトの名無しさん
2005/07/10(日) 00:57:15スコープ以外は何も見てないんだろ。
0789デフォルトの名無しさん
2005/07/10(日) 00:58:01ま た ル ー プ か
0790デフォルトの名無しさん
2005/07/10(日) 00:58:58「理由として弱い」で検索しても出てこないわけだ。
あとね、感想じゃないよ。
0791デフォルトの名無しさん
2005/07/10(日) 00:59:30だってループさせるように誘導するんだもん。
0792デフォルトの名無しさん
2005/07/10(日) 01:00:55わかってたら >>776 みたいな例ださんだろ。
0793デフォルトの名無しさん
2005/07/10(日) 01:00:59確かに immutable ならメリットは少ないな。
お前が Pattern の話を持ち出してスコープから話題をそらしたかったのは良く分かった。
0794デフォルトの名無しさん
2005/07/10(日) 01:01:25「オレ様にとってメリットが少ないから」宣言キター
0795デフォルトの名無しさん
2005/07/10(日) 01:02:20荒探しに忙しそうですね。
0796デフォルトの名無しさん
2005/07/10(日) 01:03:51で、>>674 はスルーか?
>>>661
>>件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
>はぁ?「あるメソッドでしか使わないからスコープをそのメソッドのみに限定する」、すげー簡単じゃん。
>何が説明しにくいの?
0797デフォルトの名無しさん
2005/07/10(日) 01:04:12> 確かに immutable ならメリットは少ないな。
でしょ。で、>>776 みたいにそーゆー用途がほとんどみたいじゃん。
> お前が Pattern の話を持ち出してスコープから話題をそらしたかったのは良く分かった。
いや、話題をそらしたわけじゃないよ。スコープ全般の話なんかしてないから。
メソッドローカルクラス変数は導入するメリットが少ない。
>>776 みたいな例ばかりならば。
0798デフォルトの名無しさん
2005/07/10(日) 01:05:00>Singleton の場合ってメソッドローカルに出来る事による利点がそれほどあるとは思えんが。
0799デフォルトの名無しさん
2005/07/10(日) 01:05:26いや、それは Pattern の例が不適切だと言った時からの主張なんだが。
伝わってなかったんならゴメンね。
0800デフォルトの名無しさん
2005/07/10(日) 01:07:58try{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String input = new String();
input = br.readLine();
isr.close();
return input;
}
catch(Exception e){
System.out.println("受け付けられない文字です。指定の文字を入力してください。" + e );
return "error";
}
}
と言うメソッドを作って、mainで例えば、
String s1 = Get.gets();
String s2 = Get.gets();
とすると、
受け付けられない文字です。指定の文字を入力してください。java.io.IOException: Str
eam closed
と、例外処理が起こってしまうのは何故でしょう?
また、どう直せばいいのでしょうか?
お願いします。
0801デフォルトの名無しさん
2005/07/10(日) 01:08:47逃避宣言キタ━━━━(゚∀゚)━━━━ッ!!
0802デフォルトの名無しさん
2005/07/10(日) 01:09:31変数のスコープを関係ある場所にだけ限定したいというのが、なんでそんなにおかしいんだ?
「メリットが少ない」ってのはおまえの主観だろ。おれの主観で言うと、継承のスコープがなんたらかんたらのほうにはまったくメリットを感じない。
0803デフォルトの名無しさん
2005/07/10(日) 01:10:01Singleton のインスタンスを保持してる変数を誤用するとか、
名前が被って煩わしいってケースがそんなに多いとは思えないし。
スコープ限定できてもスコープ限定できる以上の意味がほとんど無いと思うけど。
スコープを限定することに意義があるってんなら話は別だけど。
0804デフォルトの名無しさん
2005/07/10(日) 01:10:52> >>776 みたいな例ばかりならば。
だから immutable であればスコープは問題ないというような主張をしてるのは
幸せ回路持ったお前だけだっての。
0805デフォルトの名無しさん
2005/07/10(日) 01:11:00スコープ全般の話をしてたつもりの奴がいるのか
0806デフォルトの名無しさん
2005/07/10(日) 01:11:46ありがとうございます。
sjisのファイルを読み込んでsjisで書き込むプログラムを教えてください。
なんですが、getbyteを使ったプログラムを教えていただけませんか?
0807デフォルトの名無しさん
2005/07/10(日) 01:12:29だから、immutable だったり定数だったりするなら、
そうでない変数よりスコープ限定するメリットが少ないって言ってるの。
0808デフォルトの名無しさん
2005/07/10(日) 01:12:41具合が悪くなって immutable に逃げた奴ならいるがな。
0809デフォルトの名無しさん
2005/07/10(日) 01:13:52それはお前の「感想」だろ。
0810デフォルトの名無しさん
2005/07/10(日) 01:13:53<table width="140" bgcolor="#000000" style="background-color:bgcolor="#000000" " cellpadding="0" cellspacing="3" border="0"><tr>
<td align="center" style="border: 1px solid #AFB2D8;color:#ffffff;padding-top:5px;padding-bottom:5px;" bgcolor="#000000"><font face="arial,verdana,sans-serif" size="1" color="#ffffff">
<span style="font-size:10px;font-family:arial,verdana,sans-serif;color:#ffffff">CURRENT MOON<br /><script language="JavaScript" type="text/javascript" src="http://www.calculatorcat.com/cs/mm/ccm_b.js">
</script><script language="JavaScript" type="text/javascript" src="http://www.calculatorcat.com/cs/mm/ccm_v.js"></script><span style="display:block;padding-top:5px">
<a href="http://www.calculatorcat.com/moon_phases/moon_phases.phtml" target="cc_moon_ph" style="font-size:10px;font-family:arial,verdana,sans-serif;color:#777777;text-decoration:underline;background:#000000;border:none;">
moon phase</a></span></span></font></td></tr></table><!-- // end moon phase HTML // -->
すいません。このスクリプトを携帯でも
閲覧できるようにしたいのですがどうすればいいですか?
0811デフォルトの名無しさん
2005/07/10(日) 01:14:20getbyte って何?
0812デフォルトの名無しさん
2005/07/10(日) 01:14:49携帯で JavaScript は動きません。
0813デフォルトの名無しさん
2005/07/10(日) 01:14:54> と、例外処理が起こってしまうのは何故でしょう?
isr.close() してるから。
> また、どう直せばいいのでしょうか?
isr.close() しないようにすれば例外は出なくなるけど、
正常に動作させたいなら、BufferedReader 使わないで
改行記号まで読み込むようにするとかの根本的に直さないと無理。
0814デフォルトの名無しさん
2005/07/10(日) 01:15:39Singletonでつかうクラス変数はimmutableでもないし定数でもないんだが。
0815デフォルトの名無しさん
2005/07/10(日) 01:15:47>>793 も同意してるんだけど。
0816デフォルトの名無しさん
2005/07/10(日) 01:16:090817デフォルトの名無しさん
2005/07/10(日) 01:17:45なんだ、本当にスコープ全般の話のつもりだった奴がいるのか。
0818デフォルトの名無しさん
2005/07/10(日) 01:18:290819デフォルトの名無しさん
2005/07/10(日) 01:18:58じゃあ反対派は2人か。
おれはメソッド内にスコープ限定できたらうれしいに一票。
0820デフォルトの名無しさん
2005/07/10(日) 01:20:000821デフォルトの名無しさん
2005/07/10(日) 01:20:500822デフォルトの名無しさん
2005/07/10(日) 01:22:18旗色が悪くなってしまってそっちに話題をそらしたいのはよく分かるよ。w
0823デフォルトの名無しさん
2005/07/10(日) 01:22:20Singleton は便宜上 final で修飾されてないだけだと思うが、
2つ以上のインスタンスが生成されても良いわけ?
Singleton なら private だろうし、事実上定数だよね?
0824デフォルトの名無しさん
2005/07/10(日) 01:22:52それってキミの事かな?
0825デフォルトの名無しさん
2005/07/10(日) 01:23:55なに顔真っ赤にしてリロードボタン押してんのさwww
0826デフォルトの名無しさん
2005/07/10(日) 01:23:55immutableでも定数でもなくて、あるメソッドからしか使わないクラス変数なんてしょっちゅうあるんだけど。
0827デフォルトの名無しさん
2005/07/10(日) 01:25:21いや、残念だが君の事だ。
0828デフォルトの名無しさん
2005/07/10(日) 01:25:41俺は それほど無いんだけど。
0829デフォルトの名無しさん
2005/07/10(日) 01:25:59便宜上でもなんでもないよ。>>711のように、大きいオブジェクトは必要になるまで作らないようにするから、そのときはfinalなんてつけない。
0830デフォルトの名無しさん
2005/07/10(日) 01:26:14と言う事にしたいわけだw
0831デフォルトの名無しさん
2005/07/10(日) 01:27:18>>803 はスルーっすかw
0832デフォルトの名無しさん
2005/07/10(日) 01:29:32829 ではないが、影響範囲って知ってるか? なぜ必要以上にスコープを広げないか分かってる?
0833デフォルトの名無しさん
2005/07/10(日) 01:29:44>と、例外処理が起こってしまうのは何故でしょう?
get() メソッド内で新しい InputStream を open していないのに、
>isr.close();
してしまっているからです。
「System.in」(標準入力)はあらかじめ用意されている InputStream で、
>InputStreamReader isr = new InputStreamReader(System.in);
では、これを、新しく作る InputStreamReader に割り当てているだけです。
従って、
>isr.close();
とすると、System.in も close されてしまい、二回目の呼び出しでは、
既に close() されている System.in を渡して、
>InputStreamReader isr = new InputStreamReader(System.in);
を実行することになるので、これを使った、
>input = br.readLine();
で、java.io.IOException が投げられるのです。
>また、どう直せばいいのでしょうか?
>isr.close();
を消すのがベストだと思います。
0834デフォルトの名無しさん
2005/07/10(日) 01:30:43それはお前だろ。
0835デフォルトの名無しさん
2005/07/10(日) 01:33:34影響範囲っても Singleton ならクラス内でしょーが。
スコープ限定するだけが目的なら話は別だけど、
スコープ限定出来る事によるメリットが少ないって言ってるんだよ。
Singleton なら変数名も特徴的なの使うだろうし。
0836デフォルトの名無しさん
2005/07/10(日) 01:38:10isr.close() を消しただけだと、
貼り付けとかしたときに BufferedReader でバッファリングした分が全部捨てられる可能性があるよ。
まぁ、学校の宿題で簡単なチェックを通れば良いってんならそれでも良いかもしれんが。
0837デフォルトの名無しさん
2005/07/10(日) 01:40:040838デフォルトの名無しさん
2005/07/10(日) 01:40:38Singletonパターンじゃなくても、それに近いことはしょっちゅうあるぞ。
/* ページ遷移を表すテーブル */
private static Map pageTable = null; // ← これはメソッド内に閉じ込めたい
/* pageTableを参照して、次のページを表す文字列を返す */
public String getNextPage(String currentPage) {
if (pageTable == null) {
synchronized(this) {
if (pageTable == null) {
// 設定ファイルを読み込んで、pageTableを設定する。
pageTable = new HashMap();
/* 省略 */
}
}
}
String nextPage = (String)pageTable.get(currentPage);
return nextPage;
}
「メリットが少ない」っていってるが、それはおまえの主観だって。
0839デフォルトの名無しさん
2005/07/10(日) 01:41:30どうも、スコープ全般の話に持ち込みたい人がいるみたいで。
他人を散々叩いてきたから、自分が優位に立たないと我慢が出来ないんでしょ。
0841デフォルトの名無しさん
2005/07/10(日) 01:43:32いや、旗色悪くなったから逃げたがってる奴がいるだけにしか見えないが?
0842デフォルトの名無しさん
2005/07/10(日) 01:45:00基本的には >>711 の Singleton と同じなんですけど。
0843デフォルトの名無しさん
2005/07/10(日) 01:46:44private static final Set ADMIN_PERM = new HashSet();
static{
ADMIN_PERM.add("001");
ADMIN_PERM.add("002");
ADMIN_PERM.add("004");
};
public boolean isAdmin(){
return ADMIN_PERM.contains(userID); // ← ここでしか使わない
}
0844デフォルトの名無しさん
2005/07/10(日) 01:47:42> 「メリットが少ない」っていってるが、それはおまえの主観だって。
いや、>>793 も同意してるね。
主観だって決め付けるなら、実質定数とか immutable なオブジェクトを
メソッドローカルなクラス変数にする事に客観的にどんなメリットがあるのか出してくれ。
スコープ限定出来る事に意義がある以外に。
0845デフォルトの名無しさん
2005/07/10(日) 01:49:45それ、immutable じゃん。メソッドローカル云々言う前に
Collections.unmodifiableSet(Set) した方が良いと思うが。
0846デフォルトの名無しさん
2005/07/10(日) 01:49:54/* これはちょっと気持ち悪い */
private static final Pattern pat1 = Pattern.compile(/.../);
private static final Pattern pat2 = Pattern.compile(/.../);
private static final Pattern pat3 = Pattern.compile(/.../);
public void foo(String str) {
Matcher m; = pat1.matcher(str);
if ((m = pat1.matcher(str)).find()) {
....
return;
}
if ((m = pat2.matcher(str)).find()) {
....
return;
}
if ((m = pat3.matcher(str)).find()) {
....
return;
}
return null;
}
0847デフォルトの名無しさん
2005/07/10(日) 01:51:27なんだ、結局
> /* これはちょっと気持ち悪い */
を解消したいだけか……
0848793
2005/07/10(日) 01:51:48悪いが、同意したのは「immutable なインスタンスならそうで無いものに
比べてメソッドローカルなクラス変数にするメリットが少ない」ってのだ。
おまえの不要論に同意したわけではない。
0849デフォルトの名無しさん
2005/07/10(日) 01:52:44そうでない変数に比べてスコープを限定するメリットが少ないってわかってるよね?
0850デフォルトの名無しさん
2005/07/10(日) 01:53:52おまえが immutable に話題を持ってゆきたい理由なら分かるな。
0851デフォルトの名無しさん
2005/07/10(日) 01:54:34> 「immutable なインスタンスならそうで無いものに
immutable なインスタンスや、定数ね。
今のところ そーゆー例しか出てないような気がするが。
0852デフォルトの名無しさん
2005/07/10(日) 01:55:39おまえがスコープ全般に話題を持ってゆきたい理由も分かるけど。
0853デフォルトの名無しさん
2005/07/10(日) 01:55:45おれはコードがすっきりしてわかりやすくなるだけですごくうれしいんだけど。
メリットが少ないっていう理由をもっと説明してくれ。
0854デフォルトの名無しさん
2005/07/10(日) 01:57:12> メリットが少ないっていう理由をもっと説明してくれ。
既に説明したが。
逆に言うと、メリットは書いてる人間の自己満足ぐらいしかないわけだよね?
0855デフォルトの名無しさん
2005/07/10(日) 01:58:15はいはい
private static int counter = 0;
public void foo(){
counter ++;
if(counter >= 100){
// アクセス数多すぎ
return;
}
try{
// なんかの処理
} finally {
counter --;
}
}
とか
0856デフォルトの名無しさん
2005/07/10(日) 01:58:31>基本的には >>711 の Singleton と同じなんですけど。
そのとおりだけど。だから「それに近い」と書いたんだが。
immutableでもないし定数でもない例として出したつもりだが、これじゃだめなのか?
0857デフォルトの名無しさん
2005/07/10(日) 01:58:40明確なデメリットがあるなら話は別だが、そうでないなら
「ちょっと気持ち悪い」が解消できる事には意味がある。
0858デフォルトの名無しさん
2005/07/10(日) 01:58:42で、スコープ全般の話になってループだな。
0859デフォルトの名無しさん
2005/07/10(日) 01:59:38どこらへんで?
0860デフォルトの名無しさん
2005/07/10(日) 02:00:49今までと違う文法を導入しなければならないので
しばらくは複数の書き方が並存することになる。
読むほうは両方読めないといけない。って意味で学習コストが上がるよね。
「ちょっと気持ちが悪い」程度であれば、この程度で潰されるんじゃないか?
0861デフォルトの名無しさん
2005/07/10(日) 02:02:03それをいうならTigerなんか悲惨だが。
0862デフォルトの名無しさん
2005/07/10(日) 02:02:12これだけ?
0863デフォルトの名無しさん
2005/07/10(日) 02:03:26Tiger で導入されたのは「ちょっと気持ちが悪い」を解消するための機能なのか?
0864デフォルトの名無しさん
2005/07/10(日) 02:04:320865デフォルトの名無しさん
2005/07/10(日) 02:05:36あーあー、「そういう例が出ない」の次は「これだけ?」ですか。
0866デフォルトの名無しさん
2005/07/10(日) 02:07:26メリットが多い事を示すなら量出さなければならないのは自明だと思うが。
っつか、>>855 return の前に counter-- しないとマズイのでは?
もしくはtry の位置が違うとか。
0867デフォルトの名無しさん
2005/07/10(日) 02:07:31違うのか?
・Staticインポート
・Enum
・autoboxing
・foreach文
・可変長引数
・・・
genericsやannotationに混じって、どうでもいい拡張がされてるけどな。
0868デフォルトの名無しさん
2005/07/10(日) 02:08:35immutable とか定数っぽい例があんだけ出てるんだから、もっと出せるでしょ。
0869デフォルトの名無しさん
2005/07/10(日) 02:09:31はいはい、よくあるオートリロードの設定例ね。
private static long lastModified = -1;
private static File file = new File("foo.properties");
private static Properties conf = new Properties()
public static String getConfig(String name){
if(file.lastModified() != lastModified){
reload();
}
return conf.getProperty(name);
}
0870デフォルトの名無しさん
2005/07/10(日) 02:10:17enum が「ちょっと気持ち悪い」程度を解消するためのもんなのか?
まぁ使わない人はそー思うのかもしらんが。
0871デフォルトの名無しさん
2005/07/10(日) 02:10:180872デフォルトの名無しさん
2005/07/10(日) 02:13:31なんで量を出すという話にすり替わってんだ?
immutable でない典型的な例が出てるぞ。おまえのよりどころはもう「少ない」の言葉っつらだけか?
0873デフォルトの名無しさん
2005/07/10(日) 02:14:38前からそうだよ。
0874デフォルトの名無しさん
2005/07/10(日) 02:16:03お、ファイルの最終更新日時取得するの忘れてる orz
また嬉々として突っ込まれちゃうなw
0875デフォルトの名無しさん
2005/07/10(日) 02:16:30違うのか?コンパイラによるチェックがされる程度のメリットしか感じない。
タイプミスを軽視するおまえなら、わかるよな。
>まぁ使わない人はそー思うのかもしらんが。
クラス変数をつかわないおまえが、メリットが少ないと思うのと同じだろ。
つか、>>867のほかの機能についてはどうよ?おれは「ちょっと気持ち悪い」を解消する程度にしか見えないんだが。
0876デフォルトの名無しさん
2005/07/10(日) 02:17:20何故だか分からないが、俺のゴーストが「このコードは危険だ」と囁いてるw
単に馴染みの問題という可能性も否定しきれないんだが、どうも保守に苦労
しそうな悪寒が・・・・・・
>>860
いや、コストは上がらんでしょ?その点で言えば、寧ろ「ちょっと気持ち悪い」
が解消できるメリットの方が大きい。
0877デフォルトの名無しさん
2005/07/10(日) 02:18:49そういやenumって新しい予約語なんだっけ。予約語を導入したくなるほどtype safe enumに魅力があるとは思えん。
0878デフォルトの名無しさん
2005/07/10(日) 02:19:48>>855の例と違って、こっちには気持ち悪さを感じない。
まぁ、主観100%なわけだが、この感情がどこから来るのかは
ちょっと興味深い。スマソ、独り言だorz
0879デフォルトの名無しさん
2005/07/10(日) 02:20:21> 違うのか?
いや、型が導入される事のメリットは大きいね。
switch にも使えるし。
> つか、>>867のほかの機能についてはどうよ?
EOD を実現(?)するための機能なんじゃないの?
autoboxing とか static import は個人的には無くても良いと思うけど
方向性としては一貫してると思うよ。
0880デフォルトの名無しさん
2005/07/10(日) 02:20:27根拠がまったくわからん。
0881デフォルトの名無しさん
2005/07/10(日) 02:21:08ずっと使いまくりなんだがSwitchがとおったりコンパイルエラーではじきやすいってのは十分なメリットじゃないのか?
Cのenumになれたからintで十分ってか?
>>875がつりに見えてしょうがない
0882デフォルトの名無しさん
2005/07/10(日) 02:21:55うぁ〜いヽ(´Д` )ノ
お前、凄いこと言い始めてるぞ、ちょっと冷静になれ。
0883デフォルトの名無しさん
2005/07/10(日) 02:24:41名前が長いからじゃないの?
0884デフォルトの名無しさん
2005/07/10(日) 02:27:46うん、我ながら前者はちょっと一般的じゃないね。
あとは毎日 0:00 を超えたら DB からコードテーブル持ってきて static 変数に保持しておくのとか
あるね。
0885デフォルトの名無しさん
2005/07/10(日) 02:31:18>>875は
>弊害がスペルミスによる誤用ぐらいしかないから。
といいきったやつへの皮肉なんだけど。なんでスペルミスは軽視してenumは重要視するんだ?
0886デフォルトの名無しさん
2005/07/10(日) 02:32:40private static final FOO = new Foo();
public static String getCodeLabel(String name){
FOO.checkReload();
return FOO.getCodeLabel(name);
}
0887デフォルトの名無しさん
2005/07/10(日) 02:34:24スペルミス防止以外にも switch に使えたり
int の定数使ってて、単純な計算で整数型に成り下がる事とかを防止できたりするから。
簡単に言えば、メリットが多いから。
0888デフォルトの名無しさん
2005/07/10(日) 02:35:16それだけ?w
0889デフォルトの名無しさん
2005/07/10(日) 02:36:09メリット言ってるんだもん、一つでも多ければ十分でしょ。
0890デフォルトの名無しさん
2005/07/10(日) 02:37:49で、君の「メリットが少ない」を否定するにはいくつ必要なわけ?
0891デフォルトの名無しさん
2005/07/10(日) 02:39:13多ければ多いほど良いw
0892デフォルトの名無しさん
2005/07/10(日) 02:41:320893デフォルトの名無しさん
2005/07/10(日) 02:41:59あぁ、例とメリットをごっちゃにして数だけを比較してるのか。
0894デフォルトの名無しさん
2005/07/10(日) 02:42:34クラスとは別にメソッドが独自の状態を保持するというのは、JAVA的には
そもそもなじみがない。
>>855の例からは具体的な全体像とでも呼ぶべきものが想像しにくいから
それが安全か否か判断できず気持ち悪さとして感じるんだろうと思う。
>>869の例では書かれてない部分も比較的安易に補完できる(いくつかの
可能性を当て嵌めてみることができる)から、安全そうだと判断できる範囲
に応じて気持ち悪さが低減されてるのではないか?
0895デフォルトの名無しさん
2005/07/10(日) 02:42:38・関数限定staticがCにあるから、Javaでもあってしかるべきだ。
・Type Safe EnumはCにはないから、Javaにも別に必要なかったものだ。
ということなの?
0896デフォルトの名無しさん
2005/07/10(日) 02:45:49誰がそんな事いったんだ?
0897デフォルトの名無しさん
2005/07/10(日) 02:46:06皮肉だったのなら別にそれで構わない。一瞬、本気で言ってるのかと
思ったぞw
後段については俺ではなく本人に聞いてくれ。
0898デフォルトの名無しさん
2005/07/10(日) 02:46:29よーするに、慣れの問題って事か
0899デフォルトの名無しさん
2005/07/10(日) 02:48:51例が云々は出たが関係ない。都合が悪くなったらっていちいち逃げるな カス
メリットが多い少ない良い始めたのはおまえだ
い く つ 必 要 な の ?
0900デフォルトの名無しさん
2005/07/10(日) 02:51:02Sun に言語仕様変えさせたいならいくつ必要だと思う?
0901デフォルトの名無しさん
2005/07/10(日) 02:53:27>>855 は以前作ったうpローダーで後付けで同時アクセス数制限設けた奴だ。
用途が分かれば少しはすっきりするかな?
0902デフォルトの名無しさん
2005/07/10(日) 02:54:05また話題逸らしですかw
0903デフォルトの名無しさん
2005/07/10(日) 02:54:09どっちも主観だから、議論は平行線。
ここで話を変えてみませんか。メソッドローカルなクラス変数が使えると何か不具合がありますか?
0904デフォルトの名無しさん
2005/07/10(日) 02:56:42結局のところ、言語仕様変わんないのに 2ch で騒いだって意味ないし。
0905デフォルトの名無しさん
2005/07/10(日) 02:56:47おまえに、おまえが納得する数字を聞いてるんだけど
なんで Sun が出てくるわけ? バカ だろ?
0906デフォルトの名無しさん
2005/07/10(日) 02:57:410907デフォルトの名無しさん
2005/07/10(日) 02:58:33必殺ちゃぶ台返し キタ━━━━(゚∀゚)━━━━ッ!!
0908デフォルトの名無しさん
2005/07/10(日) 02:58:37メソッドローカルなクラス変数より入れて欲しい機能ならあるかな。
C# の struct みたいな lightweight class とか。
0909デフォルトの名無しさん
2005/07/10(日) 02:59:07>>907 が勝利宣言なの?
0910デフォルトの名無しさん
2005/07/10(日) 03:00:56テラワロスwww
0911デフォルトの名無しさん
2005/07/10(日) 03:02:09また話をそらす。で、メソッドローカルなクラス変数があるとどんな不具合があるの?
0912デフォルトの名無しさん
2005/07/10(日) 03:04:42まぁイージーミス防止にメリットを見出せない奴には不要かもしれんが。
0913デフォルトの名無しさん
2005/07/10(日) 03:06:470914デフォルトの名無しさん
2005/07/10(日) 03:06:58override なら annotation で対応してなかったっけ?
0915デフォルトの名無しさん
2005/07/10(日) 03:07:50>>803
>スコープ限定できてもスコープ限定できる以上の意味がほとんど無いと思うけど。
>スコープを限定することに意義があるってんなら話は別だけど。
最初っからスコープの話をしているんだとおもうが。違うのか?
>>558
>static変数をメソッドの中で定義することは可能ですか?
>具体的には、java.util.regex.Patternオブジェクトを毎回生成せずにstatic変数にしているんですが、
>特定のメソッドの中でしか使用しないんで、そのメソッドの中で定義できるとうれしいんですが。
>>616
>クラス変数でだめなんていってない。クラス変数のスコープをあるメソッドだけに限定したいというだけだ。
0916デフォルトの名無しさん
2005/07/10(日) 03:08:03ちなみに、メソッドローカルなクラス変数があるとどんな不具合があったりなかったりすると何かあるの?
0917デフォルトの名無しさん
2005/07/10(日) 03:09:36おまえは苦しくなると質問に質問で答えるのな。
0918デフォルトの名無しさん
2005/07/10(日) 03:10:13>>558 >>616 その辺は俺関わってないし。
0919デフォルトの名無しさん
2005/07/10(日) 03:12:13途中で 「俺はスコープ全般の話などしていない、immutable な Pattern を
メソッドローカルなクラス変数にするメリットは少ない」とか言い始めた。
0920デフォルトの名無しさん
2005/07/10(日) 03:14:09実際問題少ないし、Patternの例が不適切だって言ってたのをちゃんと読めば
そーゆー風に読み取れると思うが。
0921デフォルトの名無しさん
2005/07/10(日) 03:14:45つまり、元ネタと流れを読まずに一方的に immutable が云々の一人相撲とってたというわけね。
いやーよく引っ張ったね、君埋め氏でしょ?w
0922デフォルトの名無しさん
2005/07/10(日) 03:15:00あぁメリットが少ないってのは定数とかimmutableと変数を比べて
変数よりメリットが少ないって事ね。
0923デフォルトの名無しさん
2005/07/10(日) 03:15:41いやぁ、優秀な協力者がいてくれたからですよw
0924デフォルトの名無しさん
2005/07/10(日) 03:16:28いや、元ネタしか読まなかったのが原因だと思われ
流れが読めなかったのはお互い様でしょ
0925デフォルトの名無しさん
2005/07/10(日) 03:18:19そんなこといいからさっさと埋めろよ。
0926デフォルトの名無しさん
2005/07/10(日) 03:19:36>クラス変数のスコープをあるメソッドだけに限定したい
ということでよろしいか。
それから長々と議論があって、なぜか
>あぁメリットが少ないってのは定数とかimmutableと変数を比べて
>変数よりメリットが少ないって事ね。
という結論になる。
ごめん、おれには流れがさっぱりわからんかった。
0927デフォルトの名無しさん
2005/07/10(日) 03:19:41後は任せた。
0928デフォルトの名無しさん
2005/07/10(日) 03:20:37「ちゃんと読めば」って、おまえがちゃんと読めよ。
0929デフォルトの名無しさん
2005/07/10(日) 03:20:48最初の例が immutable だったからさ。
0930デフォルトの名無しさん
2005/07/10(日) 03:27:060931デフォルトの名無しさん
2005/07/10(日) 03:28:05んで、できたとして特にデメリットはなさそう。
かつ、>>656や>>674あたりをみると、技術的に問題はないらしい。
じゃ、あったとしてもいいんじゃないの。メリットが少ないって主張する人もいるけど、そうじゃない人も少なくないみたいだし。
個人的にみても、少なくともstatic importよりは役に立ちそう。
「自分がメリット感じないから反対」っていうのはよくないんじゃないかな。
0932デフォルトの名無しさん
2005/07/10(日) 03:35:21途中で具合が悪くなって「スコープ全般の話はしてない」とか言い始めただけ。
そのまま引けなくなって今に至る。
0933デフォルトの名無しさん
2005/07/10(日) 03:37:350934デフォルトの名無しさん
2005/07/10(日) 03:37:42一般論としてスコープを限定するのに反対した覚えはないんだが。
そうそう、>>803 の
> スコープ限定できてもスコープ限定できる以上の意味がほとんど無いと思うけど。
> スコープを限定することに意義があるってんなら話は別だけど。
ってのはスコープを限定した事による自己満足に意義がある、
程度の意味で言ってたつもりなんだけど。
どーも通じてなかったみたいで。
>>931
> 「自分がメリット感じないから反対」っていうのはよくないんじゃないかな。
言語仕様変えるってな話であれば、言語仕様変えられる人的資源とかは限られてるんだから
メリット感じないなら反対されるのは当然なのでは?
0935デフォルトの名無しさん
2005/07/10(日) 03:39:42ん? もう寝る。
後は任せた。
0936デフォルトの名無しさん
2005/07/10(日) 03:40:050937デフォルトの名無しさん
2005/07/10(日) 03:43:20どうって、「メリットがある」でいいじゃん。プログラムすっきりするし。例もたくさんあったし。
おまえにとってはメリットじゃないんだろうけどな。
0938デフォルトの名無しさん
2005/07/10(日) 03:44:46l゙,ヽ /:::::::メリット:::::::::::::::丶 おやすみ、うんこども
`、`\ ,〃::::::;ィ:/!:::::/l:::::;:;::::::::ヽ
\. \ ' i´|::;イ,:rj:、|:::/'rj'く:、!::::::::::i
\ \ レ'(●), 、(●):|i:;l::::::|
\ `'-、_ i' ,,ノ(、_, )ヽ、,, レ' il:::|
\ | lト、ヽ,`-=ニ=- ' ...ノ:::l
\:| ||、``lヽ`ニニ´ /:::::::::::::'、
iノ」,! ', ノ Li゙)_ iヽ;:::::::ヽ,'--'=‐'
ヽl il,L,.>',"_,..>:;::::::':、_
/ ,)、ヾ,,' y'´,.-='、ー-‐"
0939デフォルトの名無しさん
2005/07/10(日) 03:45:02本筋から外れるが
Singleton の例もありえないと思ったが、
こんな書き方はありえないことを
分かってて書いていると期待したい。
メソッドやブロックに可視のスコープを縮めることは
別にどっちも応援してるわけでないが、
いくら例だからといって
こんないい加減なものを書いているのを見るとウンザリする。
さらに、皆それをスルーして議論を続けてるのもな。
だれか突っ込め
0941デフォルトの名無しさん
2005/07/10(日) 03:47:55>言語仕様変えるってな話であれば、言語仕様変えられる人的資源とかは限られてるんだから
>メリット感じないなら反対されるのは当然なのでは?
はあ?なんで人的資源とかでてくるわけ?そんなのはJCPとして提出でもした場合の話だろ。
またありもしない将来の話を持ってくる。だから話がわき道にそれてばかりなんだよ。
おまえのいうデメリットって人的資源に関することなのか。
0942デフォルトの名無しさん
2005/07/10(日) 03:49:12面目ない。double-checked locking が直ぐに出てこなかったもんで。
0943デフォルトの名無しさん
2005/07/10(日) 03:49:16ケースの個別設定なぞどうでもいい。
0944デフォルトの名無しさん
2005/07/10(日) 04:03:58double-checked locking って、いい事聞いた。
0945デフォルトの名無しさん
2005/07/10(日) 04:12:43>>838 は double-checked 以前の問題
0946デフォルトの名無しさん
2005/07/10(日) 04:14:55static 変数いじるのに this を同期化してもしゃーない、であってる?
0947デフォルトの名無しさん
2005/07/10(日) 04:22:09書き込みだけでなく読み込みの方も同期する必要あり。
中途半端に書かれた内容が読み取れる可能性がある。
という点からは、double-checked と同じか...失礼
ぶっちゃけ、クラス自身が遅延ロードされるのだから
単純なシングルトンはおおよそ必要ない
0948デフォルトの名無しさん
2005/07/10(日) 04:36:12>> 946
同期するのに使うオブジェクトは、実は何を使おうと構わない。
ただし、一貫して同じものを使わないとスレッド間でセッションが重なるのでダメ
0949デフォルトの名無しさん
2005/07/10(日) 04:37:540950デフォルトの名無しさん
2005/07/10(日) 04:53:52メリット君ってなに?
0951デフォルトの名無しさん
2005/07/10(日) 05:01:04あら。>>838 ではセッション重なるか?
0952デフォルトの名無しさん
2005/07/10(日) 05:20:10そもそも あんなんでセッション管理はしない。
0953デフォルトの名無しさん
2005/07/10(日) 05:22:59ページ繊維とは書いてあるがどっからそんな話が。
0954617
2005/07/10(日) 05:25:21メソッド内の「インスタンス変数」に関してあんまり意見がないのが悲しい。
言語仕様上は対称なほうがきれいだろうし。
で、どっちもMixJuiceでは大体似たようなことができるし
C#のpartial classでも大体似たようなことができる。
似たような、ってのは残念ながらスコープを絞るんじゃなくて
一クラスを複数のソースに分割して定義できるようにするだけだから。
0955デフォルトの名無しさん
2005/07/10(日) 05:36:48annotetaion と適当な構文チェッカーかクラスファイルチェッカー使えば
簡単にできそうかも、って思ったけど
メソッド(コンストラクタも?)渡すのが面倒っぽいよーな。
誰かやんない?
0956デフォルトの名無しさん
2005/07/10(日) 05:37:24むしろメソッドローカルなインスタンス変数の方が使用頻度は高そうだと思う。
まぁメリット君がこだわってたからね>クラス変数
0957デフォルトの名無しさん
2005/07/10(日) 05:41:30セッションって書いたのは、単に
同期している期間って程度の意味で書いただけで
深い意味じゃない
>>838 は読み取りは同期すらしてない
0958デフォルトの名無しさん
2005/07/10(日) 05:42:10あぁ、無理無理。
C言語の関数内での static みたいにすれば簡単に導入できるってのが
メソッドローカルなクラス変数支持派の思考だったからね。
0959デフォルトの名無しさん
2005/07/10(日) 05:46:430960デフォルトの名無しさん
2005/07/10(日) 05:49:290961デフォルトの名無しさん
2005/07/10(日) 05:49:29その割にはクラス変数の例しか出てこんかったよーな。
メリット君はインスタンス変数にもかなり言及してるね
誰かさんは、>>687 とかで
> 知るかよ、そんなの。
とか言ってますが。
0962デフォルトの名無しさん
2005/07/10(日) 05:55:23そういう例を出せといったのはおまえだろメリット。
0963デフォルトの名無しさん
2005/07/10(日) 05:59:14インスタンス変数の方が使用頻度高いと思うなら
インスタンス変数の例出してもよかったんじゃない?
散々メリット君がインスタンス変数に言及してるんだしさ。
どこにもクラス変数の例しか出しちゃいかん、なんて書いて無いと思うけど。
0964デフォルトの名無しさん
2005/07/10(日) 06:02:04聞こえなかったならもう一回言おう。
そういう例を出せといったのはおまえだろメリット。
> 散々メリット君がインスタンス変数に言及してるんだしさ。
散々ってどこで?
0965デフォルトの名無しさん
2005/07/10(日) 06:04:200966デフォルトの名無しさん
2005/07/10(日) 06:04:22> そういう例を出せといったのはおまえだろメリット。
いいえ。
> 散々ってどこで?
インスタンス変数で検索すればいっぱい出てくるよ。
0967デフォルトの名無しさん
2005/07/10(日) 06:15:56>>677 メソッドローカルなインスタンス変数を追加しようとした場合はどーすんの?
メリットと思われるのはこれだけ。ヒットしたほとんどはおまえと反対側の書き込み。
おまえは必死に「メソッドローカルなインスタンス変数を導入するときに問題になるかも」とか
言い訳してただけだろ。言及?笑わすな。
0968デフォルトの名無しさん
2005/07/10(日) 06:19:410969デフォルトの名無しさん
2005/07/10(日) 06:22:02l゙,ヽ /:::::::メリット:::::::::::::::丶 おはよう、うんこども
`、`\ ,〃::::::;ィ:/!:::::/l:::::;:;::::::::ヽ
\. \ ' i´|::;イ,:rj:、|:::/'rj'く:、!::::::::::i
\ \ レ'(●), 、(●):|i:;l::::::|
\ `'-、_ i' ,,ノ(、_, )ヽ、,, レ' il:::|
\ | lト、ヽ,`-=ニ=- ' ...ノ:::l
\:| ||、``lヽ`ニニ´ /:::::::::::::'、
iノ」,! ', ノ Li゙)_ iヽ;:::::::ヽ,'--'=‐'
ヽl il,L,.>',"_,..>:;::::::':、_
/ ,)、ヾ,,' y'´,.-='、ー-‐"
0970デフォルトの名無しさん
2005/07/10(日) 06:37:40次スレは http://pc8.2ch.net/test/read.cgi/tech/1119115837/ に合流 ヨロ
0971デフォルトの名無しさん
2005/07/10(日) 06:39:16メソッドローカルのクラス変数云々の議論は合流させないでください。
0972デフォルトの名無しさん
2005/07/10(日) 06:40:43散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
ワロス
0973デフォルトの名無しさん
2005/07/10(日) 06:49:480974デフォルトの名無しさん
2005/07/10(日) 08:02:39誰かこんなスレ立ててくれない?
ローカルディスクの残量は何時になったら取得できるんだ!
とか、Delegateパクろうぜ!とか、色々溜まってないか?
隔離スレとしてどうよ?
てか、質問スレ的には、質問「メソッドローカルなクラス変数は
ありますか?」回答「ありません。」で、本来は終了すべきだ。
0975デフォルトの名無しさん
2005/07/10(日) 08:30:01> ローカルディスクの残量は何時になったら取得できるんだ!
JDICでやってる。
その成果が既に取り込まれてて Mustang の最新の build には入ってたと思うが。
http://www.java.net/download/jdk6/docs/api/java/io/File.html#getFreeSpace()
JDIC だと戻り値が BigInteger だったのに Mustang だと戻り値が long になってる。
0976デフォルトの名無しさん
2005/07/10(日) 08:55:04知らない人って結構いるのね。
BugParade の方も更新されてるから(実は Closed, fixed になってたりする)
vote してなくても watch list に入れてればメール来ると思うんだけど。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4057701
0977デフォルトの名無しさん
2005/07/10(日) 09:31:580978デフォルトの名無しさん
2005/07/10(日) 11:19:24チミは、図星感溢れる厨房大学生ですな。
いや、大学生というより厨学生といったほうがその名にふさわしい
0979デフォルトの名無しさん
2005/07/10(日) 11:35:12プロパティ用構文はJavaで日本語が通らなかったときから欲しいといわれ続けてるのに
こっちは無視かなぁ
0980デフォルトの名無しさん
2005/07/10(日) 11:37:000981デフォルトの名無しさん
2005/07/10(日) 12:43:080982602
2005/07/10(日) 12:53:20遅レス申し訳ありません。情報ありがとうございました。
CLDC MIDP で考えずとも
IBM から CDC 製品が出ていたんですね。
>>602 を書いた後、個人で情報収集を行ったところ、
Pocket PC 向けには IBM の J9 という Java 環境が良い、
というお話を実際に開発経験のある方から伺ったのですが、
ご紹介いただいたものの過去のバージョンのもののようですね。
0983デフォルトの名無しさん
2005/07/10(日) 12:55:090984デフォルトの名無しさん
2005/07/10(日) 13:16:38お前みたいなヤツがまた2chをつまらなくする。
0985デフォルトの名無しさん
2005/07/10(日) 13:42:46ID 入ったところでここは技術板、俺でも十数個の IP アドレス使い分けられるから意味無いかもね。
0986デフォルトの名無しさん
2005/07/10(日) 13:45:01ID 入ったところでここは技術板、俺でも十数個の IP アドレス使い分けられるから意味無いかもね。
0987デフォルトの名無しさん
2005/07/10(日) 14:03:31CLDC MIDP も動く希ガス
0988デフォルトの名無しさん
2005/07/10(日) 17:51:17「クラス ArrayList<E>」の「<E>」ってどういう意味なんですか?
0989デフォルトの名無しさん
2005/07/10(日) 18:13:010990デフォルトの名無しさん
2005/07/10(日) 21:14:310992デフォルトの名無しさん
2005/07/10(日) 22:02:370993988
2005/07/10(日) 22:15:41いや、単語の意味は分かるんですが、Javaにおいてはどういう概念で使われてるのかなと思って。
例えばJDK1.2のAPIリファレンスには<E>って記述はなく、ArrayList.get(int index)の返値なんかも
「E」ではなく「Object」として定義されてたりして。
どう違うのかなと。
0994デフォルトの名無しさん
2005/07/10(日) 22:18:130995デフォルトの名無しさん
2005/07/10(日) 22:22:22検索のヒント
- キーワードに誤字・脱字がないか確かめてください。
- 違うキーワードを使ってみてください。
- より一般的な言葉を使ってみてください。
0996デフォルトの名無しさん
2005/07/10(日) 22:23:36http://www.google.co.jp/search?hl=ja&q=%E3%82%B2%E3%83%8D%E3%83%AA%E3%82%AF%E3%82%B9&lr=
0997デフォルトの名無しさん
2005/07/10(日) 22:35:421.5 から追加された generics 使ってるから 1.2 では Object になってる。
E は型パラメタ。大雑把にいえば、ArrayList を String の可変長配列と使用したいときに
ArrayList<String> list を使えば String str = list.get(index); みたいにキャスト無しで取り出せる、とか。
0998988
2005/07/10(日) 22:40:40なるほど。リストに格納するモノをある程度定義できるんですね。
後はもうちょっと自分で調べてみます。
どうも有難�dでした!
0999デフォルトの名無しさん
2005/07/10(日) 23:17:341000デフォルトの名無しさん
2005/07/10(日) 23:19:2310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。