【初心者歓迎】Java質問・相談スレッド65 Update 2

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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/
2デフォルトの名無しさん:2005/06/09(木) 00:14:30
2ゲト
3デフォルトの名無しさん:2005/06/09(木) 00:20:19
>>1 乙!

  祝!  O D A 事 実 上 存 続 決 定 !


【中国の遺棄化学兵器処理施設、日本2000億円負担】
> 回収が長期化すれば、日本の負担がさらに膨らむ可能性もある

http://www.nikkei.co.jp/news/main/20050606AT1E0500L05062005.html
4デフォルトの名無しさん:2005/06/09(木) 00:29:36
正しい次スレはこちら。
ttp://pc8.2ch.net/test/read.cgi/tech/1116750427/

スレタイも変だし、このスレは削除の方向でいいんじゃね?
5デフォルトの名無しさん:2005/06/09(木) 00:34:53
賛成。つーか重複
6デフォルトの名無しさん:2005/06/09(木) 01:03:47
本物のスレが埋まったときにここが残ってたら
ここ次スレにしちまえば?
7デフォルトの名無しさん:2005/06/09(木) 03:18:19
まぎらわしい。削除に賛成。
8デフォルトの名無しさん:2005/06/09(木) 03:20:47
削除になった例が無い
9デフォルトの名無しさん:2005/06/09(木) 19:36:54
何でまた新しいのがたってるわけ?
67が進行中で66も未消化で残ってるのに。

まあ、削除はされないだろうから、現行スレの消化待ちだね。
10デフォルトの名無しさん:2005/06/10(金) 07:13:23
>7,9
どうせ全部見てるんだろ?
119:2005/06/10(金) 10:11:00
>>10
もちろん見てるさw
12デフォルトの名無しさん:2005/06/11(土) 22:59:34

13デフォルトの名無しさん:2005/06/12(日) 10:06:14
無駄が多すぎ。


Wikiと削除依頼対象にされたすれを見る限り
こりゃもう削除にしていいんじゃね。


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/]]
14デフォルトの名無しさん:2005/06/12(日) 11:07:15
このスレを消し去りたいために必死になりすぎ。
削除人も忙しいんだから、放置。
15デフォルトの名無しさん:2005/06/12(日) 11:15:08
>>13
おまえ、人生つまんないだろ
16デフォルトの名無しさん:2005/06/13(月) 07:04:44
結局みんな両方見てるんだし、
サーバとクライアントに別けたらどうだろ?
17デフォルトの名無しさん:2005/06/13(月) 09:24:21
いや、8割以上は無視しているよ
18デフォルトの名無しさん:2005/06/13(月) 09:46:41
重複では削除依頼ははねられるのがおちなので、放置するしかないよ。

むしろ複数たっていると適度に話題が拡散するので個々のスレが見やすくていい。
19デフォルトの名無しさん:2005/06/13(月) 16:08:10
import javax.swing.JOptionPane;
public 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());
}
}
}
これにシンボルを解決できませんとのエラーが出ました。何回見ても思い当たる
所が見つかりません。どなたかヒントください。。
20デフォルトの名無しさん:2005/06/13(月) 17:01:55
以下のような感じでsURLの示すアドレスのhtmlを表示させたいので
すが、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);
----
21デフォルトの名無しさん:2005/06/13(月) 17:23:04
Windows で動かすなら下手に指定しないほうが良い。
InputStreamReader is = new InputStreamReader(s.openStream());

あるいは Windows-31J の代わりに MS932 とか Cp932 とか。
22デフォルトの名無しさん:2005/06/13(月) 18:07:47
>>19
Fraction ってのはどこのどいつだ?
23デフォルトの名無しさん:2005/06/14(火) 07:27:53
よくわからんのやけど

Windows用のプログラムってGUI必須なの?
プログラムにメッセージをエラー以外実装しなかったら、
「何これ?ウインドウ何もでないの?」と言われた。
実行結果のファイルができあがっているのにだ。
24デフォルトの名無しさん:2005/06/14(火) 09:33:02
そりゃ必須じゃないけど

> メッセージをエラー以外実装しなかったら

任務完了メッセージくらい実装してやれよ。
25デフォルトの名無しさん:2005/06/14(火) 12:58:21
>>23
使う側の問題。すれ違い。
26デフォルトの名無しさん:2005/06/14(火) 19:38:22
Windowsで何もメッセージが出ないっていうのは
フリーズや暴走等を連想させて不安になる

ダイアログで正常終了メッセージ出すか
CUIベースなら「正常終了。Enter押してね」ぐらいしないと
Winしか知らない人間はかなり不安感を覚えるよ
27デフォルトの名無しさん:2005/06/14(火) 19:59:49
JavaアプリからJNI経由で、C++で作成済みのDLLを利用したいのですが、
自分なりに調べてみたところ、Javaアプリ→中間DLL→DLLという風に
すればできるのかなと思っています。

この中間DLL(?javahで作ったヘッダをインクルードして作るDLL)を
挟まずに直接ターゲットのDLLを利用することは可能でしょうか。

よろしくお願いします。
28デフォルトの名無しさん:2005/06/14(火) 20:29:08
>>24-26
さんきゅ

>>27
ターゲットのDLLを書き直して再コンパイルすればいい。
29デフォルトの名無しさん:2005/06/14(火) 20:29:21
>>27
無理
30デフォルトの名無しさん:2005/06/14(火) 20:42:10
>>29
やっぱりそうですよね。ちなみに中間DLLを挟めばJavaアプリからなら
いけると思うのですが、アプレットの場合はどうでしょうか。
署名付きにすれば可能なんでしょうか。
31デフォルトの名無しさん:2005/06/14(火) 21:26:39
>>30
アプレットでもアプリの場合と同じでJNIは使えるよ。
ただ配布するDLLを実行時にどこにおいてロードするのが
スマートかはしらない。

昔SWTで動くアプレットを作ったときは遊びだったから実行前に
java.library.pathがとおってる場所に自分でおいちゃったけど。
32デフォルトの名無しさん:2005/06/14(火) 22:56:31
>>31
ああそうか。そんな問題があるんですね。
なんとかユーザが意識せずにDLLを置く方法があればいいのですが、
一般的にはどのようにするものなのでしょうか。
33デフォルトの名無しさん:2005/06/14(火) 23:13:37
JNIを使うということは環境が分かっているということ
ならなんとでもなるさ
34デフォルトの名無しさん:2005/06/15(水) 00:38:45
>>32
Java Web Start 使え
35デフォルトの名無しさん:2005/06/15(水) 02:10:03
>>32は態度でかいな
36デフォルトの名無しさん:2005/06/15(水) 06:11:51
>>35
そんなでもないとおもうよ?
37デフォルトの名無しさん:2005/06/15(水) 07:11:43
そんなでもないな。
38デフォルトの名無しさん:2005/06/15(水) 07:11:57
CSVからデータ読んでXMLを作るプログラムを組んでみた。
str = 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>");
みたいにベタで書くのは反則かな?
39デフォルトの名無しさん:2005/06/15(水) 08:49:49
別に反則ではない
40デフォルトの名無しさん:2005/06/15(水) 09:17:58
反則でないにしろ
そんなコードを大量に送りつけられ引き継ぎ
を頼まれたら断りたい。
Jakarta Velocityでテンプレートを作ったほうが読みやすい。
41デフォルトの名無しさん:2005/06/15(水) 09:35:12
Velocityつかうかどうかも考慮せねばね
実行頻度の低いやっつけ仕事ならそのままでもいいだろうし
ただ、タグ文字とかはいってくるとおかしくなるからちゃんとエスケープしなされ
それがいやならJAXPで

Velocity使うよりはCSVからのコンバート程度なら俺はFormatter使うかも
項目数が少ないとかならエスケープするのマンドクセでJAXPでDOM操作してるかもしれん
42デフォルトの名無しさん:2005/06/15(水) 19:54:01
Java Web Startって何なの?
43デフォルトの名無しさん:2005/06/15(水) 19:58:08
JavaはWebの入口ですって合言葉。
Wright Once Run Anywhereに代わるもの。
44デフォルトの名無しさん:2005/06/15(水) 20:07:03
ベターアプレットってところだな
アプレットのほかにアプリケーションも配布できたり
バージョンやキャッシュコントロールとかセキュリティ周りとか
強化点は多い

でてきたのはかなり前だったが、Swingが実用的になったり
リッチクライアントが流行ってきたここ数年はわりと使われてる
45デフォルトの名無しさん:2005/06/15(水) 20:30:08
>>44
誤爆?
46デフォルトの名無しさん:2005/06/15(水) 20:40:55
なぜ誤爆と判断?
47デフォルトの名無しさん:2005/06/15(水) 21:06:37
>>40及び>>41
javax.xml.*パッケージあたり学んでいけばなんとかなる?
48デフォルトの名無しさん:2005/06/15(水) 21:12:44
>>46 まあアプレットを使いたい人間にJWSを勧めれば
誤爆と勘違いされても仕方ないだろうな。
49デフォルトの名無しさん:2005/06/15(水) 22:28:46
JAVA初心者です。

Vector 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));だと文字化けします。
アドバイスお願いします。そういったことを書いてあるサイト等ご存知でしたらお願いします。
50デフォルトの名無しさん:2005/06/15(水) 22:39:38
>>48
アプレットを使いたい人間って誰のこと?
51デフォルトの名無しさん:2005/06/15(水) 22:46:59
>vector.addElement(array);
これっていけるんだっけ?

あと、エラーってなんだろう?
52デフォルトの名無しさん:2005/06/15(水) 22:49:31
エラー内容を英訳すればすべて解決しそうな悪寒
53デフォルトの名無しさん:2005/06/15(水) 22:59:58
そもそもvector1ってなんだ
54デフォルトの名無しさん:2005/06/16(木) 01:31:53
>vector.addElement(array);
これだと、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));
}
5549:2005/06/16(木) 06:42:13
すいませんvector1は間違いです。vectorです。
学校からだと書き込めないので確かめられません・・・すいません。
54さんのやり方試してみます。
結果は今日の夜に。。。
すいません失礼します。

56デフォルトの名無しさん:2005/06/16(木) 09:12:59
>>54
最初は同じようにレス仕様と思った。
けど、エラーが出る理由が分からなかった。
エラーって何?>>49
57デフォルトの名無しさん: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");
      }
   }
}
5857:2005/06/16(木) 12:50:25
//自作クラスローダー
public 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;
   }
}
59デフォルトの名無しさん:2005/06/16(木) 13:38:49
インナークラスは別クラスだぞ
6057:2005/06/16(木) 13:59:22
>>59
動きを見てると、どうやらそのようですね。
そのインナークラスをClassファイルから読込みたいのですが、
どのようにして読込んで良いか、まったくわからない状態なんですよ。
何か良い案ないですか?
ちなみにインナークラス使わないでやるってのは無しでw
61デフォルトの名無しさん:2005/06/16(木) 14:09:39
ファイルから読み込む程度なら既存のクラスローダつかったほうが
62デフォルトの名無しさん:2005/06/16(木) 14:25:59
>>60
インナークラスなしで。
63デフォルトの名無しさん:2005/06/16(木) 14:34:05
インナークラス持ちのクラスをコンパイルするとどんなファイルができ
るのか考えれば、何をすればいいのかは明白でしょ。

64デフォルトの名無しさん:2005/06/16(木) 14:35:20
つーかインナークラスのクラスファイルの命名規則
にそってファイルを読み込めばいいだけだよねと
思うが、>>57-58見てるとURLClassLoaderで十分な気がするなあ。
6557:2005/06/16(木) 14:37:51
>>61
出来るの知らなかった・・・
URLClassLoaderでとりあえずは出来るみたいですね。
アドバイスありがとうございます。
66デフォルトの名無しさん:2005/06/16(木) 14:41:22
>>60
外部クラス名$インナークラス名.class
とか
外部クラス名$1.class
とかでロードしてみたらどうだ?
6757:2005/06/16(木) 15:11:46
>>66
java.lang.NoClassDefFoundErrorで内部クラスが読込めないです。

URLClassLoaderの方は
ttp://homepage3.nifty.com/satoshis/java/memo.html#extension
を参考にやってみます。
68デフォルトの名無しさん:2005/06/16(木) 15:17:40
Class.forName("com.foo.OuterClass$InnerClass");

InnerClass は public static 宣言されている必要あり。
6957:2005/06/16(木) 15:29:17
>>68
staticにしても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();
    }
  }
}
70デフォルトの名無しさん:2005/06/16(木) 15:39:51
URLClassLoader に指定するのはクラスファイルそのものではなくクラスパスだ。
URL url = new URL("file:///c:/");
71デフォルトの名無しさん:2005/06/16(木) 15:56:21
>>67
なあなんでURLClassLoaderのAPI仕様を読まないかなあ。
確かにぐぐって情報を集めるのは大事だが、まず一次情報源だろ。
7257:2005/06/16(木) 16:13:56
>>70
ありがとうございます、クラスファイルじゃなくてクラスパスを指定するんですね
>>71
すみません、確かにAPI仕様書をみればクラスパスを指定って書いてありました。
>>アドバイスをくれた方々
お騒がせしました。なんとかいけました。
最終的には
String fName = "D:\\test\\LoadedClass.class";

String fName = "D:\\";
このようになりました
73デフォルトの名無しさん:2005/06/16(木) 16:19:38
任意の場所からクラスロードが目的でなければ、素直に -cp に D:\ を指定して
Class.forName() でやった方が良いと思うが。
7457:2005/06/16(木) 16:30:54
>>73
プラグイン追加型のシステムなので、ユーザーがプラグインの場所等を指定する為、
起動時にはどこにあるかわからないから、それだとちょっと無理かな
75デフォルトの名無しさん:2005/06/16(木) 16:33:13
クラスパスルート指定を間違ってただけか
FAQだな
76デフォルトの名無しさん:2005/06/16(木) 17:22:52
プラグインシステムなら既存のフレームワーク
流用したほうが57レベルなら近道だろうなあ。
77デフォルトの名無しさん:2005/06/16(木) 17:47:16
>>76
プラグイン的なシステムって多岐にわたるので既存のものを使うって難しいぞ
たとえばゲームとかでもつかうし
78デフォルトの名無しさん:2005/06/16(木) 18:01:32
>>77
一行目と二行目のつながりが全然わからないんだが、
ためしにOscarがゲームに不適な理由とか具体的に
示してくれないか?
7949:2005/06/16(木) 21:39:01
54さんのやり方で解決しました。
ありがとうございました。
80デフォルトの名無しさん:2005/06/17(金) 09:28:18
お気楽プラグイン追加型システムの作り方

1. pluginsディレクトリにすべてのプラグインのjarファイルを入れる
2. 起動時に、pluginsディレクトリのすべてのjarファイルをクラスパスに追加するスクリプトを経由して実行
bashならこうか?
java -cp .:`ls plugins/*.jar|xargs|sed 'y/ /:/'` some.pack.Application
WindowsならVBスクリプトで書くといいね。

クラスローダが同じためプラグイン同士で干渉しあう可能性があるが、それを気にしないのならこれで。
81デフォルトの名無しさん:2005/06/17(金) 11:56:26
つーか動的にやってなんぼだろ?
JDBCドライバはこれを使うとかユーザーに選択させてね

昔のJBuilderみたいに再起動しないとつかえないとかそういうのでいいのならそれでいいが
82デフォルトの名無しさん:2005/06/17(金) 13:51:23
>>80
VBスクリプトはノートン先生に怒られる可能性があるからここはバッチファイルで
83デフォルトの名無しさん:2005/06/17(金) 17:09:56
それだけじゃ駄目だろ。それたんにクラスパスに
jarを追加してるだけだから。そのほかにプラグイン
ディレクトリにどういうプラグインが入っているか
アプリケーションが知る仕組みが必要。クラスパス
に含まれているクラスを全部走査するのは非現実的
というか無理だからね。

で、そういう仕組みをいれるんなら、結局URLClassLoader
で動的にプラグインのクラスをロードするようにしても
手間としてはほとんど変わらなくなる。
84デフォルトの名無しさん:2005/06/17(金) 21:01:06
こういうプラグインシステムみたいな車輪の再発明を防ぐために
Eclipse 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アプリケーションとしてプラグインシステムを利用できるんだけど。
85デフォルトの名無しさん:2005/06/17(金) 21:42:56
>>84
Eclipse使ってない俺には何がなんだかわかりません。
86デフォルトの名無しさん:2005/06/17(金) 21:48:01
URLClassLoader使って書いてもたいしたコード量じゃないしな
それをライブラリにまとめていればいいだけだし
EclipseRCPは実績とかがなぁ

JFace追うにしても正式版では実用にならないし
RCPだめぽ
87デフォルトの名無しさん:2005/06/17(金) 23:18:09
あれ?Javaってメッセージボックスってないんですか?
88デフォルトの名無しさん:2005/06/17(金) 23:21:53
>>87
何でそう思うの?
89デフォルトの名無しさん:2005/06/18(土) 00:05:58
JOptionPane#showMessageなんとかかんとか
90デフォルトの名無しさん:2005/06/18(土) 00:58:50
VBでもCでもMessageBoxという名前のAPIが使えたので、
あらゆる言語でこの機能はMessageBoxという名前になっ
ている、と思いこんでいるトンマが87。
91デフォルトの名無しさん:2005/06/18(土) 05:27:15
>>89
あーそれそれ。2年ぶりだったから忘れてたわ。

>>90
よ!トンマ君!
92デフォルトの名無しさん:2005/06/18(土) 11:38:21
>>87=91のほうがトンマにみえるが
質問してきてこれじゃぁな
93デフォルトの名無しさん:2005/06/18(土) 12:55:28
>>92
よ!トンマ君!必死だねw
94デフォルトの名無しさん:2005/06/18(土) 14:26:25
レジェンドオブヒーロー
95デフォルトの名無しさん:2005/06/18(土) 15:05:26
>>86
> JFace追うにしても正式版では実用にならないし

どういう意味?
96デフォルトの名無しさん:2005/06/18(土) 20:35:24
JNIでGetFieldID呼ぶときの第4引数って何を指定すればよいのでしょうか。
intの場合に"I"というのはサンプルにあったのですが、
それ以外の場合はどうすればよいのでしょうか。
9796:2005/06/18(土) 20:38:57
すいません。ヘッダファイル見てたら分かりました。
98デフォルトの名無しさん:2005/06/19(日) 10:15:48

99デフォルトの名無しさん:2005/06/19(日) 12:04:45
マイクロソフトJAVAって無くなったの?
100デフォルトの名無しさん:2005/06/19(日) 12:58:52
今までC++でプログラムつくってて
構造体まではある程度わかりましたが、ポインタの理解に苦しみました。

今後、Javaでプログラムを作っていきたいのですが
入門書で何かお勧めはありますでしょうか?
JDK5.0、eclipseをつかってプログラムを組んでいく予定です。


101デフォルトの名無しさん:2005/06/19(日) 13:07:01
>>47
学ぶ?
なぜそんなものを「学ぶ」と大袈裟な表現をつかうほど
のものにしたがるのか不思議でしょうがない。
Velocityは検索すれば使い方がすぐにわかる。
javax.xmlというパッケージ単位で何かするよりも
API単位で基本的な使い方を覚えたほうがいい。
java.xml.*のすべてが必要なわけじゃないんだし。
102デフォルトの名無しさん:2005/06/19(日) 13:08:45
>>84
> こういうプラグインシステムみたいな車輪の再発明を防ぐために
> Eclipse RCPがあるんだと思うんだが、普及しないよなあ。なまじっか、

漏れはそのシステムが
SWTに依存せずAWT, Swingなどでも使えることを望む。
103デフォルトの名無しさん:2005/06/19(日) 13:09:46
さらには、WARなどもプラグインで拡張できるようなシステムができれば
Tomcatを利用したJava開発が多いこの業界では普及するのではないかと。
104デフォルトの名無しさん:2005/06/19(日) 13:23:31
おいみんな、このスレが落ちたら
次スレはこっちだからな! がんばれよ

【初心者】Java質問・相談スレッド68【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1119115837/
105デフォルトの名無しさん:2005/06/19(日) 13:25:54
このスレは実質相談スレPart70だな
そして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?)

皆の衆よ! 良いな!

106デフォルトの名無しさん:2005/06/19(日) 13:36:09
マイクロソフトJAVAって無くなったの?
107デフォルトの名無しさん:2005/06/19(日) 13:42:25
なぜそれが欲しいんだ?
108デフォルトの名無しさん:2005/06/19(日) 13:52:01
知りたいだけなんですが、
JAVA で Sun と MS が争ってるとか昔聞いていたんだけど
数年ぶりにPC弄るようになって、今 MSjava どうなってるのかなって、

マイクロソフトJAVAって無くなったの?
109デフォルトの名無しさん:2005/06/19(日) 14:03:44
>>102
EclipseのプラグインシステムはSWTに依存しないってことが>>84の後半に
書いてあるわけだが。大体SWTがないJ2ME上でも動くし。
>>103
すでにそういうシステムになっているわけだが。
110デフォルトの名無しさん:2005/06/19(日) 14:43:14
マシンとJVMの性能を比較したいので
ベンチマークソフトを探しています

以前、同様の質問をして
SPECjbb2005 をご紹介いただきましたが
できれば無償で利用できるものがあると嬉しいです

ググッてみて Java Grande というのを見つけましたが
どうやら最後に更新されてから時間が経っているようでした

http://www.epcc.ed.ac.uk/javagrande/

無償利用できる Java ベンチマークソフトで
お勧めのものがありましたらご教示ください
111デフォルトの名無しさん:2005/06/19(日) 14:47:39
>>110 その前になにを計りたいか示すべきだと思うが?
例えばクライアントのGUI性能を測るのにSPECjbb2005を使っても無意味だろ?
112デフォルトの名無しさん:2005/06/19(日) 15:10:05
>>111
数値計算や文字列処理といった基本的な部分の速度や
マルチスレッド関連の処理性能あたりが特に知りたいです

GUIまわりの性能も計測できれば嬉しいですが
これについては現在のところ特に必要というわけではないです
113デフォルトの名無しさん:2005/06/19(日) 15:19:17
自分のほしい機能のチェック目的なら自作すれば?
114デフォルトの名無しさん:2005/06/19(日) 15:28:26
自作しても良いんですけど
公開されているものを利用する方が
他の環境との比較もできて嬉しいなと思いまして

ケチケチせずに SPEC の JVM98 あたりを買うのが良いんでしょうかね
115デフォルトの名無しさん:2005/06/19(日) 15:31:56
数値計算ならLinpack, Dhrystone, WhetStoneあたり。
マルチスレッドあたりのスケーラビリティをみるならjbb2005だろうなあ。
116デフォルトの名無しさん:2005/06/19(日) 15:33:02
>>115
情報ありがとうございます
それぞれ調べてみます
117デフォルトの名無しさん:2005/06/19(日) 15:37:12
マイクロソフトJAVAって無くなったの?
118デフォルトの名無しさん:2005/06/19(日) 16:10:08
>>117
よく飽きないね
119デフォルトの名無しさん:2005/06/19(日) 16:15:35
マイクロソフトJAVAって無くなったの?
120デフォルトの名無しさん:2005/06/19(日) 16:20:42
>>109
> >>102
> EclipseのプラグインシステムはSWTに依存しないってことが>>84の後半に
> 書いてあるわけだが。大体SWTがないJ2ME上でも動くし。
そうなのか。情報thx

> >>103
> すでにそういうシステムになっているわけだが。
ホットデプロイのことをいっているのか。
あれがEclipseのプラグインのようなシステム
として動いているようには見えないのだが
素人目から見たただの気のせいですかいな?
121デフォルトの名無しさん:2005/06/19(日) 16:22:47
TomcatのホットデプロイはWARを拡張したWARを作ることが容易だとは思えないのだが
どう思うよ?

Eclipseのプラグインを拡張したプラグインというふうにプラグインを数珠繋ぎに
してゆくことは容易ではないような気がするのだが。
122デフォルトの名無しさん:2005/06/19(日) 16:38:42
>>120
>ホットデプロイのことをいっているのか。
>あれがEclipseのプラグインのようなシステム
>として動いているようには見えないのだが

いや、Eclipseにwarをプラグインとして
登録できるって話。
123デフォルトの名無しさん:2005/06/19(日) 16:44:19
マイクロソフトJAVAって無くなったの?
124デフォルトの名無しさん:2005/06/19(日) 16:55:13
はいはい、無くなったに等しいですよ。
125デフォルトの名無しさん:2005/06/19(日) 16:57:52
>>123
キミはどう思うんだい?
126デフォルトの名無しさん:2005/06/19(日) 17:23:18
前スレ943です

やっぱり上手くファイル存在チェックが出来ません
127デフォルトの名無しさん:2005/06/19(日) 17:36:23
>>126
で?
128デフォルトの名無しさん:2005/06/19(日) 17:36:45
>>126
うまくいかないコードくらい載せてみれば?
129デフォルトの名無しさん:2005/06/19(日) 17:49:33
マイクロソフトJAVAって無くなったの?
130デフォルトの名無しさん:2005/06/19(日) 17:54:46
初歩的な質問かもしれませんが教えてください
intやshortなどのプリミティブ型を
byte配列に相互変換する方法はありませんか?
int → byte[] → int みたいな感じです
131デフォルトの名無しさん:2005/06/19(日) 18:24:15
>>130 自分でシフトして代入していくしかないんじゃないの?
132デフォルトの名無しさん:2005/06/19(日) 18:31:06
>943ですが、
>SV2で、\\SV1\Cは見れます
>どうも、SV2内のファイルにしかチェックが出来ないみたいなのです

Sv2から \\Sv1\C が見えてないに更に1万ペリカ

String dir = "\\\\SV1\\C";
boolean exists = new File(dir).exists();

これでexistsがfalseなら、そのコードを実行している環境から \\Sv1\Cが見えてない。
133デフォルトの名無しさん:2005/06/19(日) 18:39:52
134前スレ943:2005/06/19(日) 20:44:36
それが、実行環境からSV1が見える状態にしてもチェック出来ないのです
135デフォルトの名無しさん:2005/06/19(日) 20:47:54
マイクロソフトJAVAって無くなったの?
136デフォルトの名無しさん:2005/06/19(日) 20:51:49
137デフォルトの名無しさん:2005/06/19(日) 21:36:49
>>134
コードと詳細な環境を晒さないと
もうあなた以外のだれにも解決できないと思うよ
138前スレ943:2005/06/19(日) 21:50:07
うーん、携帯からなんで難しいです…

一応前スレには書いたのですが、無くなっちゃってますかね?
139デフォルトの名無しさん:2005/06/19(日) 21:52:06
プログラム初心者ではじめてJAVAを学んで3ヶ月になりますが、
なかなか分かるようになりません・・・。
皆さんは何ヶ月で感覚をつかみましたか?
現在結城さんの本の下巻を読みつつ会社で研修を受けています。
アドバイスお願いします。
スレ違いかもしれませんが・・・
140デフォルトの名無しさん:2005/06/19(日) 22:09:06
今日はじめたばかりなのですが
このような状態になって途方に暮れてます
アドバイスお願いします
http://f49.aaa.livedoor.jp/~shkakuri/imgboard/img-box/img20050619220554.jpg
141デフォルトの名無しさん:2005/06/19(日) 22:17:35
>>140 半角スペースのつもりが全角スペースになってる。
142デフォルトの名無しさん:2005/06/19(日) 22:18:40
>>140
全角スペースが入っている予感。
143140:2005/06/19(日) 22:28:02
>>141
>>142
あ、ありがとうございます!
まさにそのとうりでした。もっと精進します
144デフォルトの名無しさん:2005/06/19(日) 23:04:30
>>138
君んところはどうかしらんが、おれんとこでは、ネットワーク越しの共有フォルダを
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」って感じでチェック出来るはずだ。
145デフォルトの名無しさん:2005/06/19(日) 23:28:42
>>134
釣りじゃないのなら「チェックできない」なんて曖昧な説明でなく
どんなコードを実行して、どういう結果になって
それを元にどう判断したのか順を追って説明しろ。

まぁ、釣りだろうな・・・
毎度毎度引っかかってる俺がいるわけだが_| ̄|○
146デフォルトの名無しさん:2005/06/20(月) 01:11:39
PaintedWall.java:25: PaintedWall() は PaintedWall で定義されています。
public 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 個

こんなエラーがでるんですが、何が原因かわかりませんか?
147デフォルトの名無しさん:2005/06/20(月) 01:12:09
148デフォルトの名無しさん:2005/06/20(月) 01:30:22
PaintedWallがFrameのサブクラスでも無いのに、Frame型変数に突っ込もうと
したり、FrameクラスのメソッドであるsetSize()とかaddWindowListner()とか呼んでる
からでしょ。

というか一番最後のエラーにちゃんとそう書いてある....
149前スレ943:2005/06/20(月) 09:51:40
>>145

//ファイル存在チェック
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になるようなのです・・・
150デフォルトの名無しさん:2005/06/20(月) 11:01:26
>>149
俺ならあちこちにSystem.out.println()を挿入して、
変数内容を表示させてみる。
あと、Fileを使うときは、File#list()を取得してみる。
初めからbooleanばかりじゃわかりにくいからね。
151デフォルトの名無しさん:2005/06/20(月) 11:29:33
>>150
やってみました

//ファイル存在チェック
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

でした・・・
152デフォルトの名無しさん:2005/06/20(月) 11:31:54
>>149
System.getProperty("user.name")の値は想定している
ユーザ名になっているかとかアクセス権がらみはOK?
153デフォルトの名無しさん:2005/06/20(月) 11:43:22
2次方程式の虚数解を求めるプログラムで、
iをどうやって定義すればいいんですか?
154デフォルトの名無しさん:2005/06/20(月) 12:10:05
>>152
System.getProperty("user.name")
がSYSTEM
となっているのですが、これって・・・?どういう意味でしょう??
155デフォルトの名無しさん:2005/06/20(月) 13:03:15
>>153
実数とは別の変数に保存
156デフォルトの名無しさん:2005/06/20(月) 13:04:23
>>154
それって、administratorでログインしてるのかな?
157デフォルトの名無しさん:2005/06/20(月) 13:06:41
>>153
グローバル変数で、ルート(ー1)とする
158デフォルトの名無しさん:2005/06/20(月) 13:14:11
>>156
すみません・・・マジでそこすら分からない・・・

どうやったら確認できますか?
159デフォルトの名無しさん:2005/06/20(月) 13:19:19
質問です。
小数点のある計算が意図した結果にならず、悩んでおります。
うまく処理する方法をおしえてください。

double yy = 18.33;
double hh = 100;
System.out.println(yy*hh);
----------------------
1832.9999999999998 (結果)
1833.0(←この結果を期待しています)
160デフォルトの名無しさん:2005/06/20(月) 13:22:39
>>158
ログアウト?(だっけ?Windowsの場合)して、表示されている名前を見ろ
(下にパスワード欄があったはず)
それがadministratorだったら、非常にまずい。
161デフォルトの名無しさん:2005/06/20(月) 13:23:34
>>159
>>1とか読んでる?
162159:2005/06/20(月) 13:47:05
>161 様
wikiをよんでみましたが、該当箇所がみつかりませんでした。
またgoogleで小数点・java のキーワードで検索もしました。

ttp://web.hc.keio.ac.jp/~fujimura/lang/page-7-1.html
(上記の結果が最も参考にはなりそうでした。)

単純な計算を複雑な処理をしなければならないところ
(基準が難しいところですが)に疑問をもったため、
質問させていただきました。簡単な方法をご存知でしたら、
ご教授ください。よろしくおねがい致します。
163デフォルトの名無しさん:2005/06/20(月) 13:52:31
>>160
pc1については、私のPCなのでUserNameはMyNameでした。
sv2については、administratorではありませんでしたが、
sv1については、administratorのようです。

えっと・・・マズイんですか・・・??(汗
164159:2005/06/20(月) 14:03:55
自己レスです。
double 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));
このあたりで解決していきたいとおもいます。ありがとうございました。
165デフォルトの名無しさん:2005/06/20(月) 14:05:18
>>154
SYSTEMはWindowsでサービスを動かすときのデフォルト
アカウント。当然ファイルサーバ側の共有リソースの
設定で権限が与えられていなければアクセスすることは
できない。

というわけで次はファイルサーバ側の共有フォルダの
アクセス権とファイルシステム上でのアクセス権の
チェックをすること。

つーか、もうJavaの話じゃないから、もし自分の理解の
範疇を超えていたらPC初心者板に移動してください。

166前スレ943:2005/06/20(月) 14:31:07
>>165
ファイルサーバ側の共有フォルダの
アクセス権とファイルシステム上でのアクセス権の
チェック

これはPC初心者板で聞いたほうが良いってことですかね・・・
167デフォルトの名無しさん:2005/06/20(月) 14:46:12
JavaというよりはWindowsネットワークの基本的なお話ですな
ユーザーがいないとか権限がないとかだと思うけど
168デフォルトの名無しさん:2005/06/20(月) 15:16:37
>>167
なるほど・・・ちょっとPC初心者板に行って来ます。

もし、それでも分からなかったら再度お聞きして宜しいですか?
169デフォルトの名無しさん:2005/06/20(月) 16:03:53
だめです
170デフォルトの名無しさん:2005/06/20(月) 16:49:35
>>151
エスケープ処理されてないようにみえるんだが
171デフォルトの名無しさん:2005/06/20(月) 17:05:08
>>164
そんな見かけの表示で誤魔化すんじゃなくBigDecimal使え。
172デフォルトの名無しさん:2005/06/20(月) 17:37:25
浮動小数点扱うのに誤差をなくしたいっておもしろいな
速度と範囲をとるために正確さを犠牲にしている方法なのにな

つーかつい最近もまったく同じような質問みたような気がする
173前スレ943:2005/06/20(月) 19:06:11
>>170
try{ 〜catch}
ですか??
174デフォルトの名無しさん:2005/06/20(月) 20:07:09
GUIでcanvasに目一杯描画したいんですが,可能ですか?
175デフォルトの名無しさん:2005/06/20(月) 20:12:52
きっと可能です。
176デフォルトの名無しさん:2005/06/20(月) 20:13:54
どうやるんですか?
177デフォルトの名無しさん:2005/06/20(月) 20:18:49
>>176
public void paint (Graphics g) {
目一杯描きます。
}
178デフォルトの名無しさん:2005/06/20(月) 20:54:54
>>172
紙テープでFORTRAN やってた時代から FAQ ですな。
179デフォルトの名無しさん:2005/06/20(月) 20:56:03
>173
ヒント: System.out.println("\\");
180デフォルトの名無しさん:2005/06/20(月) 23:48:31
Javaからネイティブコードを呼ぶ手段として、JNI以外にも
Java/COMやJ/Direct等があるようなのですが、それぞれの
ざっくりとしたメリットとデメリットを教えて頂けないでしょうか。

とりあえずデメリットとしては、J/DirectはJ++じゃないとダメ、
Java/COMはUNIX系に移植するとき苦労する、とかでしょうか。
181デフォルトの名無しさん:2005/06/21(火) 00:21:11
>>173
mainなんかで外からファイル文字列を受け取る場合は例外として、プログラム内部で
文字列でファイルパスを書く時は、\はjavaではエスケープ指定であって\という文字では
ない。だから\という文字を指定する時は\\とかく。

\\Srv1\C\



\\\\Srv1\\C\\

と書かなければいけない。
182デフォルトの名無しさん:2005/06/21(火) 00:22:03
>>180
JNI以外は無視していい。
Windows限定のプログラムを作るなら、別にJavaを使う必要ないんだし。
183デフォルトの名無しさん:2005/06/21(火) 00:32:49
>>182
そんな単純なものだっけ?
184デフォルトの名無しさん:2005/06/21(火) 00:44:48
>>183
MS独自拡張だしな
MSVMメンテされないし
185デフォルトの名無しさん:2005/06/21(火) 00:55:08
COMに至ってはMS自体が黒歴史に封じたシロモノだし。
186デフォルトの名無しさん:2005/06/21(火) 01:21:21
「なかったことにしよう〜〜」
187デフォルトの名無しさん:2005/06/21(火) 07:39:12
>>181
java.io.File.separatorとかjava.io.File.pathSeparatorとか使っていこうよ
188前スレ943:2005/06/21(火) 08:51:21
>>181
それって、ユーザが画面入力する時にも意識させておかないとまずいんですか?

ユーザも\\\\sv1\\Cと入力しないといけない??
189デフォルトの名無しさん:2005/06/21(火) 09:39:28
>>187 UNC使っている時点で意味がない。
190デフォルトの名無しさん:2005/06/21(火) 10:11:32
>>188
セパレータには\ではなく/を使え
若しくはFile.separatorを使え
191前スレ943:2005/06/21(火) 10:36:37
>>190
ユーザーに画面入力させる時とかどうしてます?
192デフォルトの名無しさん:2005/06/21(火) 11:01:07
>>188
エスケープシーケンスとか知らんのか?
193デフォルトの名無しさん:2005/06/21(火) 11:08:35
>>188
お前のコードがそうなってるだろ
194デフォルトの名無しさん:2005/06/21(火) 11:20:02
>>191
while(falseになるまで次の文字に移りながらn文字回、ループを回す){
 //なんかじっこーする
 if(ユーザが入力したキー.equals('\\')){
   //なんたら
 }
 //うんたらかんたら
}
195デフォルトの名無しさん:2005/06/21(火) 11:36:06
エスケープシーケンスはコンパイラに教えるもの。
Stringの中に入ってる文字は関係ない。
196デフォルトの名無しさん:2005/06/21(火) 12:57:21
String bin = "01000001"; // 0x41

int 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);


二進ダンプしたものを元に戻す処理として上記のようなものを書いたのですが
もうちょっとさくっとできないものでしょうか?
197デフォルトの名無しさん:2005/06/21(火) 13:09:14
wk = Integer.parseInt(bin, 2);

じゃダメなんかい?
198196:2005/06/21(火) 13:20:18
>>197
そんな便利なメソッドがあるんですね。それでいけました。ありがとうございます。
199デフォルトの名無しさん:2005/06/21(火) 14:29:30
GUIで
class a{
   int a[][] = new int[2][2];
   ・・・・・2*2の同じ画像が出るようにしてあります
}
class b{
ここで例えば[0][0]の画像が押されたら
[1][1]の画像が変るというような処理を行いたいのですが
クリックされたのはどこの画像なのかを識別するには
どうすればいいのでしょうか?
200デフォルトの名無しさん:2005/06/21(火) 14:49:15
やさしいMaja
201デフォルトの名無しさん:2005/06/21(火) 15:34:43
>>199
int配列との関係が不明。
適当なリスナを用意する。
202デフォルトの名無しさん:2005/06/21(火) 15:53:42
普通に配布されているアプリケーションパッケージ(*.jar)と同じく、JARでパッケージ化したのですが、
デスクトップ上でダブルクリックしたとき、配布されているもの(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);
}
}
203デフォルトの名無しさん:2005/06/21(火) 16:05:54
204デフォルトの名無しさん:2005/06/21(火) 16:08:27
>>202

>>203 を参照して、Manifestに「Main-Class:」行を付けてください。
205202:2005/06/21(火) 16:33:54
>>203-204
???
自分プログラマ向いてないかも・・・orz
206デフォルトの名無しさん:2005/06/21(火) 16:37:26
>>205
「Main-Class: manifest jar」でぐぐれ。
207デフォルトの名無しさん:2005/06/21(火) 16:48:30
>>203-204,206
できました。サンクス。なんとか首がつながりそうです。
208デフォルトの名無しさん:2005/06/21(火) 17:44:09
あ”あ”〜プログラマに向いてないかもしれん。かといって、他はなし。天国かな地獄かな。
209デフォルトの名無しさん:2005/06/21(火) 17:46:55

  この道より他にわれを生かす道なしこの道を行く

                          〜武者小路実篤
210デフォルトの名無しさん:2005/06/21(火) 17:51:53
いい加減標準ライブラリで GIF はエンコードできるようになったわけ?
211前スレ943:2005/06/21(火) 18:22:42
>>192
>>193
>>194
>>195
なるほど・・・勉強になりました。

前スレより続いていた問題は解決しました。
私がTomcatのユーザをちゃんと確認していなかっただけでした。
申し訳ありませんでした。

数々のご対応頂きありがとうございました。
212デフォルトの名無しさん:2005/06/21(火) 19:04:58
% java -version ~:8549
java 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は困るんだろうな。
213デフォルトの名無しさん:2005/06/21(火) 19:18:31
1.6からは書けるようになるらしいけど、GIFはもう使わないでいいなあ。
214デフォルトの名無しさん:2005/06/21(火) 19:25:10
アプレットを使いたいのですが
主なるクラスが他のクラスを継承している状態でアプレットを継承できません。
インターフェイスでアプレットを実装する事はできませんか?
215デフォルトの名無しさん:2005/06/21(火) 19:25:10
256色の画像でGIFとPNGはどっちが小さくなるんかいな?
216デフォルトの名無しさん:2005/06/21(火) 19:26:07
>>214
できません。
217デフォルトの名無しさん:2005/06/21(火) 19:36:34
そうなんですか・・・・・・・
じゃあアプレットを使う時は
スパゲティで書くしかないのですね・・・
218デフォルトの名無しさん:2005/06/21(火) 20:01:01
>>217
きっちり設計すれば、必要なくなる。
ガンバレ
219デフォルトの名無しさん:2005/06/21(火) 20:15:58
多重継承の問題はたいてい inner クラスで解決できる。
220デフォルトの名無しさん:2005/06/21(火) 20:22:40
>>217
継承しないとスパゲッティになる理屈が分からん。逆だろ。
だいたい OO 初心者は不要な継承が多すぎだ。
221デフォルトの名無しさん:2005/06/21(火) 21:16:38
>>215
PNGの方が小さい。それよりJPEG2000は普及しないのかね。

>>217
あえて多重継承を禁止してるのはスパゲッティ継承を防ぐためなんだが。
222デフォルトの名無しさん:2005/06/21(火) 21:18:01
スパゲッティ?
曖昧さを防ぐためだろ。
223デフォルトの名無しさん:2005/06/21(火) 21:27:35
菱形継承を知らんのか・・・
224デフォルトの名無しさん:2005/06/21(火) 21:37:01
なんか負けず嫌いがいます
225217:2005/06/21(火) 21:48:00
多重継承できないと
クラス毎に処理が書けなくて
逆に一つのクラスに長く書き綴る事になるんじゃないですか?
ちなみにJava暦3ヶ月の初心者ですのでほとんどわかりませんが・・・
226デフォルトの名無しさん:2005/06/21(火) 22:01:56
>>225
クラスを役割分担させればいいんじゃないの?
227デフォルトの名無しさん:2005/06/21(火) 22:02:40
1つのクラスですべてやろうとしてるんかい
それに継承だけだと階層が深いとやってられんよ
228デフォルトの名無しさん:2005/06/21(火) 22:10:54
おまいら委譲って言葉を知ってるか?
229デフォルトの名無しさん:2005/06/21(火) 22:15:29
漠然とほのめかして去ってくのって本人的にかっこいいの? つか、最近はやってんの?
230デフォルトの名無しさん:2005/06/21(火) 22:17:05
>>222
それもある。
というかスパゲティ継承をすると曖昧さも問題になる。

そんなわけで議論を過熱させこのスレは早めに葬りましょう。
Java質問スレが2つもあると面倒。
231デフォルトの名無しさん:2005/06/22(水) 00:04:53
>>225
いや、世の中には多重継承できない言語の方が多いんだから、困ってないんだよ。
継承は現実には、本当に必要な時以外使わないように言われてる。

かわりに、役割に応じてクラスを分割して、AppletならメインとなるAppletサブクラスの
インスタンス変数に、その分割したクラスのインスタンスを保持しとく。

アプレット内部では、必要に応じて保持しているインスタンスのメソッドを呼べばいい。
232デフォルトの名無しさん:2005/06/22(水) 00:05:41
なんかこのスレ見てるとライブドアの新規参入を思い出すな。
土足で既存のスレに割り込んできて、「仲良くしようぜ」って。
233デフォルトの名無しさん:2005/06/22(水) 00:10:31
君の脳内シナプス作用をこんなところで語られても…
234デフォルトの名無しさん:2005/06/22(水) 00:23:34
アプレットのクラスを含んだJARファイルを作成する際に、
プロパティファイルを同梱して、アプレットからプロパティファイルを
読み込む、というようなことをしたいのですが、プロパティファイルは
JARの中のどこに入れればよいでしょうか。

もしくはこんなことはできないですか?
235デフォルトの名無しさん:2005/06/22(水) 00:31:03
>>234
クラスパスの通ってるところ(要するにjarの、.classファイルがあるところだが)なら
どこでも。

プログラム内からプロパティファイルを読み込む時は、getResource()で取得する。
クラスパス内から指定リソースを探してくれる。
236デフォルトの名無しさん:2005/06/22(水) 00:38:24
>>235
ありがとうございます。できそうです!
237デフォルトの名無しさん:2005/06/22(水) 01:58:38
Javaで以下のようなライブラリを作ろうと考えています。

矩形領域の情報と、直線の情報が与えられる。
矩形領域は、矩形の始点座標(x, y)と横幅の長さと縦幅の長さとで表す。
直線は、両端点の座標で表されす。
直線が矩形領域内に収まっている場合には、直線の両端点の座標を返す。
直線が矩形領域内に収まっていない場合には、矩形と直線の交点を返す。

いわゆる、クリッピングを行うものを作ろうと考えています。
これを実現するアルゴリズムは、すぐに考えることは出来ました。
しかし、スマートなコードでライブラリを書こうと思うと、どのような方針で
書いていけば良いのか分かりません。

Javaでライブラリを作るとなると、それはインタフェースにすべきなのか?継承させる
べきなのか?メインプログラムからライブラリに複数の情報を渡すにはどうすれば
よいのか?など疑問なところだらけです。

計算アルゴリズムは自分で出来ますので、「矩形情報と直線情報を渡すだけのメインプログラム」
と「情報を渡されて、計算結果を返すライブラリ」の基本構造を御提示願えないでしょうか?
お願いします。
238デフォルトの名無しさん:2005/06/22(水) 02:03:20
インターフェースにする → 意味なし
継承させる → 意味なし

Rectangle クラスに Line clip(Line) メソッドでも作れ。
239デフォルトの名無しさん:2005/06/22(水) 11:22:40
>>237
ライブラリを作る→意味なし

どう考えてもメソッドひとつ分の機能しかないだろそれ。クラスにすらならん。
Rectangle継承するのも勿体ないからLine clip(Line,Rectangle)メソッドでいいよ。
240デフォルトの名無しさん:2005/06/22(水) 12:49:19
>>207
Apache Antの<manifest>タグを使えば
もっと楽にJARを作れるぞ。
241デフォルトの名無しさん:2005/06/22(水) 12:51:49
>>237
宿題は専用スレで
242デフォルトの名無しさん:2005/06/22(水) 13:17:37
>>240
レベル的にant理解するほうが厳しいと思われ
IDE使えばなんにも意識しないけどな
243デフォルトの名無しさん:2005/06/22(水) 13:20:28
質問です。

static なクラスを作るのと、singleton のクラスを作るのとで、どのような
違いがあるのでしょう?

singleton の場合、インスタンスが2つ以上(有限)の場合なら、static なク
ラスとの違いが分かるのですが、一つしかインスタンスがない場合、static
なクラスで良いのではないかと思ってしまいます。

わざわざ singleton にすることのメリットが分からないのです。お教えいた
だけないでしょうか?
244デフォルトの名無しさん:2005/06/22(水) 13:27:30
>>243
staticなものは継承が使えない。
245243:2005/06/22(水) 13:36:49
では、
・継承を使わないなら、static でよい。
・元のクラスもstatic だったら、新しいクラスも satatic でよい。
 (ただし、プロパティは(オーバーライドしない限り)共有される)

という理解でよろしいでしょうか?
246デフォルトの名無しさん:2005/06/22(水) 13:44:02
>>245
「元のクラス」「新しいクラス」ってなんだ?
それから、staticなものは継承してもプロパティはオーバーライドされないぞ。
「継承を使わないなら」は、将来使う可能性も無いことがはっきりしているならという意味ではその通り。
将来、継承したサブクラスを作成する可能性があるならstaticで作成しない方がいい。

247243:2005/06/22(水) 14:10:42
ありがとうございます。言葉が稚拙ですみません。元のクラス = 親、新しい
クラス = 子 というつもりでした。

継承に付いては、勘違いをしていました。子クラスにフィールドを新設しても、
それにアクセスするメソッドも含めてオーバーライドしないと、新設したフィー
ルドにはアクセスされないのでしたか。

実は、Factoryクラスを作ろうとしています。Factoryクラス自体が情報を保持
していて、生成するインスタンスにそれを初期化パラメータとして与えるので
すが、今のところ、継承の予定もありませんし、static クラスでかまわない
かと思っております。どのように思われますか?
248デフォルトの名無しさん:2005/06/22(水) 14:24:50
>>247
違う。staticなものは、フィールドもメソッドもオーバーライドされない。
各クラスオブジェクトに属するだけ。

俺ならDIコンテナにインスタンス管理させてSingletonオブジェクトとして生成されるように設定する。


249デフォルトの名無しさん:2005/06/22(水) 14:44:25
> Factoryクラス自体が情報を保持していて
それ、設計に問題あるんじゃないか?

というのはさておき、そのような用途ならstaticで構わん気もする。
あくまで生成だけを行うFactoryであれば。
250デフォルトの名無しさん:2005/06/22(水) 15:06:54
入力された文章中のひらがなと漢字を区別して、
それぞれ分割したいのです。

例えば入力が
ここは大学の教室です
とあったとしたら

str1 = ここは
str2 = 大学
str3 = の
str4 = 教室
str5 = です

といった具合です。
正規表現を使えば出来そうだということはなんとなく分かるんですが…
アドバイスをお願いします。
251243:2005/06/22(水) 15:29:28
ご返事、遅くなりましてすみません。継承については根本的に勘違いしていた
ようです。勉強します。

DIコンテナについては全然知らないので、今回は時間も無いし、とりあえず
static でやってみます。いろいろありがとうございました。
252デフォルトの名無しさん:2005/06/22(水) 15:31:20
>>250
java.lang.Character.UnicodeBlockを使ってごにょごにょ。
正規表現をつかうのはかえって難しい。

ところで、日本語localeでのjava.text.BreakIterator.getWordInstance()
はどういう動作になるんだろうか。
253デフォルトの名無しさん:2005/06/22(水) 15:45:55
>>250
あえて正規表現を(無理やり)使って書いてみた例。

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にばらされた文字列が入ってるはず。


無論実際にこんな処理を書くのはお勧めしない。
こういう処理は実は正規表現を使わずごりごり無骨に(?)処理した方が良い。その方が軽いし。
複雑な文字列操作は正規表現で、という思い込みは覚えたてのころはありがちだ罠。
254デフォルトの名無しさん:2005/06/22(水) 16:35:47
どういうことがやりたいのかようわからんけど、
構文解析とか形態素解析のクラスライブラリみたいなの、
どっかが出してなかったっけ。
255デフォルトの名無しさん:2005/06/22(水) 18:34:33
256デフォルトの名無しさん:2005/06/22(水) 18:45:31
posix扱えるjavaのライブラリを誰か
ヒントだけでいい!
シグナルびんびん弾けるライブラリ知りません?
257デフォルトの名無しさん:2005/06/22(水) 20:04:35
コマンドプロンプトでDドライブのディレクトリに移動するにはどうすればいいですか?
C:...からはじまってcd D:\...と打ってもぜんぜん移動してくれません
258デフォルトの名無しさん:2005/06/22(水) 20:09:07
>>257
Javaとは関係ないが…
d:
259デフォルトの名無しさん:2005/06/22(水) 20:50:58
さんくるkさんくす
260デフォルトの名無しさん:2005/06/22(水) 22:45:59
javaプログラムで、ボタンを押したら新規の画面を表示(生成)し、また
同じボタンを押したら、同じ新規の画面を表示(生成)するサンプルプログム
を作りたいですのでが、なにぶんにも力不足でつれません。
アドバイスをお願いいたします。(新規の画面生成を繰り返す方法)
参考URLでも結構です。
261デフォルトの名無しさん:2005/06/22(水) 22:54:35
button = new Button("氏ね");
button.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e){
    Frame f = new Frame("氏ね");
    f.setVisible(true);
  }
});
262デフォルトの名無しさん:2005/06/22(水) 22:56:35
>>261
お前・・・それ動かしてみたか?
263デフォルトの名無しさん:2005/06/22(水) 23:05:22
後でどうとでも逃げられるようほのめかして去るのって最近はやってんの?
264デフォルトの名無しさん:2005/06/22(水) 23:10:00
>>262,263
文句いうのならハッキリ指摘すれ
ちっさいやつらだなぁ
おまえら、意見言うところで言わないから「使えない」PGなんだよ いつまでたっても・・・
265デフォルトの名無しさん:2005/06/22(水) 23:12:08
>>262
最小セットで質問に答えたつもりだが? ちゃんとしたコードに貼り付ければ実行できるし。

1. コードが完全じゃないのが気に入らない
2. 出したウィンドウが消えないのが気に入らない
3. 全角空白でインデント付けてるのが気に入らない
4. 無名 inner クラスを知らない
5. その他
266デフォルトの名無しさん:2005/06/22(水) 23:15:25
>>263>>262 への当てつけなんだが、、、
267デフォルトの名無しさん:2005/06/22(水) 23:32:43
シンボルを解釈処理できません。と,いうエラーが出るのですが
どういう事が原因なんでしょうか?
268237:2005/06/22(水) 23:33:24
>>238-239
レスありがとうございます。ライブラリクラスに変数列を渡す形にすることにします。
今作っているプログラムでクリッピングの操作は数千のオーダーで使うので、ライブラリ
にした法が良いかなと思っています。

>>241
宿題ではありません。
269デフォルトの名無しさん:2005/06/22(水) 23:34:54
>>267
コンパイラに言われたことを全て晒しさらせ
270デフォルトの名無しさん:2005/06/22(水) 23:36:09
くらすめいめそっどめいぬるぽへんすうめいが間違っているまたはひつようないんぽーと宣言をおこなっていない
271267:2005/06/22(水) 23:47:07
javac AddCross.java
AddCross.java:18: シンボルを解釈処理できません。
シンボル: メソッド setCB (CrossBlocks)
位置 : Inputplate の クラス
ip.setCB( cb );
^
エラー 1 個

メソッド名も変数名も間違ってないです.
272267:2005/06/22(水) 23:56:58
解決した
273デフォルトの名無しさん:2005/06/22(水) 23:58:05
↓怒りの鉄拳
274デフォルトの名無しさん:2005/06/23(木) 00:02:31
          _
      ミ ∠_)
         /
         /   \\
 ウイーン  Γ/了     | |
  ウイーン  |.@|    | | ガッガッガッ
       | / | .     人
       |/ |    <  >_Λ∩ <267
      _/  | //. V`Д´)/
      (_フ彡           /
275デフォルトの名無しさん:2005/06/23(木) 00:18:58
>>274
すごく素敵です。
276デフォルトの名無しさん:2005/06/23(木) 02:14:11
byte[] a= (なんか配列)

String b = new String(a, "UTF-8")とやってから
b.getBytes("UTF-8")とやっても元のAの配列に戻ってくれません
数も合わねー
こういうものなんでしょうか?
元にもどる方法がありましたら誰か教えてください
277262:2005/06/23(木) 07:13:33
>>749
>>263-264
質問しただけなのになんでそんなムキになってるの?
278262:2005/06/23(木) 07:13:51
749は無視してくれ。
279デフォルトの名無しさん:2005/06/23(木) 07:14:42
>>266
今度は「当てつけ」の誤用が来たか。
280デフォルトの名無しさん:2005/06/23(木) 07:20:31
>>276
具体的にbyte配列にどんなのを使っているの。具体的数値とかどうやって得られたとか。
281デフォルトの名無しさん:2005/06/23(木) 07:23:21
>>280
そんなの関係ありますか?値によって動きが違うんですか?
282デフォルトの名無しさん:2005/06/23(木) 07:34:51
あります。
283276:2005/06/23(木) 08:41:03
>>280
普通の文字列を配列にしたものではないです。
そういうのだと上手くいきますね。
配列に入ってる値はbyteの域内のほぼランダムな値です。
十進数で表示させると−128から128までの値のどれかがめちゃくちゃに10個くらいならんでます。

なんか変な説明ですいません
そもそもビットとかバイトとにもか詳しくないので
宜しくお願いします。
284デフォルトの名無しさん:2005/06/23(木) 09:26:34
UTF-8のために規定された範囲 0x0〜0x7F 以外ではバイト配列と文字は一対一に対応しない。
ランダムなバイト配列をUTF-8で文字に変換するという操作の意味を考え直すべきかと。
285デフォルトの名無しさん:2005/06/23(木) 10:01:49
>>283
でたらめなバイト列がUTF-8として解釈できるはずないので、String化
するときに?にでも換えられているはず。UTF-8じゃなくてISO-8859-1に
すばれ思い通りになるかもしれないが、そもそもそういうバイト列を
Stringにする必要がある時点で、何かがおかしい。なんでStringにした
いのか?

286デフォルトの名無しさん:2005/06/23(木) 10:06:47
おかしいのか? Base64 とかでエンコードすればいい話じゃねーの?
287デフォルトの名無しさん:2005/06/23(木) 10:29:36
>>286
話繋がってませんよね?
288デフォルトの名無しさん:2005/06/23(木) 10:35:15
何がしたいんだ
289デフォルトの名無しさん:2005/06/23(木) 10:42:12
>>287
だな。ただ、>>283 がしたいのはそういう意味だと思った。
290276:2005/06/23(木) 10:55:38
元々はバイナリのデータなんですがなんかエルダップに登録して取り出すとUTF-8でエンコードされた文字列が返ってきちゃったのです。
とりあえず可逆でエンコードデコードできないのは教えていただきましてわかったので設定見直してちゃんとバイナリ返すようにするか
それがどうしても駄目なら登録でベース64で変換してから登録するようにします。
有難うございました
291デフォルトの名無しさん:2005/06/23(木) 13:03:30
こういう勘違いしたまま去っていくやつは
そのまま見送ったほうがいいんだろうな。
292デフォルトの名無しさん:2005/06/23(木) 13:41:39
Base64 ネタはこのタイミングで出すべきだったなw
敗因は早漏
293デフォルトの名無しさん:2005/06/23(木) 15:54:17
>>279
国語の成績悪かったろw
294デフォルトの名無しさん:2005/06/23(木) 16:24:29
1年程前にjava勉強しようとして4冊くらい本買ったんですが、
途中で辞めてしまいました。
また初めてみようと思ってるのですが、1年前の本でも大丈夫ですか?
あたらしく買ったほうが良いでしょうか?
295デフォルトの名無しさん:2005/06/23(木) 16:25:05
>>294
1年前ので十分
296デフォルトの名無しさん:2005/06/23(木) 16:34:14
typedefはないのですか?
297デフォルトの名無しさん:2005/06/23(木) 16:45:59
無いよ
298デフォルトの名無しさん:2005/06/23(木) 16:59:51
>>295さん
ありがとう!
299デフォルトの名無しさん:2005/06/23(木) 17:55:58
JEditorPane で setContentType("text/html") した後に画面で入力を行い
getText() すると、いわゆる全角文字がすべて &#ddddd; にエスケープされて
しまうんだけど Unicode のまま取り出す方法は無いですかね?
300デフォルトの名無しさん:2005/06/23(木) 19:01:07
>>299
> いわゆる全角文字がすべて &#ddddd; にエスケープされて
ウチではされなかったけど。
301デフォルトの名無しさん:2005/06/23(木) 20:20:24
JavaでMp3プレイヤーを作っています。Linux環境です。
URLを入力し、以下のメソッドを呼んでいます。

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);
の行でエラーが出ている様です。
302301:2005/06/23(木) 20:22:23
java.lang.NullPointerException
at 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されず、エラー表示に変化はありませんでした。

よろしくお願いします。
303デフォルトの名無しさん:2005/06/23(木) 23:11:05
261 亀レスですません。
ありがとうございました。他の方もありあがとう
ございました。連続の意味が異なりました。
IEで例えると ファイル -> 新規作成 -> ウィンドウ
と操作するウィンドウが連絡して開くという意味でした。
304デフォルトの名無しさん:2005/06/23(木) 23:39:55
>>301
>Player mp3Player = ...
>mpePlayer.start();

mpePlayerとmp3Playerは別?
urlPassの中身がnullでないかは大丈夫だよね?

305デフォルトの名無しさん:2005/06/23(木) 23:52:59
>>242
EclipseのJAR生成機能は漏れ的には不満だな。
Antのほうが融通が利くというか。
306デフォルトの名無しさん:2005/06/23(木) 23:54:46
ホントに他人に宿題をやらせようとする甘えん坊大学生ばかりが質問するスレになって
だんだんウザイスレになってきたな。
307デフォルトの名無しさん:2005/06/23(木) 23:55:11
携帯Javaで一バイトでも削りたくて
JarタスクにMANIFEST.MFからantのバナー削る(というか、挿入しない)オプション付けたのを
ふと思い出した

まぁ小手先の細工はしょせん小手先の細工ですたが。
308デフォルトの名無しさん:2005/06/24(金) 00:12:15
JAVA初心者なんですが、JAVAってexeファイルは作れないのでしょうか?
309デフォルトの名無しさん:2005/06/24(金) 00:15:22
310301:2005/06/24(金) 02:05:11
>>304
レスありがとうございます。

>mpePlayerとmp3Playerは別?
タイプミスです。mp3Playerです。

>urlPassの中身がnullでないかは大丈夫だよね?
はい、ちゃんとパスは入っていました。

createRealizedPlayerメソッドの中にtry catchがあってそこで例外を
拾っているのでしょうか・・・。
JMFはクラスの解説サイトとかが乏しいので苦難しております。
311デフォルトの名無しさん:2005/06/24(金) 05:06:03
>>305
Eclipseってへんなantつかってるの?
312デフォルトの名無しさん:2005/06/24(金) 09:01:21
(゚Д゚)ハァ?
313デフォルトの名無しさん:2005/06/24(金) 10:00:46
最近の大学生は教えて君が多いな。

しかも教えて貰うことが当たり前だと勘違いしている。
で、思い通りにいかないと逆ギレして暴れる。
まるで中学生みたいだ。
最近の大学生は中学生みたいな餓鬼ばかりなのか。
314デフォルトの名無しさん:2005/06/24(金) 11:06:32
>>313
マジレスすると、その通り。
ゆとry
315デフォルトの名無しさん:2005/06/24(金) 11:12:15
swingの基礎を勉強しているのですが

テキストボックスに文字をタイプし
その後ボタンを押すと,下にその文字が表示される
というプログラムを書こうと思い,以下のように書いたのですが
なぜか文字がちゃんと表示されません.

いろいろ考えたのですが原因がどうしてもわかりません
どなたか教えてくださいませ
316315:2005/06/24(金) 11:16:58
import javax.swing.*;
import 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 );
317315:2005/06/24(金) 11:17:42
JPanel pane = new JPanel();
pane.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);
}
}
318315:2005/06/24(金) 11:29:30
事故解決しました
板汚しごめんなさい
319デフォルトの名無しさん:2005/06/24(金) 13:37:35
キーボード入力した文字が数値か
判定したいのですが何を使ったら宜しいですか?
320デフォルトの名無しさん:2005/06/24(金) 14:08:59
最近のって、昔からだろw
最近にちゃんねるはじめたのか?
321デフォルトの名無しさん:2005/06/24(金) 14:53:36
>>300
簡単なサンプル作ってみた。使い方が悪いのか環境が悪いのかどっちだろう?
すみません、ちょっと長いですが。

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);
  }
}
322デフォルトの名無しさん:2005/06/24(金) 14:55:22
(続き) ↓ 実行して「あいうえおabcde」と入力しクローズ (&#ddddd; がデコードされたらゴメン)

Locale : 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)
323デフォルトの名無しさん:2005/06/24(金) 14:56:32
デコードされた orz

&#12354;&#12356;&#12358;&#12360;&#12362;abcde
324デフォルトの名無しさん:2005/06/24(金) 18:29:58
String型の文字のバイト数を数えるにはどのようにすればいいのでしょうか?
lengthでは無理ですか?
325デフォルトの名無しさん:2005/06/24(金) 18:38:15
getBytes().length
326デフォルトの名無しさん:2005/06/24(金) 19:08:31
<OBJECT>#toString()を実行すると、
<OBJECT>がString型だったら文字列が返ってきますけど、
配列とかbeanとかだと、「クラス名@ハッシュコード」という形になりますよね。
これを、クラス名@ハッシュではなく、
中身が視認できる形式でダンプしてくれるライブラリがあった気がするんですが、
ご存じの方います?
jakarta-commons-langのObjectUtilsやStringUtilsを漁ってみたんですが、
目的のものがなかったとです。。。
327デフォルトの名無しさん:2005/06/24(金) 19:10:04
>>325
サンクス
328デフォルトの名無しさん:2005/06/24(金) 19:44:28
>>326
toString()をオーバーライドしなされ
329デフォルトの名無しさん:2005/06/24(金) 19:58:49
多分聞きたいのは java.beans.XMLEncoder/XMLDecoder の事だと思うよ。
330デフォルトの名無しさん:2005/06/24(金) 20:26:37
>>313
他人事みたいに言っちゃダメだね。
331デフォルトの名無しさん:2005/06/24(金) 20:49:01
ある条件を満たすまで1秒間隔で画像を表示させていくという
プログラムを作っているのですが,Timerクラスを使ってもうまく行きません。
sleepメソッドやwaitメソッドも試しましたがどちらも駄目でした。
どうにかして一定時間止めるようにしたいのですが,何かうまい方法はありませんか??
332デフォルトの名無しさん:2005/06/24(金) 21:28:43
>>331
うまくいかなったソースは?
333デフォルトの名無しさん:2005/06/24(金) 22:12:34
>>332
@
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);
334デフォルトの名無しさん:2005/06/24(金) 22:13:07
A
while(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
335デフォルトの名無しさん:2005/06/24(金) 22:16:09
スレッドに問題があるのかな?
336デフォルトの名無しさん:2005/06/24(金) 23:35:15
while節で「1000ms後に再描画」というタスクを繰り返しスケジュールしてりゃ当たり前だろ。
Timer#schedule(TimerTask,long,long)で一回だけタスク指定して条件が整ったらキャンセル汁。
337デフォルトの名無しさん:2005/06/24(金) 23:51:52
>>336
もう少し詳しくお願いします
一回だけタスク指定とか言われてもちょっとぴんときません。
338デフォルトの名無しさん:2005/06/25(土) 00:06:43
その抜き出したコードだけじゃ分からんところが多すぎると思うんだが
339デフォルトの名無しさん:2005/06/25(土) 01:53:14
Eclipseを使ってjarファイルを作ろうとしたところ、
できたファイルをダブルクリックすると

Failed to load Main-Class manifest attribute from...

というメッセージが出てきてしまい実行できません。
このような場合、どうすれば実行可能なjarファイルができますか?
340デフォルトの名無しさん:2005/06/25(土) 02:11:33
>>337
メソッドまで指定してるってのにその反応かよorz
ピンと来ないとか寝ぼけた事言ってないで、まずこれを読め。
ttp://java.sun.com/j2se/1.5/ja/docs/ja/api/java/util/Timer.html

んで、藻前が使ってるのはこれ「Timer#schedule(TimerTask�task,long�delay)」だが、これだと
delay ms後にtaskを一回実行するだけだ。
で、漏れが言ってるのは、こっち「Timer#schedule(TimerTask�task,long�delay,long�period)」を使って、
以下の様にすれば、whileループなんか要らねーだろって事だ。
new TimerTask(){
public void run(){
#ここに描画前処理(表示画像の切り替え等)
d.showObje();
if(#終了条件が満たされていれば){
#ここに終了時処理
cancel();
}
}
};
341デフォルトの名無しさん:2005/06/25(土) 02:38:40
閉じるボタンを押しても終了しないJarファイルを終了させるには
どうすればよいですか?
342デフォルトの名無しさん:2005/06/25(土) 02:50:51
タスクバーを左クリック → タスクマネージャ → アプリケーション、で該当するアプリを選択してタスクの終了。
またはプロセスタブで javaw.exe を選択してプロセスの終了。
343デフォルトの名無しさん:2005/06/25(土) 04:42:14
既存のアプリ(Servletなやつ)の持ってるサービスを
MessageDrivenBean経由で呼べと言われました
どうするのがクールでしょうか?

やってもよいこと
MDBが動く鯖に既存アプリを置いてもよい

制約
RMI禁止(なんか嫌いだそうな)
WebService禁止(なんか嫌いだそうな)
絶対MDB使え(JMS直接使用禁止)
344343:2005/06/25(土) 04:48:16
ようするにSOAP on JMSみたいなことをしたいようです

とりあえず現状では

EAR
 WAR(自分アプリ)
 MDB
 lib
  使用するライブラリ一式

という構成にしてクラスロダを共有させてしまい
MDBから自分アプリのクラスを直接触れるようにして解決しています
345343:2005/06/25(土) 04:50:50
現状の構成の訂正

EAR
 WAR(自分アプリ) without クラス、ライブラリ
 MDB
 lib
  使用するクラス、ライブラリ一式
346デフォルトの名無しさん:2005/06/25(土) 08:13:27
>>341
ターミナルからps axして、pidを調べ、killで止める
347デフォルトの名無しさん:2005/06/25(土) 16:30:49
お願いします。
graphicsクラスを使って表示した図形をbmpなりpngなりの画像で保存する方法って、ありますか?
Alt+PrntScrnで毎回保存するのはばかげているし。
348デフォルトの名無しさん:2005/06/25(土) 17:29:28
こんなとこか。

sizeと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がなかった。
メソッド化するなら真偽値で返したほうがいいかもな。
349デフォルトの名無しさん:2005/06/25(土) 17:31:12
いかん、手持ちのコードから取ってきたのでcomponentの中身を
画像に吐き出すコードになっている。

component.paint(g) のところを g.draw(xxx)の呼び出しの羅列に
してももちろんOKのはず。
350デフォルトの名無しさん:2005/06/25(土) 17:41:36
ありがとうございます。よく分からない部分もあるけど試してみます。
351デフォルトの名無しさん:2005/06/25(土) 23:23:37
jarに関する質問です。
packageなしでコーディングをしたfoo.classとbar.jpg、SWT.jarをhoge.jarにまとめた場合
マニフェストのclass-pathにはどう記述すればいいですか?

普通に Class-Path: . swt.jar としてしまうとhoge.jarと同じディレクトリをみてしまうし
Class-Path: hoge.jar でも怒られてしまいます…
352デフォルトの名無しさん:2005/06/25(土) 23:25:15
>>351 jarのなかのjarはクラスパスに含めることは出来ない。
353351:2005/06/25(土) 23:35:46
>>352
回答ありがとうございます。
ではjarの中にjarを入れてはいけないということでしょうか?
また、jarの中にjpgを入れた場合も同様にダメなのですか?
354351:2005/06/25(土) 23:46:42
ageます
355デフォルトの名無しさん:2005/06/26(日) 00:18:23
jar の中に jar はだめ。どうしてもしたいなら展開して含めればいいが
勝手に人のものを、自分の jar に含めるのはお勧めできない。
jpg は問題ない。
356351:2005/06/26(日) 00:37:18
>>355
勉強になりました。ありがとうございます。
357デフォルトの名無しさん: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();
}
358デフォルトの名無しさん:2005/06/26(日) 03:29:23
解決しました。スレ汚しすいません。
359デフォルトの名無しさん:2005/06/26(日) 03:49:07
>>351
jarの中のjarを読み込めるClassLoaderを作って
実行時にそのClassLoaderを使って自分で読み込めばよい。
360デフォルトの名無しさん:2005/06/26(日) 10:12:51
JARファイルに含めたファイルはgetResource等で読み込むことができますが、
このファイルの最終更新日時を取得することは可能でしょうか?
361デフォルトの名無しさん:2005/06/26(日) 10:29:14
JSPで\web-inf\classesに作ったクラスを使用するにはどうしたらいいですか?
362デフォルトの名無しさん:2005/06/26(日) 10:35:28
>>361
importする。
363デフォルトの名無しさん:2005/06/26(日) 10:41:00
>>360に便乗で質問させてください。
getResourceをstaticブロックで行うことは可能でしょうか。
364デフォルトの名無しさん:2005/06/26(日) 13:38:54
public char assignGrade(){
//double mean = computeMean(examScores);
if(Statistics.computeMean(examScores)>= 90) &&
(Statistics.computeMean(examScores) <= 100)
return 'A';
こいつが、illegal start of expressionというエラーを出します。
 いきなり、if statementを使うというのはみとめられてないのでしょうか??
365デフォルトの名無しさん:2005/06/26(日) 13:53:03
()の組み合わせを数えてみれ
366デフォルトの名無しさん:2005/06/26(日) 14:45:48
>>363
public class Foo{
  static{
    URL url = Foo.class.getClassLoader().getResource("...");
  }
}
367360:2005/06/26(日) 14:53:56
やっぱりJARファイルの中のファイルの最終更新日時、というのは
ムリなんでしょうか。
368デフォルトの名無しさん:2005/06/26(日) 15:00:49
JAR ファイルの場所が分かるなら ZIP ファイルとして読み込みゃ分かるだろ。
そもそも何がしたい? 設定の自動リロードか? バージョン表示か?
369デフォルトの名無しさん:2005/06/26(日) 16:20:33
>>362
クラスパスさえ通っていればimportはまったく関係ない
370デフォルトの名無しさん:2005/06/26(日) 17:40:54
>>368
アプレットを含めたJARファイルを作成して
<applet archive="〜.jar" ・・・>
という風にしていて、JARファイルの中のファイルをローカルにコピー
するのですが、既にコピーされている場合はその処理を飛ばす、
ということをしたいのです。

これだとファイルの存在チェックをすればいいのですが、そのファイルを
更新した場合は上書きする、というようなことをやりたいのです。
分かりにくくてすいません。
371デフォルトの名無しさん:2005/06/26(日) 18:36:21
>>370 素直にJWS使ったら? まあjava.util.zipパッケージ使って
自分で全部処理するって手もあるけど。
372デフォルトの名無しさん:2005/06/26(日) 18:39:24
>>369
いつも FQN で書いてんの?

>>370
毎回上書きで良いと思うが。更新されたか知りたければ 2 ファイルを
バイナリレベルで比較でも良い。
373デフォルトの名無しさん:2005/06/26(日) 20:59:47
>毎回上書きで良いと思うが。
パフォーマンスとか無視?
374デフォルトの名無しさん:2005/06/26(日) 21:06:03
>>372
>更新されたか知りたければ 2 ファイルをバイナリレベルで比較でも良い。

それでどっちが新しいかわかるん?
375デフォルトの名無しさん:2005/06/26(日) 21:08:34
>>373
ファイルサイズが数百MBとか、VPN on ダイアルアップでファイル共有してる
ディレクトリとかならともかく、起動ごと程度の頻度で現実的に問題になると?
376デフォルトの名無しさん:2005/06/26(日) 21:09:35
>>374
JAR に入ってるのが「真」だろ? おまえスレ読んでねーだろ。
377369:2005/06/26(日) 21:13:29
>>372
>いつも FQN で書いてんの?

>JSPで\web-inf\classesに作ったクラスを使用するにはどうしたらいいですか?
という質問に対して
>importする。
という回答がおかしいといっているだけ。
378デフォルトの名無しさん:2005/06/26(日) 21:22:32
揚げ足取られるのが怖いのか、自分に自信が無いのか、ホノメカスのが
格好良いと思ってるのか、否定しといて自分の意見を言わない奴が最近
目に付く。
379デフォルトの名無しさん:2005/06/26(日) 21:28:18
>>378
で?
380デフォルトの名無しさん:2005/06/26(日) 21:28:38
>>375
その手の条件は一切書かれていなかったよね。
381デフォルトの名無しさん:2005/06/26(日) 21:49:47
キモッ
382デフォルトの名無しさん:2005/06/26(日) 22:01:59
>>381
意外な反応だな。
383デフォルトの名無しさん:2005/06/26(日) 22:02:24
>>378
言えてる。
ようするに厨房が増えたってことだね。
最近の大学生にもああいうバカが増えてる感じだ。
アルバイトとして入ってきた学生プログラマのうち
何人かは自己中で我が儘で態度がでかい。
そういう奴が多い。
そのくせ寂しがり屋というのが笑えるが。
384デフォルトの名無しさん:2005/06/26(日) 22:03:31
>>376
JARから出たファイルに手を加えることがあった場合とかに
それじゃわかんないだろうと思ったん。
385デフォルトの名無しさん:2005/06/26(日) 22:10:37
高校、大学くらいの頃は斜めに見るのがカッコいいと思うお年頃
386デフォルトの名無しさん:2005/06/26(日) 22:59:26
>>385
お前何歳?
387デフォルトの名無しさん:2005/06/26(日) 23:05:51
リアル
388120:2005/06/26(日) 23:19:29
>投稿日時: 2005-06-22 16:39 上記について、案件がなくなりました。
>失礼しました。

ワラタ
389デフォルトの名無しさん:2005/06/26(日) 23:26:51
>388
ワロスwww
390デフォルトの名無しさん:2005/06/26(日) 23:30:29
>>389
自演かよ。
391デフォルトの名無しさん:2005/06/27(月) 05:41:18
アプレットで、ボタンをクリックしてWEBページを開きたいんだけど
そういう事をする為のライブラリってありますか?
392デフォルトの名無しさん:2005/06/27(月) 06:01:58
AppletContext#showDocument()
393デフォルトの名無しさん:2005/06/27(月) 06:38:29
) int[] x = {10, 12, 15, 8, 6};
int[] 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になるのかわかりません。
説明もらえますか?
394デフォルトの名無しさん:2005/06/27(月) 06:41:26
>>393
そのコードだとその結果になるのは当然だとしか言いようがない。
おまえが期待する結果は何だ?
395デフォルトの名無しさん:2005/06/27(月) 06:51:35
xとかyとかiとかjとか配列とか
あんさんはエクセルか!!!!!!!!!!!
396デフォルトの名無しさん:2005/06/27(月) 07:03:16
どんな流れで、そうなるのか教えてちょ
397デフォルトの名無しさん:2005/06/27(月) 07:09:12
>>395
死ねば?
398デフォルトの名無しさん:2005/06/27(月) 08:24:10
>396
どんな答えを求めてるの?
それ基本的な構文しかないんだけども、
英会話だとばーなーなー言ってるレベル、説明って全部教えろなのか、
自分のスペックを晒せ!期待する返答のテンプレをはれ!!
取り乱してしまったお詫びに答えてみます。でっなに答えるんだ

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だよ!
399デフォルトの名無しさん:2005/06/27(月) 09:24:40
FlowLayoutで垂直方向に中央揃えって出来ませんか?
400デフォルトの名無しさん:2005/06/27(月) 09:36:27
2.The class Fraction represents the set of integer fractions,
and 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?
 英語ですいません、答え合わせをしたいんですけど、どなたか
 お願いします。
401デフォルトの名無しさん:2005/06/27(月) 14:08:27
>>400
> Fraction c = (Clone) a.clone();
コンパイル通らねーんじゃ?
402デフォルトの名無しさん:2005/06/27(月) 14:31:50
>400
答え合わせならまずキミの解答を書こうな。

しかし、Fraction(num, denom)はmethodじゃなくてconstructorだろ、と言いたい。
403デフォルトの名無しさん:2005/06/27(月) 16:46:18
TreeSetがTreeMapを使われて実現されているのは何故ですか?
TreeMap<E, Object>となっていますが、Valueの方を使わないなら無駄なので、
Treeを使ってTreeSet, TreeMapを実装した方がよさそうですが。
404デフォルトの名無しさん:2005/06/27(月) 16:47:42
わざわざ別で実装するの面倒だしな
405デフォルトの名無しさん:2005/06/27(月) 23:04:24
Tomcat 単体で(Apache無し)で同じコンテキストに複数の docBase を
指定することは可能でしょうか?

イメージ的にはこんな感じです。
<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" のような設定が可能だったようです。
406デフォルトの名無しさん:2005/06/27(月) 23:37:06
>>390
?
>>389==>>388という自演?
少なくとも>>388 != >>120
407デフォルトの名無しさん:2005/06/27(月) 23:38:17
>>391
ある。
408デフォルトの名無しさん:2005/06/27(月) 23:41:18
>>399
できる。
409デフォルトの名無しさん:2005/06/27(月) 23:46:02
410デフォルトの名無しさん:2005/06/28(火) 05:44:02
初期化ではなく、byteやintなどの配列の各要素にまとめて値を代入したいのですが、
int a[] = {116,184,17663,8211,5816};
みたいな初期化の文みたいにまとめて書く事って出来ませんか?
a[0] = 116;
a[1] = 184;
...
と書くしかないんでしょうか?
411デフォルトの名無しさん:2005/06/28(火) 06:38:02
>>410
いまいち何言ってるかわからんけど処理の途中に

a = {116,184,17663,8211,5816};

じゃいかんのか?
412デフォルトの名無しさん:2005/06/28(火) 07:17:08
>>411
おい
413デフォルトの名無しさん:2005/06/28(火) 08:13:45
new int[]{}
414デフォルトの名無しさん:2005/06/28(火) 08:21:49
1台のマシン上で呼び出される
java [arg ...] 

常になんかしらのオプションを付加させたかったりします。
java Main 111 から java -Xdebug Main 111

手軽でリスク少ない方法について少し語りませんか?
わたしは聞いてます。
java.bat とか #!java しか浮かびません
呼ばれ方で全く無意味になり大変
知恵を貸してください。
415デフォルトの名無しさん:2005/06/28(火) 08:25:35
>410
write(byte[])じゃだめなのかい?

>414
Good Job!
みな!紳士の414がいい議題をもってきた、熱く語ろう
416デフォルトの名無しさん:2005/06/28(火) 14:12:41
Object.clone() をオーバーライドした関数で「深いコピー」を行う場合、
その clone メソッドが C++ で言うコピーコンストラクタに相当するわけですよね?
417デフォルトの名無しさん:2005/06/28(火) 14:13:54
深いコピーってなんだ?
418デフォルトの名無しさん:2005/06/28(火) 14:15:42
>>416
コピーコンストラクタがディープコピーかという話はおいて置いて、まぁそういう事だ。
419416:2005/06/28(火) 14:22:32
>>418
有難う御座います。勉強になります。

>>417
クラスのメンバへの参照だけをコピーするのが「浅いコピー」
C でいうところのポインタだけを渡したものだと思えばいい。
  A.herName = "Emi";
  B = A;
  B.herName = "Kaori";
  System.out.println(A.herName);
これを実行すると A も B も香織さんになる。これが浅いコピー。
メンバーの実体もコピーされる(別な記憶域が確保される)のが深いコピー。
420デフォルトの名無しさん:2005/06/28(火) 15:00:35
Buttonオブジェクトの位置指定で、右、中、左、上、下しかないのでしょうか?
J2E1.2では、座標指定で表示できたり、アイコンなどもドラッグ移動できたりした記憶があるのですが。
(なにぶん数年前なので記憶が思い出せない)
421デフォルトの名無しさん:2005/06/28(火) 15:59:32
すいません質問させてください。
iTextでAcrobat javascriptを定義しようとしているのですが、itextでAcrobat javascriptのfunctionの定義ってできますか?
散々探したのですが、アラートのサンプルしかなく途方にくれています。

よろしかったらお力をお貸しください。
422デフォルトの名無しさん:2005/06/28(火) 18:06:19
Javaからしばらく離れてたら、すっかりJavaのこと忘れてる
一般的なスタイルとか、クラスとか勉強してきま
423デフォルトの名無しさん:2005/06/28(火) 18:21:22
JLabelの多次元配列[i][j]としたとき一つのiで宣言できる
jの数って8つまでなんですか?それ以上の数で宣言することはできるんですけど、
コンストラクタを呼び出そうとするとArrayIndexOutOfBoundsExceptionがでます。
424デフォルトの名無しさん:2005/06/28(火) 18:27:03
単に間違ってるだけだろ
425デフォルトの名無しさん:2005/06/28(火) 18:27:29
ちょっと質問です。

なんで、Javaは、1ファイルに1つのPublicなクラスしか入れられないのですか?
複数入れられた方が、ツリー構造のPublicなクラスを一つのファイルで記述できたりして
いいような気がするのですが・・・
426デフォルトの名無しさん:2005/06/28(火) 18:28:53
オブジェクト指向的に変だからじゃねーの
427デフォルトの名無しさん:2005/06/28(火) 18:44:07
>>425
ファイルシステムがすでにツリー構造だから、かな?
少なくともひとつのファイル内でツリー構造を表現する方が無理があると思うけど・・・。


ん?ファイルシステムがツリー構造じゃないシステム上で実装されたJavaは(あるとしたら)どうなるんだ?
428デフォルトの名無しさん:2005/06/28(火) 20:22:59
>>417
おい
429デフォルトの名無しさん:2005/06/28(火) 20:40:44
もろ初心者な質問ですいません。
int[] 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}となる。
このように左から小さい順にならばないのです。
先輩方私にどうか正しい考え方を教えてください
430デフォルトの名無しさん:2005/06/28(火) 20:49:53
なんでもそうですがコンピュータはミスをしません
間違った指令を忠実に実行します
己を信じるな、全部己を疑え
431デフォルトの名無しさん:2005/06/28(火) 20:52:19
>>429
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.print("[" + i + ":" + j + "] ");
    for (int x=0; x < data.length; x++) System.out.print(data[x]+" ");
    System.out.println();
  }
}
432デフォルトの名無しさん:2005/06/28(火) 20:56:48
>>430
そんなことないですよね。
433デフォルトの名無しさん:2005/06/28(火) 21:12:55
ちょっと質問します。

import 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)を使うとうまくいくのはなぜでしょうか。
434デフォルトの名無しさん:2005/06/28(火) 21:18:07
クラス名・変数名に迷ったら書き込むスレ。Part5
http://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化。

こんな感じだとどうでしょう?
435デフォルトの名無しさん:2005/06/28(火) 21:22:05
ALTキーを押しっぱなしにしてくれるような命令はありませんか?
あるボタンを押したときと同じ処理を,キーボードの'A'を押したときにも
行わせたいのですが,このようにするにはALTも押さなくてはなりません。
(ニーモニックキーとして使用)
KeyListenerを実装しようとも思ったのですが,
それだとactionPerformedの中の処理と同じ内容をコピーしてこなくてはいけないので
効率が悪いと判断してニーモニックキーを使用しています。
436デフォルトの名無しさん:2005/06/28(火) 21:28:06
>>435
KeyListener と ActionListener の中で同じメソッドを呼べば良い。
437デフォルトの名無しさん:2005/06/28(火) 21:30:29
>>436
やっぱりメソッド化ですか。
おとなしくそうします
438デフォルトの名無しさん:2005/06/28(火) 21:31:45
System.load とか System.loadLibrary でDLLをロードした後、
明示的に解放することは可能でしょうか。
439デフォルトの名無しさん:2005/06/28(火) 21:58:36
JInternalFrame 内のどのコンポーネントにフォーカスが当たっていようが [CTRL]+[S] で
編集中の内容を保存したいんだけど、JInternalFrame の全部のコンポーネントに
KeyListener を仕掛けなきゃだめ?
440デフォルトの名無しさん:2005/06/28(火) 22:17:21
>>433
描画前にリペイントよびだしてどうする
441デフォルトの名無しさん:2005/06/28(火) 22:33:05
repaint()はupdate(g)を呼び出すだけなんじゃないんでしょうか?
442デフォルトの名無しさん:2005/06/28(火) 22:45:44
>>441
443デフォルトの名無しさん:2005/06/28(火) 23:27:23
JEditorPane で選択範囲 (まぁ任意の位置です) を強調したり斜体にしたりフォントや色、
大きさを変えたりするのってどうやるんでしょうか? ヒント教えてください。
444デフォルトの名無しさん:2005/06/28(火) 23:36:58
HashMapとHashTable
ArrayListとVectorの違いがよくわかりません
同期の問題が出る場合後者を使うって感じで問題ないのでしょうか?
前者をラップして使う方法は一応ですが知っています
あとHashSetに対応するものもあると思うのですがわかりません・・・
この辺りのコレクションフレームワークの使い分けとかを教えてください
445デフォルトの名無しさん:2005/06/28(火) 23:44:10
>>444
Hashtabl, Vector は JDK 0.9〜1.1 の頃に使用されていたもの。初期バージョンとはいえ
さすがにコレクションくらい使えないとまずいでしょ。その後 J2SE 1.2 でコレクションフレー
ムワークがきちんと作り直され、Hashtable や Vector は過去との互換性のために残された。
MS JVM (JDK 1.1相当) で動かす前提とかならこれらのクラスが必要だが、それ以外は
Map や List 使っとけ。ちなみに 1.1 までは Set に対応するものは無かった。
446444:2005/06/29(水) 00:04:50
>>445
ありがとうです
じゃあ同期取る必要があるときはラップして使うのが推奨みたいですね
早いレスありがとうでした
447デフォルトの名無しさん:2005/06/29(水) 00:07:21
つーか大概同期取りたいときは処理手順が重要になるだろうし
いじる場所で排他かけるべし
448デフォルトの名無しさん:2005/06/29(水) 00:39:53
JFrameにKeyListenerって使えないんですか?

public void keyReleased(KeyEvent ke){}

public void keyPressed(KeyEvent ke){
  int keycode = ke.getKeyCode();
  if(keycode == KeyEvent.VK_S){
    standAction();
  }
}

public void keyTyped(KeyEvent ke){}

こんなん作ってみましたけど動きません。
449438:2005/06/29(水) 00:43:13
やはり>>438はムリでしょうか。
450デフォルトの名無しさん:2005/06/29(水) 00:44:35
>>448
KeyListenerをインプリメントしてない
or
addKeyListenerをしてない
のどちらかだな
451デフォルトの名無しさん:2005/06/29(水) 00:46:20
>450
private class StandActionListener implements ActionListener, KeyListener
というプライベートクラスを使ってます。
actionPerformedの方は問題なく動きます。
452デフォルトの名無しさん:2005/06/29(水) 00:49:32
>450
解決しました。
453デフォルトの名無しさん:2005/06/29(水) 02:58:22
この本の書評の投票にご協力ください
http://www.amazon.co.jp/exec/obidos/ASIN/4569620973/250-1090913-6566616
454デフォルトの名無しさん:2005/06/29(水) 07:15:20
>>453
理由は?
455デフォルトの名無しさん:2005/06/29(水) 07:49:11
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);
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 + "例外が発生しました");}}}
長すぎる!メソッドを分割しろ!!と怒られました・・。
コツ教えてください
456デフォルトの名無しさん:2005/06/29(水) 08:01:26
;で改行しろ よ みにくいから
だれに怒られたんだ?先輩か?
457デフォルトの名無しさん:2005/06/29(水) 09:47:11
res==1のブロックはまるごと外に出してメソッドにして呼び出せば一行になる。
BufferedReaderの引数はコンストラクタそのまま書けば一行短くできる。

「リファクタリング」って名著があるよ。
458デフォルトの名無しさん:2005/06/29(水) 09:59:06
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

459デフォルトの名無しさん:2005/06/29(水) 10:00:43
つづき

public 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);
460デフォルトの名無しさん:2005/06/29(水) 10:01:20
つづき2

// ボタンを作成
button = new JButton("書き込み");
// アクションリスナーを登録
button.addActionListener(this);
// ボタンを追加
contentPane.add(button);
// ウインドウが閉じられたときにアプリケーションを終了するように設定
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// サブコンポーネントの推奨サイズおよびレイアウトに合わせて
// この Window をサイズ変更するように設定
pack();
// 表示します
setVisible(true);
}
461デフォルトの名無しさん:2005/06/29(水) 10:02:21
つづき3

//メイン
public static void main(String[] args)
{
// フレームを作成
Kintai frame = new Kintai("出勤退勤時間設定");
frame.setBounds(0 , 0 , 400 , 200);
}

462デフォルトの名無しさん:2005/06/29(水) 10:03:16
つづき4

//アクションが発生すると呼び出されます。
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();
}
}
}
}

なのですが、ボタンがセンターに来ないのですが、どこか書き忘れているものが、あるのでしょうか?
463:2005/06/29(水) 10:42:24
JAVAアップレットってどこでよみこめるの?
464デフォルトの名無しさん:2005/06/29(水) 15:10:07
>>434
誘導までして頂きありがとうございました。
本来なら
http://pc8.2ch.net/test/read.cgi/tech/1109330204/606
でこっちにくるべきですよね・・・。
教えていただいた方法で、そのまま設計してみます。
ありがとうございました。
465455:2005/06/29(水) 20:26:32
<457
アドバイスありがとうございます。
学校からでは書き込めないので・・・
未だにできません。
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);
466455つづき:2005/06/29(水) 20:27:52
//vectorにデータを格納
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 + "例外が発生しました");}
}}
以上です。
答えはないと言われましたが皆さんのお手本にします。
お願いします
467デフォルトの名無しさん:2005/06/30(木) 00:58:20
JTextPane の HTML 入出力って非力だな〜。保存形式は <B> やら <FONT> やらだし
再読み込みするとイラン空白挿入されてるし。
468デフォルトの名無しさん:2005/06/30(木) 07:19:39
>>467
自分でカスタマイズされてはいかがですか?
469デフォルトの名無しさん:2005/06/30(木) 12:58:33
Doubleからdoubleへのキャストはどうしたらいいんでしょうか?
470デフォルトの名無しさん:2005/06/30(木) 13:04:58
>>469
キャストはできないので、DoubleのAPIリファレンスを読んで手段を見
付けてください。
471デフォルトの名無しさん:2005/07/01(金) 10:44:08
>>468
やっぱそれしかねぇよなぁ… つことで今やってるけど。
472デフォルトの名無しさん:2005/07/01(金) 21:06:27
初心者です。
みなさんにお聞きしたいのですが、アプリケーションサーバーは何をお使いですか?
473デフォルトの名無しさん:2005/07/01(金) 22:29:55
メタフレーム
474デフォルトの名無しさん:2005/07/01(金) 23:51:36
そーいや Apache のゲロニモって今何やってんの?
475デフォルトの名無しさん:2005/07/02(土) 01:00:41
Tomcat
476デフォルトの名無しさん:2005/07/02(土) 01:10:40
>>474
Apache GeronimoはとうとうJ2EE certification(互換性検査)を通ったようだよ。
いよいよか。
477デフォルトの名無しさん:2005/07/02(土) 10:09:40
472です

皆さんありがとうございます。これから参考して選んでいきたいと思います。
478デフォルトの名無しさん:2005/07/02(土) 10:49:25
javaservletでIPアドレスやホスト名を取得できますか?
479478:2005/07/02(土) 11:17:08
自己解決しました。スレ汚しスマソ
480デフォルトの名無しさん:2005/07/02(土) 14:51:40
>>476
Java EE 5 に対応してんのかな?
481デフォルトの名無しさん:2005/07/02(土) 16:41:47
新しく走らせたスレッドを停止させたいのでsunのページを調べてみたところ、
stopメソッドとdestroyメソッドがありました。
stopメソッドを使った場合、コンパイル時に"推奨されないAPIが含まれています"と
言われてしまいます(sunのページにも推奨されないと書かれていますが)。
そこで、destroyメソッドを使おうと思ったのですが、使い方が悪いのでしょう、実行時
にエラーが出てしまいます。
テスト用のファイルを作ったので、どのように使えば良いのかご教授お願いします。

ttp://www.uploda.org/
ファイル「138951」
パスワード「dtest」
482481:2005/07/02(土) 16:42:45
ファイルが間違っていました。

ファイル「138915」
です。お願いします。
483デフォルトの名無しさん:2005/07/02(土) 16:45:13
Thread#interrupt() を呼べ。
そして停止側のスレッドで停止処理を記述しろ。
484481:2005/07/02(土) 17:04:29
>>483
出来ました!
鬼のような早い回答ありがとうございます!
485デフォルトの名無しさん:2005/07/02(土) 21:12:56
便乗質問というわけでもありませんが、
僕もThreadのdestroyの使い方が分からないんですね。
destroy()は引数は取らないし、殺したいスレッドが仮にthrという名前だとすると、
thr.destroy(); とするしかないはずなのですが、メソッドが無いというエラーが出ます。
destroyはどう使えばいいんですか?
486デフォルトの名無しさん:2005/07/02(土) 21:17:07
>>476
JBossとどっちがいいんだ?
JBossはHSQLDB, Hiernateを標準サポートしているし
知名度が高いし。
487デフォルトの名無しさん:2005/07/02(土) 21:17:08
非推奨メソッドはつかっちゃだめということ
488デフォルトの名無しさん:2005/07/02(土) 21:19:29
JBossはHSQLDBを標準サポートというより組み込みとして使ってるだけじゃないかね

Apacheはライセンスがみんな好きだから普及しそうだが
安心して使えるまではしばらく時間がかかると思われ
489デフォルトの名無しさん:2005/07/02(土) 21:23:00
>>485
どうして非推奨メソッドをあえて呼びたいの?
490デフォルトの名無しさん:2005/07/02(土) 23:14:22
>>489
そこにメソッドがあるからさ
491デフォルトの名無しさん:2005/07/02(土) 23:22:24
坊やd(ry
492デフォルトの名無しさん:2005/07/02(土) 23:56:19
おそらく頑固な上司がそのメソッドを非推奨メソッドである
ことを知らず、
その上司の思考が新しいJ2SEではなく古いJ2SEで止まっているのだろう。
バカで頑固な上司は新しい技術を導入すべきタイミングを見計らう能力が
無く懐古主義なのでレガシーな非推奨メソッドを使いたがる。
493デフォルトの名無しさん:2005/07/02(土) 23:57:12
>>492
おまえも「レガシー」という言葉を使いたがるんだな
494デフォルトの名無しさん:2005/07/02(土) 23:57:39
そんなお前に トヨタ レガシー
495デフォルトの名無しさん:2005/07/02(土) 23:58:33
頑固な上司はJ2SE5Tigerの使用も躊躇う。
Jakarta製品の使用も躊躇う。
496デフォルトの名無しさん:2005/07/02(土) 23:59:37
レガシーが嫌なら
古典的と呼んでやればいいか
497デフォルトの名無しさん:2005/07/03(日) 00:00:24
>>495
「使うのはいいが、影響範囲を洗い出せ!」
とか言いそうだな
存在するとすれば5.0のバグであり、
予測できる影響範囲は無い!
498デフォルトの名無しさん:2005/07/03(日) 00:02:49
おそらく >>492 が J2SE という名称が Java SE に変更された
ことを知らず、
>>492 の思考が新しい Java SE ではなく古い J2SE で止まっているのだろう。
バカで頑固な >>492 は新しい名称を導入すべきタイミングを見計らう能力が
無く懐古主義なのでレガシーな名称を使いたがる。
499デフォルトの名無しさん:2005/07/03(日) 00:07:27
JavaSEという言い方は6.0からだから
まだJ2SE5.0でいいのだが
500デフォルトの名無しさん:2005/07/03(日) 00:10:05
6.0からはコンマ以下の0は省略する事に決めたらしいのでJava SE 6だろ。
501デフォルトの名無しさん:2005/07/03(日) 00:20:29
>>492>>499 と同一人物だとしたら (´・ω・) カワイソス
502デフォルトの名無しさん:2005/07/03(日) 01:30:56
おまいら Sun の思惑どおり、バージョン名の話題に躍らせられてんな。
調子に乗って Java SE 7 から Java 7000 ね。とか言い出すぞ。
503デフォルトの名無しさん:2005/07/03(日) 01:33:44
残念ながら俺は499だが492とはちがうよ
JavaSEと書いておきながら6.0とかいたのは確かにミス
内部バージョンでももう0.1はあげないらしいね

sunは伝統的に0.1がメジャーバージョンアップだったけど一般ユーザーにはそんなことしらんから
Java2という名前付けたのだが、それを消すのなら最初からやっていろと
504デフォルトの名無しさん:2005/07/03(日) 01:35:22
まぁ、JavaSE2006とかはありそうな気もする
内部バージョンは6で
505デフォルトの名無しさん:2005/07/03(日) 05:38:28
class A{
  private 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() ってどう実装するの?
506485:2005/07/03(日) 05:54:37
何だか僕の質問からえらい方向に行ってますね・・・。

>>487, 489
僕は古いバージョンのものを使っているので、v1.4.0のサイトを見て勉強を
していました。sunのサイトでもそうですが、v1.4.0ではdestroyは非推奨とは
書いていないんですね。
新しいバージョンのサイトを見てみると、確かに非推奨だと書いてありました。
やはり、使うなということなのですね。

でも、非推奨であれ使い方が分からないのは何だか気持ちが悪いです。
stopはv1.4.0でも非推奨ですが、thr.stop(); とやれば使えます。
ではdestroyは???


#上司がどうこう書かれていますが、独学なので違います。
507デフォルトの名無しさん:2005/07/03(日) 06:20:26
単なるアレルギー反応だから気にするな。「非推奨」のレッテルが貼られてれば
どんな低脳でも叩けるから。その証拠に誰もまともに答えず話が脱線してる。

stop() と destroy() の仕様上の違いはクリーンアップをするかどうか、要は
ThreadDeath を投げるか、その場で突然死するかだ。stop() を呼び出すと
例外として ThreadDeath が発生し、finally ブロックが実行され synchronized
ブロックを抜けてスタックを巻き戻したところで終了する。destroy() はそれを
やらず状態不整合が発生してようが即時終了。まぁ今は destroy() は実装
されてないけど。

stop() はスレッドを管理、監視するコンポーネントでよく使う。たとえば無限
ループや無応答で何十分も停止してる処理を停止するためのシステム
ツールや、プラグイン型のバックグラウンド処理のフレームワーク作る時など。
だから初心者スレで聞いても「非推奨だから使わない (使ったことない)」と
しか帰ってこなくて当然。
508デフォルトの名無しさん:2005/07/03(日) 08:39:50
>>506-507
公式のドキュメント読めば簡単にわかることだから
だれもわざわざ答えたりしないんですよ

与えられてる情報すら満足に処理できないのは初心者以下です
509デフォルトの名無しさん:2005/07/03(日) 09:05:19
なんか fj みたいな事言い始めてる奴もいるし
510デフォルトの名無しさん:2005/07/03(日) 09:12:49
非推奨である理由は大抵スレッドセーフの扱いが曖昧だとか
将来わたってその非推奨メソッドを使うと汎用性、拡張性が下がり
修正しなければならない可能性があるからだろうよ。
511デフォルトの名無しさん:2005/07/03(日) 09:14:00
>>509
fj.comp.lang.java?
512デフォルトの名無しさん:2005/07/03(日) 09:30:05
>>490
じゃあ死ねば?

>>508
まず自分を振り返った方がいいですよ。
513デフォルトの名無しさん:2005/07/03(日) 09:33:20
514デフォルトの名無しさん:2005/07/03(日) 10:49:24
>>513
循環参照になりますが?
515デフォルトの名無しさん:2005/07/03(日) 16:28:44
>514
つまり「死ぬまでテメエのレス読んでろ」と言う意味かと。
516デフォルトの名無しさん:2005/07/03(日) 16:37:52
高橋メソッドや、もんたメソッドならまかせろ
517デフォルトの名無しさん:2005/07/03(日) 16:40:57
>>505
Effective Java に書いてあったような気がするが、
equals のオーバライドをあきらめる。

または、そのインスタンスのクラスオブジェクトをチェックすれば
(getClass()だっけ)意図した動作になるかもしれない?

ちなみに、equals をオーバライドしたら
hashCode もオーバライドする
518デフォルトの名無しさん:2005/07/03(日) 16:51:57
>>512は友達少ない奴なんだろうな。
そして大学でも先生や先輩からも嫌われている。そして相手にされていない。
だから2chで質問しようとしている。
ところがどんな情報が少ない質問にも答えて貰えるのが当たり前だと
勘違いして2chで大暴れしていると。

519デフォルトの名無しさん:2005/07/03(日) 16:57:07
>>518
要約すると「>>512 の居場所はどこにもない」ってことかな?
520デフォルトの名無しさん:2005/07/03(日) 17:15:35
華麗にスルー
521ぼく:2005/07/03(日) 17:15:48
はじめまして、こんにちは。
JavaでCORBAのプログラミングをしております。
その中でCORBAサーバを立てているのですが、
使われているポート番号が不定です。
port番号は出力しているiorファイルをdecodeして確認しました。
クライアントはそのiorファイルを利用して接続しに来るのですが、
セキュリティの関係で、使用するポートを限定(特定)したいのです。
どこかのWebを参考にしたサンプルですが、以下に示します。
何か、ヒントやxxxを参照しろなど、アドバイスいただければ幸いです。
(環境:Solaris 9 + J2SDK 1.4.2_08)
よろしくお願いいたします。

--
522ぼく:2005/07/03(日) 17:20:33
>>521
try{
// 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();
}
523デフォルトの名無しさん:2005/07/03(日) 17:30:23
>>518-519
最近自分宛てのレスを他人に叩き付けちゃう人が多いねぇ。
524デフォルトの名無しさん:2005/07/03(日) 17:34:51
>>523
昔からそんなもんかと
525デフォルトの名無しさん:2005/07/03(日) 18:41:43
プログラム板が荒れているため、IDを導入するか検討中です。
賛成の方も反対の方も、このスレで自分は賛成か反対かをお書きください。

プログラム技術板に強制ID制を導入すべきか否か
http://etc4.2ch.net/test/read.cgi/vote/1118144381/

理由などの記入は別に構いません。
<<賛成>>か<<反対>>かだけ御記入頂ければ結構です。
ちなみに、当たり前ですが運営の方にIPが見えているので、1日ごとにIDが変わるからといって多重投稿しないでください。
526485=506:2005/07/03(日) 20:02:07
なんだかまたスレが荒れていますね・・・。
結局は非推奨だから使うなということですね。

>>507
>まぁ今は destroy() は実装されてないけど。
僕はここの認識が無かったようです。
destroyは実装されていないんですね。
527デフォルトの名無しさん:2005/07/03(日) 22:35:23
>>525
運営ってのはどういう人たちなの?
528デフォルトの名無しさん:2005/07/04(月) 17:39:59
文字列の中にascii以外の文字が含まれているかどうかの判定って
どのへんのクラスを使えば出来るのでしょうか?
529デフォルトの名無しさん:2005/07/04(月) 17:44:22
String, Character
530デフォルトの名無しさん:2005/07/04(月) 19:29:22
そもそも使い終わったスレッドオブジェクトって、
完全に破棄できるの?
531デフォルトの名無しさん:2005/07/04(月) 19:46:13
意味が分かりません。
スレッドの処理が run() メソッドを抜ければ active でなくなりシステムリソースは
開放され、インスタンス自信もいずれ GC が回収してくれる。
532デフォルトの名無しさん:2005/07/04(月) 20:00:34
>>531
自信は回収しない。
533デフォルトの名無しさん:2005/07/04(月) 20:15:02
ルートからたどれなくなってスレッドも終了していれば回収してくれるんじゃ?
534デフォルトの名無しさん:2005/07/04(月) 20:19:52
このように技術系の板ではネタ突っ込みにマジレスされることがあるので注意が必要です。
535デフォルトの名無しさん:2005/07/04(月) 20:38:12
オブジェクト自身は回収できても自信は回収のしようが無いな
536デフォルトの名無しさん:2005/07/04(月) 22:28:54
漏れの自信は厨房時代にGCされますたorz
537デフォルトの名無しさん:2005/07/04(月) 23:04:16
ソケットプログラムで、

class A {
 while (true) {
  socket = server.accept();
  new B(server.accept()).start();
 }
}

とした時、クラスA側のfinallyにはSocketのクローズ処理書いてるんですが、
B側でも閉じる必要があるのでしょうか?
環境によっては再度立ち上げる際に「既にポートが使用されています」とでるので、
問題箇所はガベージ関連ぽいのですが。

イメージ的には、Aのwhile内で毎回ソケットを作成してるので、A側だけで
クローズすれば良い気がするのですが、スレッドの場合はアドレス渡しされるという話も
ききます。
どなたか教えて下さい。
538デフォルトの名無しさん:2005/07/04(月) 23:05:57
まず(ry
539デフォルトの名無しさん:2005/07/04(月) 23:19:28
>>537
ServerSocket serverとSocket socketのどっちの話をしてるの?
あと、server.accept()が2つあるのは間違いだよね。
540537:2005/07/04(月) 23:21:27
>>539
Socketクラスの方です。
このようなプログラムで例外が発生すると、次回起動時にServerSocketを生成する時点で
エラーが発生するようです。
あとacceptは間違いです。すいません。
541デフォルトの名無しさん:2005/07/04(月) 23:22:29
JTableでテーブルの各セルを初期化(空白)にしたいのですが、
全てのセルに対してsetText("")をしていると、
テーブルが大きいと非常に時間がかかってしまい困っています。
効率の良い初期化方法ってありますでしょうか。
542デフォルトの名無しさん:2005/07/04(月) 23:41:01
>>540
「次回起動時に」の問題を解決するのが目的なら、Socket socketの方は関係ない。
server.bind()の前にserver.setReuseAddress(true)すればいい。

「Socket socketのclose()を確実にやるにはどうするか」の件は、Aの
方でfinallyでやろうとしても、最後にaccept()したソケットしか処理
できないんじゃないかい。

543デフォルトの名無しさん:2005/07/04(月) 23:45:33
>>536
参照切らない限りGCされないはずだぜ。
544デフォルトの名無しさん:2005/07/04(月) 23:53:41
>>541
setText?
レンダラを自作してるってこと?
545541:2005/07/05(火) 00:00:59
>>544
ごめんなさい、自分で間違えてました。
テーブルの全てのセルに対して、
setValueAt("", i, j); (i, jはセルのインデックス)
を呼んでます。
これをどうにか高速にできないかなぁと思ってます。
546537:2005/07/05(火) 00:07:42
>>542
ありがとうございました。参考になりました!
547デフォルトの名無しさん:2005/07/05(火) 00:17:52
>>545
TableModelってしってる?
548532:2005/07/05(火) 00:48:07
>>534
気を付けます・・・
549デフォルトの名無しさん:2005/07/05(火) 09:27:29
>>543
>>536はきっと厨房時代に引きこもりになっちゃったんだよ。
外部との接触がなくなった→他者から参照されない、ってことだな。
550デフォルトの名無しさん:2005/07/05(火) 14:15:36
j2sdk1.5.00のjavacで、ソース中に浮動小数点数の0を
リテラルで記述するとjavacが落ちるという
謎の現象に遭遇した……。
1.5.04入れたら直ったけど、何だったんだろう……。
551デフォルトの名無しさん:2005/07/05(火) 18:55:35
AMD64版のJDKは64ビット版のOS用?
それともAMD64搭載マシンだったら通常のXPでもOK?
552デフォルトの名無しさん:2005/07/05(火) 18:56:54
いいわけないじゃない
553デフォルトの名無しさん:2005/07/05(火) 19:18:57
>>549
面白くないですよ。
554デフォルトの名無しさん:2005/07/05(火) 22:00:55
>>448
同じ現象なんですが、どうすればいいんですかね?
555デフォルトの名無しさん:2005/07/05(火) 22:23:58
同一のクラスローダーでクラスを再ロードすることって出来ないのでしょうか?
Javassistでテスト対象のクラスを書き換えながらテストを出来たらいいなぁと思ったのですが…
556デフォルトの名無しさん :2005/07/06(水) 00:16:34
>>383 そのままおまえにそっくりかえしてやるよ
おまえは現実世界であってもきちがいだろうけど
557デフォルトの名無しさん:2005/07/06(水) 01:10:41
一週間以上前のレスに噛み付くきちがい ハッケーン
558デフォルトの名無しさん:2005/07/06(水) 01:14:31
static変数をメソッドの中で定義することは可能ですか?
具体的には、java.util.regex.Patternオブジェクトを毎回生成せずにstatic変数にしているんですが、
特定のメソッドの中でしか使用しないんで、そのメソッドの中で定義できるとうれしいんですが。

private static Pattern pat = Pattern.compile("^\\s*$"); // これをメソッドの中で定義したい
public void foo(String str) {
Matcher m = pat.matcher(str);
...
}
559デフォルトの名無しさん:2005/07/06(水) 01:32:03
>>558
不可能。
C だとできるんだけどね〜、Java でも使えたら良いのにと思う状況に年に何度か遭遇する。
560558:2005/07/06(水) 06:39:31
>>559
ありがとう。なんでできないんですかね。簡単に実現できると思うんだけど。
561デフォルトの名無しさん:2005/07/06(水) 09:28:27
メソッドの中でstaticにする意味って何?
562デフォルトの名無しさん:2005/07/06(水) 09:54:13
>>558
static の意味と変数のライフサイクルちゃんと分かってるか?
563デフォルトの名無しさん:2005/07/06(水) 10:58:59
>>556
図星感溢れる、いいレスですね
564デフォルトの名無しさん:2005/07/06(水) 12:13:29
>>562
あるメソッドの中に限定されたスコープを持つ static 変数ってあったら便利よ?
C/C++ とか使ったことない?
565デフォルトの名無しさん:2005/07/06(水) 12:19:27
Cなら使うけど、C++でつかうようだとクラス設計をちゃんとしたほうがいいよ
スコープを最小にしつつ保持範囲を広げるなんてクラス使えないから使うという感じ
566デフォルトの名無しさん:2005/07/06(水) 12:31:25
private static な変数は public static な変数よりスコープが小さく保持範囲が同じわけだが、
それをメソッドまで縮めると「ノー」? よくクラス設計語ってるねw
567デフォルトの名無しさん:2005/07/06(水) 13:01:23
>>566
クラス変数とローカル変数の違いがあるから単にスコープを縮めて適用していいと
いうことにはならないと思うが。
568デフォルトの名無しさん:2005/07/06(水) 13:22:12
クラス変数をメソッドのスコープに限定するという話ですが「クラス変数とローカル変数の
違いがあるから」ってどういう意味ですか?

「Java でできないのは何か理由があるに違いない、だから Java の仕様を支持しておけば
間違いない」 って感じでもっともらしい理由つけてアプローチする展開は虚しい限り。
過去それで覆されたのはアサーション、enum、テンプレート (ボクシング)、可変引数などがあったな。
569デフォルトの名無しさん:2005/07/06(水) 13:55:50
スコープと保持範囲が一致しないから使いまくればメモリ消費量だけ増えてこまることもあるんじゃね?
メソッドの中まで追いかけないとクラスに結びつくメモリ使用量がわからないというのもアレだ
570デフォルトの名無しさん:2005/07/06(水) 14:02:58
>>568
method static な変数があったとして、それはクラス変数なの?ローカル変数なの?
> クラス変数をメソッドのスコープに限定するという話ですが
これだとクラス変数と読めるが。じゃあクラス変数ではだめな理由は何?
メソッドを使い終わってもローカル変数が生きているのは気持ち悪くないか?

下段は発想が飛躍しすぎ。
571デフォルトの名無しさん:2005/07/06(水) 14:06:34
>>568
アサーション以外はあからさまにC#対策なんだけどなw
つうかJavaって1.4あたりからなんだか方針転換してるんだよなぁ、NIOとかさ。
572デフォルトの名無しさん:2005/07/06(水) 14:45:21
1.4からは理想だけではなく効率をもとめるようになってる

enumはタイプセーフなenumの実装がないとダメという理由で遅れてた
Cのenumならたしかにいらないしね
ダイナミックリンクがデフォのJavaでは危険すぎる

可変長引数はObject配列の書き方を変えて制限しただけ
printfを実装したかったという理由だけかと

一方scanfの実装がアレだが安全性のためには仕方ないか
573デフォルトの名無しさん:2005/07/06(水) 14:57:49
アプレットが実行できません。
test2.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);
}
}
574デフォルトの名無しさん:2005/07/06(水) 15:01:41
質問です。

JavaMail を使ってメールの送信を行おうとしているのですが、題名、本文と
もに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 です。
575デフォルトの名無しさん:2005/07/06(水) 15:15:07
> これだとクラス変数と読めるが。じゃあクラス変数ではだめな理由は何?
だからそのいまさらな考え方が下段だっての。「if(DEBUG) assert(test); で
だめな理由は?」「enum一項目づつにクラス割り当てるのでだめな理由は?」
「多態化でだめな理由は?」「Object[] 渡しでだめな理由は?」
JDK のバージョンが上がるまでは「正論」だった論法な。

> メソッドを使い終わってもローカル変数が生きているのは気持ち悪くないか?
気持ち悪い論はただの主観だな。生きてて欲しいから「こういう機能はない
ですか?」という話になってるんだろ。
576デフォルトの名無しさん:2005/07/06(水) 15:34:22
ちなみに LISP などの関数型言語は、メソッド内に static 変数どころか、イ
ンスタンス変数まで保持できる。こういう関数は、メソッドを一つしか持たな
いオブジェクトのように振舞うことができる。これをclosure(クロージャ、
関数閉包)と呼ぶ。

こういうものに慣れていると、Java というのは、安全で分かりやすいけど、
不自由だと感じる。
577デフォルトの名無しさん:2005/07/06(水) 15:35:59
>>575
>>570の気持ち悪い論とかは確かに主観だな。

ただ、筋を通してemumなどは不要と主張するのならそれはそれでありだと思うし
それを「JDKに採用されたから必要(正義)→不要論は却下(言い訳)」
と決め付けるのもどうかと思われ。
578デフォルトの名無しさん:2005/07/06(水) 15:40:41
>>577
まぁね。
無いものネタでヒートアップさせても何の結論も出ないのは明確だからここらへんで。
579574:2005/07/06(水) 15:58:59
すみません、訂正です。ソースの文字コードは MS932 でした。
呼び出し個所は、こう書いています。

mimeMessage.setSubject(title, "iso-2022-jp");

ここで title が2文字以上だと問題なく送れるのですが、1文字の2バイトコー
ドだとエラーになってしまうのです。1バイトコードだと1文字でも問題ありま
せん。
580デフォルトの名無しさん:2005/07/06(水) 16:12:29
まずはJVMのバージョンさらせ
581574:2005/07/06(水) 16:15:28
SUN の J2SDK 1.4.2 です。
582デフォルトの名無しさん:2005/07/06(水) 16:16:38
そのしただ
583デフォルトの名無しさん:2005/07/06(水) 16:24:27
java version "1.4.2_03"
Java(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)

これで良いでしょうか?
584デフォルトの名無しさん:2005/07/06(水) 16:27:07
03とはかなり古いな
JIS変換で無限ループする有名なバグもちだ
585574:2005/07/06(水) 16:33:57
ぐああ、SDKのバグですか!恥ずかしながら知りませんでした。どうやって回
避したらよいでしょう?!
586573:2005/07/06(水) 16:52:08
インストールし直したら、
うまく行きました。
ありがとうございました。
587574:2005/07/06(水) 17:41:06
プロジェクトリーダの許可を貰って、JavaVM を1.4.2.08に上げました。
問題は起こらなくなりました。ありがとうございました。

それにしても、こんなことで半日潰してしまいました。お恥ずかしい限りです。
588デフォルトの名無しさん:2005/07/06(水) 21:10:09
すみませんが、教えてください。
cp = getContentPane();
cp.add(menuBar, BorderLayout.NORTH);
(この書き方で間違いないはずなんですが・・・)
と書くと画面を最大にしないとメニューバーが現われません。
いろいろ試したのですが、どうしても初期画面に表示されません。

どなたかよろしくお願いします。
589デフォルトの名無しさん:2005/07/06(水) 21:49:29
つ JFrame.setJMenuBar
つ Frame.setMenuBar
590デフォルトの名無しさん:2005/07/06(水) 23:23:05
>>578
俺も参加させてくれ!
クラス変数でなくインスタンス変数の可視性を
メソッドだけに制限したい場合は如何指定すればいいのか?!

というのはさておき

自分的に、可視性についてC#のをパクって欲しいのは
プロジェクトプライベートみたいなのだなぁ。

パッケージプライベートを整合性の最後の境界にするには
(整合性を保つのに必要なクラス一式を同じパッケージに入れるのは)、
結構きついので、ほとんどの場合
言語仕様外の約束事みたいなものが必要に思える。

ところで、あるフレームワークの拡張ポイントのために、
リスナーを表すインタフェースを実装する場合、かつ、
そのフレームワークからの呼び出しに限って
引数にnullを渡さないことが分かっている場合、

そのインタフェースのメソッドの実装(もちろんpublic)に
nullチェックは書く?書かない?
591デフォルトの名無しさん:2005/07/07(木) 07:15:27
>>590
つまんね
592デフォルトの名無しさん:2005/07/07(木) 11:55:03
>>590
そのフレームワーク作った奴が信用ならなければ書く。
593デフォルトの名無しさん:2005/07/07(木) 23:04:22
>>592
信用は関係ありませんね。
594デフォルトの名無しさん:2005/07/07(木) 23:31:28
あるよ。Struts 程度しか使ったことないのか?
595デフォルトの名無しさん:2005/07/07(木) 23:44:34
ああ、信頼できるかどうかにかかわらずやっとけという話なら失礼
596デフォルトの名無しさん:2005/07/08(金) 00:21:28
Stringの日付の文字列を
java.sql.Dateに代入しようとしたとき
どういったやり方があるのでしょうか?

ググって
ttp://home.f02.itscom.net/soukyoku/jtips/hiduke.html
ここなど参考にしたのですが
これはjava.util.Date型みたいで、うまくできませんでした
教えてください
597デフォルトの名無しさん:2005/07/08(金) 00:42:19
sjisのファイルを読み込んでsjisで書き込むプログラムを教えてください。
598デフォルトの名無しさん:2005/07/08(金) 00:57:19
>>596
コンストラクタをよーく見てみよう
599デフォルトの名無しさん:2005/07/08(金) 01:00:26
>>596
java.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){ }
}
600デフォルトの名無しさん:2005/07/08(金) 02:10:29
>>596
java.sql.Date date = java.sql.Date.valueOf("2005-07-07");
601デフォルトの名無しさん:2005/07/08(金) 07:16:09
>>595
それです。
602デフォルトの名無しさん:2005/07/08(金) 16:29:34
Pocket PC を使い始めたので
Java を使って何かプログラムでも書いてみようと考えています。

Pocket PC 上で動作させる Java 環境として
最も広く利用されているもの、あるいは、
オススメなものなど、ありましたらご教示ください。


J2ME CDC の参照実装は Linux 向けしか存在せず
J2ME CLDC PDAP の実装も未公開なようなので
J2ME CLDC MIDP ではじめてみようと考えています。

J2ME CLDC MIDP で開発を行う際の開発環境として
最も広く利用されているもの、あるいは、
オススメなものなど、ありましたらご教示ください。


その他、同分野に関する良著など、
ご存知でしたらご教示いただけると助かります。
603デフォルトの名無しさん:2005/07/08(金) 19:07:22
http://pc8.2ch.net/test/read.cgi/tech/1119115837/
があるけど、どっちが本スレ?
604デフォルトの名無しさん:2005/07/08(金) 20:04:59
ArrayList(item)に入ったデータをスレッドで取得・処理したいんですが、

public class A extends Thread {
 public void run() {
  while (item.getIterator().hasNext()) {
   String proc = (String) item.getIterator().next();
   …
  }
 }
}

この方法以外に、もっとスマートな書き方はないでしょうか?

605デフォルトの名無しさん:2005/07/08(金) 20:10:14
>>604
「スマート」の定義次第
606604:2005/07/08(金) 20:17:59
Aのクラス利用者が
Iterator iter = item.getIterator();
while (iter.hasNext()) {


このように定義されるのを避けたいのです。
607デフォルトの名無しさん:2005/07/08(金) 20:36:26
イテレータで取得されるとまずいのか?ナニソレ
608604:2005/07/08(金) 20:40:36
itemには100件データが入ってるとして、Aのクラスはスレッド実行させ、子スレッドで順次nextを実行させたいのですが。
609デフォルトの名無しさん:2005/07/08(金) 21:15:30
610デフォルトの名無しさん:2005/07/08(金) 21:22:47
イテレータがいやならインデックスアクセスにすれば?
611デフォルトの名無しさん:2005/07/09(土) 00:34:44
宣言を1行で済ませたいのですが

class a{
int x
int y

a(int x, int y){}
}

と言うのは可能ですか?
それとも

a(int _x, int_y){
x=_x;
y=_y;
}

としないとやばいですか?
612好きなだけ一行で書け:2005/07/09(土) 00:44:40
class a { int x; int y; a(int x, int y) { this.x = x; this.y = y; } }
613デフォルトの名無しさん:2005/07/09(土) 00:46:29
>>611はどういう観点から1行にしたいとなったのだろうか
614デフォルトの名無しさん:2005/07/09(土) 01:30:29
>613
ひょっとしてコンパイラがdでもなく古くて
実行数がバイトコードサイズに反映される環境なのかも
615デフォルトの名無しさん:2005/07/09(土) 01:33:18
チョーやばいって感じ。

つーか、試してみればいいじゃん。
616デフォルトの名無しさん:2005/07/09(土) 03:19:39
>>570
> method static な変数があったとして、それはクラス変数なの?ローカル変数なの?

クラス変数に決まってるだろ。変数のスコープがメソッド内になったからといって、クラス変数がローカル変数になるわけじゃない。
つーか、クラス変数とローカル変数の仕組みがわかっとらんとみた。

> これだとクラス変数と読めるが。じゃあクラス変数ではだめな理由は何?

クラス変数でだめなんていってない。クラス変数のスコープをあるメソッドだけに限定したいというだけだ。

> メソッドを使い終わってもローカル変数が生きているのは気持ち悪くないか?

だからクラス変数だといっとるだろが。
あのな、クラス変数とローカル変数はそもそもの仕組みが違うんだよ。クラス変数はヒープ領域、ローカル変数はスタック領域に取られる。それとスコープとの話は別なの。
クラス変数のスコープをメソッドローカルにするのは、技術的に十分可能なんだよ。ぜんぜん難しい話じゃない。
617デフォルトの名無しさん:2005/07/09(土) 03:44:23
>>616
言いたいことはわかるがクラス変数である意味はないと思うぞ。
あるメソッドだけから見えるフィールドってもんがあってもいいだろうから。
618デフォルトの名無しさん:2005/07/09(土) 11:13:55
>>617
もとの議論は、クラス変数をメソッド内で定義したいという話。インスタンス変数のことではない。
しかし
>あるメソッドだけから見えるフィールドってもんがあってもいいだろうから。
これはおもしろい発想だな。
619デフォルトの名無しさん:2005/07/09(土) 14:29:30
>>616
ちょっと考えただけでもスコープが限定されてるので、
コンパイル時に確実な代入によるチェックがしにくくなる、
とかのデメリットがあるね。

> クラス変数のスコープをメソッドローカルにするのは、技術的に十分可能なんだよ。
それ以外の要素を全然考えてないよーな気もするが。
同期処理はするの? しないの? とか。
620デフォルトの名無しさん:2005/07/09(土) 15:13:46
>>619
他にも名前の扱いについて

同名のクラスフィールドは許されるのか?
同名の局所変数、メソッドの引数は?
リフレクションでのアクセスの時の名前は? 等々。
621デフォルトの名無しさん:2005/07/09(土) 18:14:31
>>616
なぜスコープが限定されると
>コンパイル時に確実な代入によるチェックがしにくくなる、
という結論になるのか。詳しい説明希望。

>それ以外の要素を全然考えてないよーな気もするが。
>同期処理はするの? しないの? とか。
スコープが限定されていること意外は、普通のクラス変数と同じでいいだろ。
今のままでもクラス変数は自動的に同期化されるわけじゃないだろ。それと同じで問題ない。

>同名のクラスフィールドは許されるのか?
>同名の局所変数、メソッドの引数は?
>リフレクションでのアクセスの時の名前は? 等々。
これらは全部、許すか許さないかのどちらかに決めればいいだけの話。
shadowingを許すなら何も警告しない、許さないならエラーをだす、それだけ。
心配ならshadowingをまったく許さないようにすればよい。
622デフォルトの名無しさん:2005/07/09(土) 18:38:46
>>621
っつか、そこまで強固にアクセス権限設けたいなら
メソッドのためにクラス一個作ればいいんじゃね?

> これらは全部、
既存のものと違和感無く決められるか? という話。
で、そーゆー事を全く考えてないから
> 許すか許さないかのどちらかに決めればいいだけの話。
とかゆー無神経な言葉が出てくるんだと思われ。

> shadowingを許すなら
shadowing って何? hiding とか隠蔽とかの事か?
623デフォルトの名無しさん:2005/07/09(土) 18:44:42
必ず出てくる 「現行できなくて問題ないから、お前が間違ってる」 論
624デフォルトの名無しさん:2005/07/09(土) 18:49:13
>>623
考え無しのアイデアだね、って言われてるだけにみえるが。

そっか、間違ってるって言われてるように見えるのか。
んじゃ、やっぱり、どっか間違ってるんじゃないか?
625デフォルトの名無しさん:2005/07/09(土) 18:52:04
>>624
それはおまえの被害妄想。
626デフォルトの名無しさん:2005/07/09(土) 19:04:17
>>622
そうだね。メソッド内で、他から見えないクラス変数持ちたいってのは
メソッドが状態持ちたいって事だから、
Java的にはそのためにクラス一つ作るのが正道だと思われ。
627デフォルトの名無しさん:2005/07/09(土) 19:07:10
メソッド内のクラス変数を許したらメソッド内で他から見えないインスタンス変数持ちたいって要求も出てくるんだろうなぁ。
628デフォルトの名無しさん:2005/07/09(土) 19:09:50
おお、なんか再燃してるしw

>>623
まったく、だからもうこの話はやめとこうって言ったのに。
assert や Boxing、可変引数が無かった頃、高説垂れて否定してた現状保守派を思いだすな。
この手のもしあったら話は、現行で問題ない、代替策が有る、じゃあ Java 使うな、といった
意味のない終わり方にしかならないから。
629デフォルトの名無しさん:2005/07/09(土) 19:13:11
>>628
っつか、2ch で騒いでる時点で意味があるとは思えん。
意味のある事したいなら Sun のBBSとか、BugParade 行くとかすればいいじゃん。
630デフォルトの名無しさん:2005/07/09(土) 19:18:24
>>629
同意。
2chでやってる時点で結論に関係なく意味がない終わり方しかしない。
631デフォルトの名無しさん:2005/07/09(土) 19:18:30
>>622
毎回インスタンス生成したくない (元の話題だと正規表現をコンパイルしたくない) から
クラス変数を要求してんだけど、おまえ目の前の論議で思考停止してるだろ。
それに強固な要求を満たすなら、そのクラスは特定のメソッド内からのみ参照可能で
なければならないわけだが、メソッド内で定義した無名 inner クラス使ったところで
インスタンスは毎回作らなきゃならないだろ。
632デフォルトの名無しさん:2005/07/09(土) 19:21:11
>>630
いや、彼は自分の説が支持されたら意味があるんじゃない?
一瞬でも良い気分になれる、とかさ。よくわからんけど。
633デフォルトの名無しさん:2005/07/09(土) 19:24:23
             ___
.            |(・∀・)|
.            | ̄ ̄ ̄
         △
        △l |
   __△|_.田 |△_____
      |__|__門_|__|_____|_____
634デフォルトの名無しさん:2005/07/09(土) 19:24:38
>>631
> 毎回インスタンス生成したくない (元の話題だと正規表現をコンパイルしたくない) から
その場合、static final なクラスフィールドとか、
final なインスタンスフィールド使えれば それほど不満は無いかな。

> メソッド内で定義した無名 inner クラス使ったところで
内部クラス(メンバクラスじゃないよ)では、
クラスフィールドは定義できなかったような?
635デフォルトの名無しさん:2005/07/09(土) 19:31:50
|   
|彡ミ )
|'_、_ | 
|,_ノ`/  莫迦により振り出しに戻る
|...V
|::)   
636デフォルトの名無しさん:2005/07/09(土) 19:33:30
>>631
> 毎回インスタンス生成したくない (元の話題だと正規表現をコンパイルしたくない) から
> クラス変数を要求してんだけど、おまえ目の前の論議で思考停止してるだろ。
ところで、なんでクラス変数じゃないと思考停止になるんだろ?

インスタンス生成時に与えられた正規表現で〜って場合も考えれば
インスタンスフィールドに関しても同じ要求があっても良いのでは?
637デフォルトの名無しさん:2005/07/09(土) 19:36:11
>>636
良いだろ。それは否定しない。
思考停止は「スコープ限定したければクラス定義すれば?」に当てたもの。
638デフォルトの名無しさん:2005/07/09(土) 19:40:23
>>637
読み出し専用の正規表現オブジェクトのスコープを、
そこまでして限定したいのか? ってのが良くわからんのだが。
639デフォルトの名無しさん:2005/07/09(土) 19:42:43
>>637
普通スコープを限定したいのは読み書きする変数
読み書きする変数ってのは状態だから…… と考えたんだが、

そっちの方が思考停止しとらんか?
640デフォルトの名無しさん:2005/07/09(土) 19:45:38
えーと、つまり >>629>>630>>632 あたりでFA? なのか?
641デフォルトの名無しさん:2005/07/09(土) 19:50:47
>>568
っつーか、enum とか可変長引数とかって否定されてたっけか?
個人的には enum は積極的支持してたけどなぁ。
642デフォルトの名無しさん:2005/07/09(土) 19:53:49
>>638-639
ああ、Pattern は immutable だからスコープ広がっても問題ないだろーって
ところで停止してたわけか。何のためにスコープがあるか分かってるよな?

> と考えたんだが、
超後付臭い言い訳ありがとw

どうでもいいけど、ざっと流し読むと 「か?」とか「な?」 で終わる書き込み
(?は全角) が多いのが笑えるw
643デフォルトの名無しさん:2005/07/09(土) 19:56:50
                   ____
    _              | (・∀・) |
   `))             | ̄ ̄ ̄ ̄
    ´             ∧
                <⌒>
                 /⌒\             △  
       _________]皿皿[-∧-∧、       △l |\
    /三三三三三三∧_/\_|,,|「|,,,|「|ミ^!、__△|_.田 | |△_
  __| ̄田 ̄田 / ̄ ̄Π . ∩  |'|「|'''|「|||:ll;|____△|_.田 |△ |____
 /__,|==/\=ハ, ̄ ̄|「| ̄ ̄ ̄ ̄|「| ̄ ̄|      |__|__門_|__|_____|\_
/_| ロ ロ 「 ̄ ̄ ̄ | | 田 |「|  田 田 |「|[[[[||ll.|ロ ロ,/| l⌒l.l⌒l.| |    |「|        |「|ミミミミミミ
644デフォルトの名無しさん:2005/07/09(土) 19:57:41
>>640 は勝利宣言なのか? そうなのか?
645デフォルトの名無しさん:2005/07/09(土) 20:03:42
>>644
そういう1行レスはデフォでスルーするのが話を正しく進めるコツだよ。
て言っても、既に勝ち負けの話になってるから、行き着く先は知れてるけどな。
646デフォルトの名無しさん:2005/07/09(土) 20:04:45
こうして「もしあったら」ネタはいつものように虚しい終わりを告げるのであった

↓次の質問
647デフォルトの名無しさん:2005/07/09(土) 20:11:26
>>642
Pattern が immutable なだけじゃなくて、使い方も読み込み専用じゃん。

で、そこで思考停止しないなら >>638-639、状態ならクラスにするのが正道だと思うんだが。
648デフォルトの名無しさん:2005/07/09(土) 20:15:38
>>647
今度は「?」付けないのか?w
649デフォルトの名無しさん:2005/07/09(土) 20:18:49
>>648
反論のしようも無いと。もしくは時間稼ぎ?
650デフォルトの名無しさん:2005/07/09(土) 20:22:17
粘着乙
651デフォルトの名無しさん:2005/07/09(土) 20:24:02
>>646
まぁ、ネタ主が厨房だから仕方が無いといえば仕方が無い

言語仕様決める奴が見てると思われる BugParade やら Sun の掲示板行けと
言っても 2ch に来やがるし。で、叩かれたら無意味だったとか相手を非難するだけで
叩かれた部分を考えて もっと説得力のある案に とかそーゆー思考も無いみたいだしね
652デフォルトの名無しさん:2005/07/09(土) 20:28:38
>>645
こーゆー話に勝ち負けがあるのかw
行き着く先を決めた奴が誰なのかは一目瞭然だなw
653デフォルトの名無しさん:2005/07/09(土) 20:53:36
>>651
多分君の言うネタ主=>>646 なんだけどな。
変数は必要最小限のスコープで使用できたほうが良いという話をしようとしたら、
いつの間にか現行仕様保守派に囲まれて BugParade 行けって話に誘導
されてたw

このスレも長いからもしもネタがどういう終わり方するかは大体分かってるんだけどな。
でも言語仕様超越してても何かわくわくするアイディアや考え方はないかな〜とか
見てるんだけど、現行以上の話できない奴ばかりで白けて終わりだね。まぁ当然か。

BugParade や Sun の掲示板行けって? 興味あるネタで雑談できれば良いからここ
なんだよw お前もそうだろー? で、まだ続けんの?

>>652
なんか分からんが必死なのは伝わった。
654デフォルトの名無しさん:2005/07/09(土) 21:06:55
>>653
> このスレも長いからもしもネタがどういう終わり方するかは大体分かってるんだけどな。
いや、もしもネタだからじゃなくて、
考え無しにアイデア出しておいて、ちょっと叩かれたら叩いた奴が悪い、
みたいな反応するからだよ。

ちょっとぐらい叩かれても >>568 とか >>628 みたいな反応せずに
前向きに議論してたら支持してくれる奴とか援護してくれる奴が出てくると思うけどね。
655デフォルトの名無しさん:2005/07/09(土) 21:18:07
>>654
だからもともとそんな話する気は無かったんだってばw
656デフォルトの名無しさん:2005/07/09(土) 21:23:28
>>654
どっちが叩いたやつでどっちが叩かれたやつなんだ?
インスタンスメソッド内でクラス変数を定義するなんて、ごく普通の発想だと思うのだが。Cでも関数内でstatic変数できるし。
Javaコンパイラをちょっと改造すりゃすむだけだし、JVMにも何の影響も与えない。
それをむきになって否定する理由を探すやつらの頭がわからん。
そして、否定した理由が間違いだと指摘されたら、2chじゃなくてSunにいえと?あほか、自分の意見が否定されたからといって話をすりかるな。
657デフォルトの名無しさん:2005/07/09(土) 21:26:08
>>655
えーと、要するに叩かれたかったのか?

それとも、
> でも言語仕様超越してても何かわくわくするアイディアや考え方はないかな〜とか
とか期待してたわけ?

> このスレも長いからもしもネタがどういう終わり方するかは大体分かってるんだけどな。
って言ってるのに?
658デフォルトの名無しさん:2005/07/09(土) 21:34:38
>>656
> インスタンスメソッド内でクラス変数を定義するなんて、ごく普通の発想だと思うのだが。
少なくとも、今回の Pattern の例は不適切だね。

> 自分の意見が否定されたからといって
変数は状態。で、状態はインスタンスで保持するのが Java では正道。
これに対する反論がまったく無いんだけど。

> 話をすりかるな。
すりかえた覚えは無いよ。言語仕様変えて欲しいなら Sun に言えば良いだけ。
Sun やら JCP なら言語仕様変えられるんだから、少なくとも 2ch より話が早い。
659デフォルトの名無しさん:2005/07/09(土) 21:46:18
>>656
> Javaコンパイラをちょっと改造すりゃすむだけだし、JVMにも何の影響も与えない。
本当に?

いや、それはオマエがその程度でしか考えてないって事にしかならんと思うが。
例えばインスタンスメソッドでクラス変数を定義する方法を
C言語の関数内の static な変数を模して短絡的に決めれば >>636 みたいに
メソッドローカルなインスタンス変数を作ろうとするときに障害になる可能性もある。
660デフォルトの名無しさん:2005/07/09(土) 21:51:17
> 少なくとも、今回の Pattern の例は不適切だね。
何が不適切? 「状態が変わらないか〜」ってのがその説明なら、不適切という
表現は間違いだな。

> 変数は状態。で、状態はインスタンスで保持するのが Java では正道。
static 変数の存在は否定ですか? 変数のスコープを短くするのは悪ですか?
反論が無いのは「状態をインスタンス変数で〜」なんて脱線してるのがお前だけだから。

>>659
名前のバッティングや隠蔽はタダの決め事でしかない。つーか、そんなん現状でも
あるだろ。何が問題だ?
661デフォルトの名無しさん:2005/07/09(土) 21:57:30
>>660
> 何が不適切?
件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。

> static 変数の存在は否定ですか?
static なメンバ変数の大半は final で修飾された定数なんだけどね。
まぁ必要があれば使うけど、あんましオススメできないね。
662デフォルトの名無しさん:2005/07/09(土) 21:58:37
> >>659
> 名前のバッティングや隠蔽はタダの決め事でしかない。
>>659 は隠蔽の話なんかしてないと思うが?
663654:2005/07/09(土) 22:03:18
>>658
>少なくとも、今回の Pattern の例は不適切だね。
なにがどう不適切なのかさっぱりわからん。変化することのないオブジェクトをクラス変数として定義してるだけだが。
これをインスタンス変数にするほうが不適切。

>変数は状態。で、状態はインスタンスで保持するのが Java では正道。
>これに対する反論がまったく無いんだけど。
変数は値。値が状態を表すこともあるというだけ。今回の例では状態を表してるわけではない。
論点がずれていて、反論するどころか、読み飛ばしていた。ごめんな。

>言語仕様変えて欲しいなら Sun に言えば良いだけ。
言語仕様変えて欲しいというのは、658の勝手な解釈。
「言語仕様がこうなっているのはなんでだろうね」と話していただけ。なのになぜか「Sunに言えばいい」だって。
「郵政民営化って国民のためになるのかな」と話してたら、「文句あるんなら自分で選挙に立候補しろ」といわれた気分。
664デフォルトの名無しさん:2005/07/09(土) 22:04:11
>>660
Sun に言えって話はスルーかw
665デフォルトの名無しさん:2005/07/09(土) 22:07:02
>> 何が不適切?
>件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
それは不適切とは言わない。

>まぁ必要があれば使うけど、あんましオススメできないね。
で、そのスコープを限定できても良いのではという話をしてるわけだが? (インスタンス変数を含めても良い)

>>>659 は隠蔽の話なんかしてないと思うが?
すまんが、お前の脳内でどういう話になってるのか分からない。
666デフォルトの名無しさん:2005/07/09(土) 22:08:20
>>663
> 変化することのないオブジェクトをクラス変数として定義してるだけだが。
メソッドにスコープを限定する必要は?
Pattern は immutable だし、final にしとけば変更される必要も無いから。

> 今回の例では状態を表してるわけではない。
で、今回の例は上記により不適切なんだが。

> 「言語仕様がこうなっているのはなんでだろうね」と話していただけ。
そうは見えないんだが。

> 「文句あるんなら自分で選挙に立候補しろ」といわれた気分。
まぁ、文句あるんなら選挙で投票しろ、ぐらいかな。
選挙に立候補しろ、ぐらいの論調だったら「新しい言語作れ」って言うから。
667デフォルトの名無しさん:2005/07/09(土) 22:10:28
>>665
>それは不適切とは言わない。
必要性が説明しにくい例が不適切じゃないとでも?

>すまんが、お前の脳内でどういう話になってるのか分からない。
相手を叩くためだけに反論するのを止めたら理解できると思うよ。
668デフォルトの名無しさん:2005/07/09(土) 22:13:27
>>665
> それは不適切とは言わない。
いや、不適切だろ。

private static final Pattern pat = Pattern.compile("^\\s*$"); じゃいけないの?
って言われたらクラス内で別の箇所でも pat って名前を使いたい、ぐらいしか言えなくらなんか?
669デフォルトの名無しさん:2005/07/09(土) 22:13:38
>>666
>メソッドにスコープを限定する必要は?
別のメソッドで変数名スペルミスしたときのバグになる。つまり意図しないところで使われて問題に
なることがある。つか、そんなもんスコープを限定する必要性理解してればすぐ分かるだろ。
670デフォルトの名無しさん:2005/07/09(土) 22:15:46
>>669
> 別のメソッドで変数名スペルミスしたときのバグになる。
スコープ限定のコアな理由が隠蔽じゃなくてスペルミス防止なのかよ。
671デフォルトの名無しさん:2005/07/09(土) 22:17:24
> 別のメソッドで変数名スペルミスしたときのバグになる。つまり意図しないところで使われて問題に
> なることがある。つか、そんなもんスコープを限定する必要性理解してればすぐ分かるだろ。
オマエがスコープを限定する必要性をどう理解してるかが分かった
うんうん、たしかにスペルミスは防止しないといけないねぇ
672デフォルトの名無しさん:2005/07/09(土) 22:17:55
>>すまんが、お前の脳内でどういう話になってるのか分からない。
>相手を叩くためだけに反論するのを止めたら理解できると思うよ。

それはお前。そうでなければ変数名のバッティング以外で >>659 の何が問題なのか、
お前の脳内問題を言ってみろ。
673デフォルトの名無しさん:2005/07/09(土) 22:18:28
>別のメソッドで変数名スペルミスしたときのバグになる
みたいな必要性しか主張できなくなるから、不適切なんだろーな
674デフォルトの名無しさん:2005/07/09(土) 22:19:22
>>659
>本当に?
本当。Javaじゃなくてもいいから、コンパイラとVMを作ってみ。
中身がわかれば、スコープを限定したところでクラスファイルに影響を与えないことなんかすぐわかる。

>いや、それはオマエがその程度でしか考えてないって事にしかならんと思うが。
おまえがどのくらい考えてものをいってるのかしらんが、少なくともクラス変数とローカル変数の仕組みぐらいはわかってるんだろうな。

>例えばインスタンスメソッドでクラス変数を定義する方法を
>C言語の関数内の static な変数を模して短絡的に決めれば >>636 みたいに
>メソッドローカルなインスタンス変数を作ろうとするときに障害になる可能性もある。
なにがどう障害になるのか、わかりやすく説明してくれ。


>>661
>件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
はぁ?「あるメソッドでしか使わないからスコープをそのメソッドのみに限定する」、すげー簡単じゃん。
何が説明しにくいの?

>static なメンバ変数の大半は final で修飾された定数なんだけどね。
>まぁ必要があれば使うけど、あんましオススメできないね。
そりゃ、おまえがそういう使い方しかしてないってだけじゃん。
Singletonパターンとかでクラス変数はしょっちゅうつかうけどな。
675デフォルトの名無しさん:2005/07/09(土) 22:20:02
このスレって、いつから「もしあったら」ネタで雑談するスレになったの?
質問スレは重複してるし面白いネタなら歓迎だが、つまんないからいい加減終了してほしいのだが。

#反応してる側が相手にするのやめないと終わらんから。頼むよorz
676デフォルトの名無しさん:2005/07/09(土) 22:20:55
おいおい、スペルミスは例の一つだ。その後にブラックボックス化になるよう書いてんだろ。
何どうでもいいところ突っ込んでんだ?
677デフォルトの名無しさん:2005/07/09(土) 22:22:41
>>672
単純にメソッド内で
static 型名 識別子 <= 初期化子>;
と書いたらクラス変数になるという仕様にした場合、
メソッドローカルなインスタンス変数を追加しようとした場合はどーすんの?

新しく local みたいな単語を予約語にするにしても、
既に static でクラス変数になるという仕様があると弱くなるよね。
メソッドローカルなインスタンス変数とメソッドローカルなクラス変数の
一貫性もとりにくいし。
678デフォルトの名無しさん:2005/07/09(土) 22:24:03
>>674
> Singletonパターンとかでクラス変数はしょっちゅうつかうけどな。
Singleton で使うときって、普通は final で修飾しないか?
679デフォルトの名無しさん:2005/07/09(土) 22:25:16
>Javaじゃなくてもいいから、コンパイラとVMを作ってみ。
実装できるってレベルと仕様の設計ができるってレベルは違うのよね、悲しいけど
680デフォルトの名無しさん:2005/07/09(土) 22:27:15
>あるメソッドでしか使わないからスコープをそのメソッドのみに限定する
例としては不適切だな。

>>668 みたいに言われたらおわりだし。
681デフォルトの名無しさん:2005/07/09(土) 22:28:46
> メソッドローカルなインスタンス変数を追加しようとした場合はどーすんの?
質問に質問で返すか、しかも結局問題は名前のバッティングかよw
言語のセマンティクス変わる事になるからキーワード追加だろうが何でもできるだろ。

> 既に static でクラス変数になるという仕様があると弱くなるよね。
何が弱くなるの? 一貫性って名前の? 脳内問題とかいわれたくなかったら第三者に伝わる
言葉でおながいしますよ。
682デフォルトの名無しさん:2005/07/09(土) 22:28:52
>おいおい、スペルミスは例の一つだ。
それしか考え付かなかったんでしょ。
Pattern の例でブラックボックスにする価値ってどこにあるのよ?
683デフォルトの名無しさん:2005/07/09(土) 22:31:21
>しかも結局問題は名前のバッティングかよw
名前っつーか、文法のバッティングなんだけどね

>言語のセマンティクス変わる事になるからキーワード追加だろうが何でもできるだろ
無駄にキーワード追加して言語が汚くなっても構わないのか
684デフォルトの名無しさん:2005/07/09(土) 22:32:12
> 言語のセマンティクス変わる事になるからキーワード追加だろうが何でもできるだろ。
assert追加した時の悲劇を繰り返しても良い、と?
685デフォルトの名無しさん:2005/07/09(土) 22:33:20
>>680
何で Java では C のようにメソッドの最初でローカル変数宣言するのではなく、本当に
必要なところで宣言するか知ってる?
それ以前に何でスコープが必要か理解してる? 入門書レベルでいいからさ。
686デフォルトの名無しさん:2005/07/09(土) 22:36:14
>>685
スペルミスしないためでしょw

っつか、Pattern の例だと immutable だし、
pat 自体はクラス内で隠蔽できるし final つけられるから
そーゆー解釈にしかならんが。
687デフォルトの名無しさん:2005/07/09(土) 22:36:43
>>677
>メソッドローカルなインスタンス変数を追加しようとした場合はどーすんの?
知るかよ、そんなの。「メソッドローカルなインスタンス変数」を追加したいのはおまえなんだから、おまえが考えろ。

>新しく local みたいな単語を予約語にするにしても、
>既に static でクラス変数になるという仕様があると弱くなるよね。
なにがどう弱くなるのかさっぱりわからん。

>メソッドローカルなインスタンス変数とメソッドローカルなクラス変数の
>一貫性もとりにくいし。
どういう一貫性だよ。おれはおまえの頭の中覗けるわけじゃないんだから、わかるようにかいてくれ。

>>678
>Singleton で使うときって、普通は final で修飾しないか?
finalつける方法もあるし、つけない方法もあるだろ。
インスタンスオブジェクトの生成が重いときは、必要になるまで生成しないほうがよい。
そのときはfinalにしない。
688デフォルトの名無しさん:2005/07/09(土) 22:36:46
今度はキーワード追加に食いついてきたか。
例じゃなく本質的なところに来いよ。自信ないのか?
689デフォルトの名無しさん:2005/07/09(土) 22:38:51
>>687
> 知るかよ、そんなの。「メソッドローカルなインスタンス変数」を追加したいのはおまえなんだから、おまえが考えろ。
だから、>>659>>636 がそーゆー事を考えてない案だって言ったわけ。おわかり?
690デフォルトの名無しさん:2005/07/09(土) 22:39:34
>>688
本質的なところね。何で Sun に直接言わないの?
691デフォルトの名無しさん:2005/07/09(土) 22:39:37
>>686
だから、必要以上のスコープは弊害しか起きないってまだ認めたくないのか?
これは immutable な Pattern に特化した話も含んでる。
692デフォルトの名無しさん:2005/07/09(土) 22:39:45
>>680
>668 みたいに言われたらおわりだし。
private static final Pattern pat = Pattern.compile("^\\s*$"); のことか?
finalにするかどうかが問題じゃないだろ。「スコープを限定したい」というのがもともとの話じゃないのか。
なぜfinalにしたらおわりなのか。
693デフォルトの名無しさん:2005/07/09(土) 22:40:13
>>690
それは本質的すぎ。それ言うと続かなくなるよ。
694デフォルトの名無しさん:2005/07/09(土) 22:41:36
>>691
例として不適切だということを説明しただけだが。
695デフォルトの名無しさん:2005/07/09(土) 22:42:20
>>692
> なぜfinalにしたらおわりなのか。
弊害がスペルミスによる誤用ぐらいしかないから。
696デフォルトの名無しさん:2005/07/09(土) 22:42:29
>だから、>>659>>636 がそーゆー事を考えてない案だって言ったわけ。おわかり?
考える必要のないことを出してくるなよ。
おまえのいってるのは、話を否定するためだけに無理やり別の要求をだしてるの。おわかり?
697デフォルトの名無しさん:2005/07/09(土) 22:42:50
>>690
Java 言語仕様の話だけしてるんじゃないんだけど、莫迦ですか?
698デフォルトの名無しさん:2005/07/09(土) 22:43:34
>> なぜfinalにしたらおわりなのか。
>弊害がスペルミスによる誤用ぐらいしかないから。

おまえ実務経験浅そうだな。
699デフォルトの名無しさん:2005/07/09(土) 22:45:55
>>688
メソッド内にスコープを限定したい変数の例を出してこないと説得力ないよ。

スコープの話なら、C++ の protected みたく、パッケージ内では使用不可だけど、
継承したクラスだけが使用できるアクセス指定子があっても良い訳だし、
あっても良いって話であれば、何でもあって良いわけだから。
特に これはあった方が良いって言えるだけの材料はあった方が良いと思うけどね。
700デフォルトの名無しさん:2005/07/09(土) 22:46:19
>弊害がスペルミスによる誤用ぐらいしかないから。
はあ?弊害があるからスコープを限定したい、っていってるわけじゃないだろ。
この変数はこのスコープでしか使わない、ということを構文的に明示するために、スコープを限定するんじゃない。
701デフォルトの名無しさん:2005/07/09(土) 22:46:44
>Java 言語仕様の話だけしてるんじゃないんだけど
じゃ、なんでJavaスレでやってるんだよw
702デフォルトの名無しさん:2005/07/09(土) 22:47:53
>>701
Java の話が大きく絡んでるから。莫迦?
703デフォルトの名無しさん:2005/07/09(土) 22:50:30
>メソッド内にスコープを限定したい変数の例を出してこないと説得力ないよ。
オレ的には最初のPatternの例で十分説得力あるんだが。
704デフォルトの名無しさん:2005/07/09(土) 22:50:58
>>702
じゃ、なんで Sun に言わないわけ?
705デフォルトの名無しさん:2005/07/09(土) 22:52:12
> メソッド内にスコープを限定したい変数の例を出してこないと説得力ないよ。
それが Pattern の話だろ。
だが

static final 宣言すれば問題ない
 ↓
不必要にスコープを大きくするのは不適切
 ↓
例出せよ

の無限輪廻地獄。
706デフォルトの名無しさん:2005/07/09(土) 22:52:40
>>704
ループさせて楽しいか? そうか楽しいか。
707デフォルトの名無しさん:2005/07/09(土) 22:53:31
>>703
だから、Pattern の例は immutable だし、
final にすれば変更不能にできるし、private にすればクラス内に隠蔽できる。

仮にメソッド内ローカルなクラス変数ができても
スペルミスの対策ぐらいにしかならない、って意味で適切な例ではない。
あぁ、後は発案者の精神的安定には寄与するかもしれない。
708デフォルトの名無しさん:2005/07/09(土) 22:55:49
>>705
じゃ、話をすすめようか。
不必要にスコープが大きくなっているのは特定のメソッドでしか使用しないクラス変数だけじゃない。
>>699 みたいに、パッケージ内では使用されたくないけど、継承先では使用して欲しいって場合もある。

メソッド内ローカルのクラス変数だけが特別に必要な理由は?
709デフォルトの名無しさん:2005/07/09(土) 22:56:56
>>706
まぁ、ループさせてんのは適切な例出さない方だしねぇ。
楽しいんじゃないの?たぶん。
710デフォルトの名無しさん:2005/07/09(土) 22:56:58
> スペルミスの対策ぐらいにしかならない、って意味で適切な例ではない。
誤用が防げるなら十分有用。
お前の言ってることが正しければ、Java には C/C++ のように boolean 型はいらないということになる。
711デフォルトの名無しさん:2005/07/09(土) 22:57:08
>>699
クラス変数の使い方が想像できない>>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; }
}

どちらの例でも、クラス変数はある特定のメソッドでしか使われてない。
712デフォルトの名無しさん:2005/07/09(土) 22:58:54
>パッケージ内では使用されたくないけど、継承先では使用して欲しいって場合もある。
オマエこそ例をだせよ。
713デフォルトの名無しさん:2005/07/09(土) 22:59:18
>>711
> public synchronized VeryLargeObject getInstance() {
static 忘れてるよw
714デフォルトの名無しさん:2005/07/09(土) 23:00:09
> メソッド内ローカルのクラス変数だけが特別に必要な理由は?
だからそのメソッド内でしか使用しないクラス変数を文法上で明記することだと言ってんのに。
715デフォルトの名無しさん:2005/07/09(土) 23:00:41
>>712
FilterInputStream みたいなものを作る場合、protected InputStream in は継承先からは使用されても良いが
同パッケージ内からは使用できなくてもかまわない。
716デフォルトの名無しさん:2005/07/09(土) 23:02:49
>>714
Singleton の場合ってメソッドローカルに出来る事による利点がそれほどあるとは思えんが。
後半の場合は二つのメソッドから使用されてるので >>636 みたいな安易な方法じゃ無理。
717デフォルトの名無しさん:2005/07/09(土) 23:03:14
>だから、Pattern の例は immutable だし、
>final にすれば変更不能にできるし、private にすればクラス内に隠蔽できる。
immutableとかfinalだとかprivateとかはどれも関係ない。なんでそんな関係ないところをだしてくるの?
今議論になっているのは、変数のスコープを限定したいということ。
あるクラス変数が特定のメソッドでしか使われないことを、ソースコード上で構文として明示的に示したい。
メソッド内でクラス変数が定義できたらそれが実現できるよね、という話。
なんで変更不可とかクラス内に隠蔽とかでてくるわけ?
718デフォルトの名無しさん:2005/07/09(土) 23:04:38
>>717
> なんで変更不可とかクラス内に隠蔽とかでてくるわけ?
例が不適切だから。
719デフォルトの名無しさん:2005/07/09(土) 23:07:31
どんな例をだしても、
>利点がそれほどあるとは思えんが。
で否定されるYokannヨカーン
720デフォルトの名無しさん:2005/07/09(土) 23:08:48
tomcatのmanagerで「(IPアドレス)/」のコンテキストパス(デフォルトではROOTのやつ)に
ウェブアプリを配置したいのですが、どうしたらいいのですか?
721デフォルトの名無しさん:2005/07/09(土) 23:11:11
>>715
それこそ例として不適切。
722デフォルトの名無しさん:2005/07/09(土) 23:12:01
>>721
どこが?
723デフォルトの名無しさん:2005/07/09(土) 23:12:22
>>717
単に話の意図を汲み取りきれてないからだろ。Java に限らずスコープを限定する事が推奨されてるのは
なぜかちょっと調べれば分かると思うんだが、かたくなに「immutable を static final 宣言すれば問題ない」
「利点があるとは思えないので不適切」という御主張。
724デフォルトの名無しさん:2005/07/09(土) 23:15:04
>>710
影響範囲が違うよ、boolean はあらゆるところで使われるけど、
Pattern pat の場合はクラス内で気をつければよいだけだからね。
725デフォルトの名無しさん:2005/07/09(土) 23:16:15
>>722
「利点がそれほどあるとは思えない。」
726デフォルトの名無しさん:2005/07/09(土) 23:16:44
>>725
どのへんが?
727デフォルトの名無しさん:2005/07/09(土) 23:19:20
>>723
スコープを限定するのは良いことだが、
細かいスコープを限定するために修飾子を沢山作ったりしたら際限がない。
あれば便利だが、なくても構わん、という程度ではないか?
728デフォルトの名無しさん:2005/07/09(土) 23:20:05
>>727
すでにstaticというキーワードがあるんだが。
729デフォルトの名無しさん:2005/07/09(土) 23:20:42
>>727
あれば便利だし、実現するのも簡単、という話ではないか?
730デフォルトの名無しさん:2005/07/09(土) 23:24:08
>>728 >>729
で、>>677 将来の拡張性が犠牲になるのでは?
731デフォルトの名無しさん:2005/07/09(土) 23:24:26
>>724
いや、そういう話ではなくてさ。プログラマの誤用を防ぐ方向に考える事の有用性のこと。
boolean 導入は型を明示して C/C++ のような条件分内の代入などの誤用を防いでいる。
スコープもしかり。明示できること = 誤用の防止について「注意すれば良い」などと
考えてる奴はかなり後退的。
732デフォルトの名無しさん:2005/07/09(土) 23:24:39
>>730
で、そんなん知ったことか。
733デフォルトの名無しさん:2005/07/09(土) 23:25:49
>>732
で、そっちが知ったことでないなら、
メソッド内ローカルなクラス変数なんて知ったことか。
734デフォルトの名無しさん:2005/07/09(土) 23:28:56
> 明示できること = 誤用の防止について「注意すれば良い」などと
いや、あらゆる事を明示していたら際限がない。

個人的には好きだった adding generics のどっかのバージョンにあった
読み込み専用な配列とかも却下されたみたいだし。まぁ、文法はアレだったけど。
735デフォルトの名無しさん:2005/07/09(土) 23:31:56
>読み込み専用な配列
あったあった。type[+] identifier とかやるんだっけ?
736デフォルトの名無しさん:2005/07/09(土) 23:33:08
プログラマが入れるバグなんて誤用 (無知・誤解含む) 以外の何があるのかと。
737デフォルトの名無しさん:2005/07/09(土) 23:33:37
>>730
だからそんな「将来の拡張」を話してるのはおまえだけ。しかも話を捻じ曲げるために持ち出している。
そもそも、メソッド内でstaticが使える・使えないという話と、「メソッドローカルなインスタンス変数」の話は関係ないだろ。
メソッド内でstaticが使えるようになったら、「メソッドローカルなインスタンス変数」が実現しにくくなるのか?
メソッド内でstaticが使えなければ、「メソッドローカルなインスタンス変数」が実現できるのか?
メソッド内でstaticが使えようが使えまいが、「メソッドローカルなインスタンス変数」の実現性には影響しない。

それより>>677
>既に static でクラス変数になるという仕様があると弱くなるよね。
何が弱くなるのかすげー気になる。
738デフォルトの名無しさん:2005/07/09(土) 23:34:41
>>734
件のクラス変数より読み込み専用の配列の方が欲しいかも。
739デフォルトの名無しさん:2005/07/09(土) 23:35:54
まあ少なくとも、メソッドローカルなクラス変数が簡単に実現できるというのはわかる。すでに予約語があるしな。
メソッドローカルなインスタンス変数は新しい予約語を導入しないと難しいんじゃないか。
740デフォルトの名無しさん:2005/07/09(土) 23:37:57
いいかげんにしろ
>>720みたいな質問が埋もれる

TomcatがのデフォでROOT使ってるからそれを差し替えるだけでいいんじゃないかな
741デフォルトの名無しさん:2005/07/09(土) 23:39:11
>>739
予約語があるっつーよか C言語の文法を真似すれば、だね。
742デフォルトの名無しさん:2005/07/09(土) 23:39:12
goto のような予約されてるが使われてないキーワードがいくつかあったはずだが、
使えそうなものはなかったなか。const も予約語だったな。
743デフォルトの名無しさん:2005/07/09(土) 23:39:41
>>739
そう、その難しいことをどこからともなく持ち出してきて、簡単なほうも無理やり否定しようとしているのが>>677
744デフォルトの名無しさん:2005/07/09(土) 23:40:06
>>740
むしろさっさと埋めて合流したほうが良いんだが。
745デフォルトの名無しさん:2005/07/09(土) 23:41:13
>>743
はぁ? スコープを限定できるのは善なんだろ?
だったら難しいも簡単もなくスコープは限定できるべきだろ?
746デフォルトの名無しさん:2005/07/09(土) 23:42:50
>>743
言語仕様変えるのって簡単なんだ
だったら Sun に言って変えて貰えば
747デフォルトの名無しさん:2005/07/09(土) 23:44:24
>>745
で、そんなん言ってたら際限がない。
748デフォルトの名無しさん:2005/07/09(土) 23:44:39
なんか話をそらしたい人がいる
749デフォルトの名無しさん:2005/07/09(土) 23:45:09
>>747
で、そんなん言ってたらメソッドローカルのクラス変数の時点で際限がない。
750デフォルトの名無しさん:2005/07/09(土) 23:45:39
>スコープを限定できるのは善なんだろ?
そうだよ。だから簡単なものは実現してほしいねといっている。実現が難しいものはあとまわしにしてもいいし、
そもそもメソッドローカルクラス変数ができたからといって、なぜそれがメソッドローカルインスタンス変数の妨げになるのかわからん。
>>677の「弱くなる」がキーワードみたいなのだが、説明してくれないし。
751デフォルトの名無しさん:2005/07/09(土) 23:46:17
>>749
いや、C言語で既知の方法で実装できそうだから、とっととやれって話じゃないの?
752デフォルトの名無しさん:2005/07/09(土) 23:47:40
>>750
> そもそもメソッドローカルクラス変数ができたからといって、なぜそれがメソッドローカルインスタンス変数の妨げになるのかわからん。
メソッドローカルのクラス変数の宣言に static 以外のキーワード使いたくなるかもしれないから。
753デフォルトの名無しさん:2005/07/09(土) 23:54:27
>static 以外のキーワード使いたくなるかもしれないから。

はーい先生、質問があります。

質問1. 使いたいのはどんなキーワードでしょうか。
質問2. そして、staticじゃいけない理由は何でしょうか。
質問3. static以外のキーワードを使ったとして、メソッドローカルインスタンス変数の実現と何の関係があるんでしょうか。

つーか、使いたくなる「かもしれない」なんてことを理由にするとは、よほどお困りと見える。
754デフォルトの名無しさん:2005/07/09(土) 23:57:55
> 使いたいのはどんなキーワードでしょうか。
local とか出てなかったっけ?

> そして、staticじゃいけない理由は何でしょうか。
static でメソッドローカルのクラス変数にするんでしょ?

> static以外のキーワードを使ったとして、メソッドローカルインスタンス変数の実現と何の関係があるんでしょうか。
メソッドローカルインスタンス変数とメソッドローカルクラス変数で一貫性が無くなる。
755デフォルトの名無しさん:2005/07/09(土) 23:59:02
そんなに欲しいならなんで Sun に直訴しないで 2ch で騒いでるの?
756デフォルトの名無しさん:2005/07/09(土) 23:59:31
>>755
・実は欲しくない
・実は騒ぐのが目的
757デフォルトの名無しさん:2005/07/10(日) 00:00:41
際限がないって、メソッドローカルなクラス変数を特定のクラスにのみ公開したい
とか、そんなこと言ってるの?

クラス変数は public > protected > package private > private で隠蔽性を確保してる。
利用できるスコープもしかり。メソッドローカルなクラス変数は private より狭いスコープに
なるだけだから、影響範囲が限定的になるだけで開発側としての副作用は… 別に思い
つかないな。

この順序性というか構造を崩すような無理やりなスコープでなければ「際限が無い」ってことはないだろ。
758デフォルトの名無しさん:2005/07/10(日) 00:01:39
>>754
よくよめ。
>メソッドローカルのクラス変数の宣言に static 以外のキーワード使いたくなるかもしれないから。
メソッドローカルのインスタンス変数についてじゃない。
メソッドローカルのクラス変数にstatic以外を使いたいんだと。
759デフォルトの名無しさん:2005/07/10(日) 00:04:53
>>757
> この順序性というか構造を崩すような無理やりなスコープでなければ「際限が無い」ってことはないだろ。
ありとあらゆるものを明示的に宣言したら際限がない。
具体的には、>>711 の後半のパターンとか。

> 開発側としての副作用は… 別に思いつかないな。
staic の多義性の問題とか出てくるかもね。
今でも複数の意味に使われてるし。
760デフォルトの名無しさん:2005/07/10(日) 00:05:03
>>755
いや、実現性の話も出てるが『スコープ限定は不適切』論が出てるから騒いでるんだろ。
761デフォルトの名無しさん:2005/07/10(日) 00:07:39
>>758
>メソッドローカルインスタンス変数とメソッドローカルクラス変数で一貫性が無くなる。
から、メソッドローカルのクラス変数で static 以外のキーワードを使いたいんだろ。

メソッドローカルクラス変数とメソッドローカルインスタンス変数で同じキーワード使いたいんじゃないの?
762デフォルトの名無しさん:2005/07/10(日) 00:08:21
>>760
誰が『スコープ限定は不適切』なんていったんだ?
763デフォルトの名無しさん:2005/07/10(日) 00:09:52
>staic の多義性の問題とか出てくるかもね。
また新しい理由を考えたようだな。自分を守るのに必死な759がんばれ。

>今でも複数の意味に使われてるし。
Javaで複数の意味に使われてるっけ。Cではそうだけど。
764デフォルトの名無しさん:2005/07/10(日) 00:10:10
『例が不適切』と言っていたのが、
いつの間にか『スコープ限定は不適切』になってるのは?
765デフォルトの名無しさん:2005/07/10(日) 00:11:56
>>759
文法上、「節」になってるのは クラス > メソッド (>メソッド内のブロック) の順序だから、
2つ以上のメソッドを跨ぐスコープを持つ変数ってのはクラス変数にしかなり得ないな。
順序性とか構造と言ったのはそういうこと。
766デフォルトの名無しさん:2005/07/10(日) 00:14:05
>>765
え? Java では局所クラスやら無名クラスがあるから、
2つ以上のメソッドを跨ぐスコープの局所変数ってできるよ?

あと、クラス変数だけじゃなくてインスタンス変数もね。
767デフォルトの名無しさん:2005/07/10(日) 00:18:15
言葉っつらに反応する奴多数。

>>766
んー、30 秒だけ考えてみたがどういうことか分からん。final 宣言したローカル変数が
無名 innter クラスのメソッドから見えるという話をしてるのか?
768デフォルトの名無しさん:2005/07/10(日) 00:19:57
>>767
そゆ事。
769デフォルトの名無しさん:2005/07/10(日) 00:24:34
>言葉っつらに反応する奴多数。
反応されるだけの間違いをしてると思うが。
770デフォルトの名無しさん:2005/07/10(日) 00:31:25
>>768
確かにそうだが、俺が言いたいこととはちょっと違うかな。

>>769
『不適切』で茶化しただけだがw
素直に『スコープ限定は不要』論、と言ったほうが良かったようだな、これは失敗。
771デフォルトの名無しさん:2005/07/10(日) 00:34:15
シングルトン・ラブなオレとしては、メソッドローカルなクラス変数は魅力的に思える。
772デフォルトの名無しさん:2005/07/10(日) 00:36:41
>>770
> 素直に『スコープ限定は不要』論、と言ったほうが良かったようだな、これは失敗。
いや、メソッドローカルのクラス変数だけ特別扱いしてスコープ限定する意味あるの? って主張してるんだが。

つまり、特定の一つのメソッドでしか使わないクラス変数ってそんなに多いか?
個人的には >>699 みたいな継承オンリーのスコープのが欲しいと思う回数が多い。
773デフォルトの名無しさん:2005/07/10(日) 00:40:12
>>770
なんだ、メソッドローカルのクラス変数が欲しい、じゃなくて
スコープ限定=善、それを否定する奴は悪になってたのか。
774デフォルトの名無しさん:2005/07/10(日) 00:46:08
>>771
個人的にはシングルトンだったらメソッドローカルのクラス変数みたいな小手先の解決策取らんで
singleton とかのキーワード付けてクラス宣言する、みたいにした方が良いような気がする。
775デフォルトの名無しさん:2005/07/10(日) 00:46:36
>>772
意味があるとずっと主張してるんだが。
例をあげると、「それは不適切」とかなんとかきってすてるし。
しかもなぜ不適切かというと「理由として弱い」だとさ。
結局、「おれには必要ないから却下、おれが必要な継承オンリーのスコープが正義」というのが本音だろ。
776デフォルトの名無しさん:2005/07/10(日) 00:46:36
>>772
多いよ。元の話の Pattern のような構築に時間がかかるが不変なインスタンス、
getInstance() しかない Singleton、共有不要なメソッド内の定数、メソッド内でしか
使用しない定数テーブルや何かの判定用の定数Setもそう。
777デフォルトの名無しさん:2005/07/10(日) 00:47:38
> スコープ限定=善、それを否定する奴は悪になってたのか。
悪で無い理由は? 「例が不適切」だから?w
778デフォルトの名無しさん:2005/07/10(日) 00:49:56
>>775
> 共有不要なメソッド内の定数、メソッド内でしか
> 使用しない定数テーブルや何かの判定用の定数Set
定数でメソッド内に限定する意味あるの?
779デフォルトの名無しさん:2005/07/10(日) 00:50:26
>>777
悪でないとは言ってないよ。っつか、誰もんな事言ってないし。
780デフォルトの名無しさん:2005/07/10(日) 00:52:02
>>779
で、何が言いたかったの?
781デフォルトの名無しさん:2005/07/10(日) 00:52:42
>>775
> 例をあげると、「それは不適切」とかなんとかきってすてるし。
少なくとも、Pattern は不適切だろ。
切って捨てられても文句は言えない。

> しかもなぜ不適切かというと「理由として弱い」だとさ。
そーゆー時に「理由として弱い」なんて言ったっけか?
782デフォルトの名無しさん:2005/07/10(日) 00:53:06
>>780
メソッドローカルのクラス変数は必要ない。
783デフォルトの名無しさん:2005/07/10(日) 00:53:14
>定数でメソッド内に限定する意味あるの?

そのメソッドでしか利用しないなら、限定する意味ありありじゃん。わかっていってるのかな?
784デフォルトの名無しさん:2005/07/10(日) 00:54:12
>>783
定数でない変数よりは限定する必要は少ないよね?
もちろんわかってるよね?
785デフォルトの名無しさん:2005/07/10(日) 00:54:18
>>781
ちょっとまて、なんであの例が不適切なんだ?
786デフォルトの名無しさん:2005/07/10(日) 00:55:47
>>785
だ・か・ら、スコープ限定のメリットが定数でない変数やら可変オブジェクトと比べて少ないから。
787デフォルトの名無しさん:2005/07/10(日) 00:57:07
>>781
> 件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
おまえは「説明しにくい」という感想しか言ってないな。>>674 はスルーか?
788デフォルトの名無しさん:2005/07/10(日) 00:57:15
> そのメソッドでしか利用しないなら、限定する意味ありありじゃん。わかっていってるのかな?
スコープ以外は何も見てないんだろ。
789デフォルトの名無しさん:2005/07/10(日) 00:58:01
>>782
ま た ル ー プ か
790デフォルトの名無しさん:2005/07/10(日) 00:58:58
>>787
「理由として弱い」で検索しても出てこないわけだ。

あとね、感想じゃないよ。
791デフォルトの名無しさん:2005/07/10(日) 00:59:30
>>789
だってループさせるように誘導するんだもん。
792デフォルトの名無しさん:2005/07/10(日) 01:00:55
>>784
わかってたら >>776 みたいな例ださんだろ。
793デフォルトの名無しさん:2005/07/10(日) 01:00:59
>>786
確かに immutable ならメリットは少ないな。
お前が Pattern の話を持ち出してスコープから話題をそらしたかったのは良く分かった。
794デフォルトの名無しさん:2005/07/10(日) 01:01:25
>だ・か・ら、スコープ限定のメリットが定数でない変数やら可変オブジェクトと比べて少ないから。
「オレ様にとってメリットが少ないから」宣言キター

795デフォルトの名無しさん:2005/07/10(日) 01:02:20
今度は定数定義で話題そらしですか。
荒探しに忙しそうですね。
796デフォルトの名無しさん:2005/07/10(日) 01:03:51
>>790
で、>>674 はスルーか?

>>>661
>>件の Pattern が特定のメソッド以外から見えてはいけない必要が説明しにくいから。
>はぁ?「あるメソッドでしか使わないからスコープをそのメソッドのみに限定する」、すげー簡単じゃん。
>何が説明しにくいの?
797デフォルトの名無しさん:2005/07/10(日) 01:04:12
>>793
> 確かに immutable ならメリットは少ないな。
でしょ。で、>>776 みたいにそーゆー用途がほとんどみたいじゃん。

> お前が Pattern の話を持ち出してスコープから話題をそらしたかったのは良く分かった。
いや、話題をそらしたわけじゃないよ。スコープ全般の話なんかしてないから。
メソッドローカルクラス変数は導入するメリットが少ない。
>>776 みたいな例ばかりならば。
798デフォルトの名無しさん:2005/07/10(日) 01:05:00
>>716
>Singleton の場合ってメソッドローカルに出来る事による利点がそれほどあるとは思えんが。
799デフォルトの名無しさん:2005/07/10(日) 01:05:26
>>795
いや、それは Pattern の例が不適切だと言った時からの主張なんだが。
伝わってなかったんならゴメンね。
800デフォルトの名無しさん:2005/07/10(日) 01:07:58
public static String gets(){
try{
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
と、例外処理が起こってしまうのは何故でしょう?
また、どう直せばいいのでしょうか?
お願いします。
801デフォルトの名無しさん:2005/07/10(日) 01:08:47
> いや、話題をそらしたわけじゃないよ。スコープ全般の話なんかしてないから。

逃避宣言キタ━━━━(゚∀゚)━━━━ッ!!
802デフォルトの名無しさん:2005/07/10(日) 01:09:31
また定数とかimmutableとかの話かよ。それとスコープの話は関係ない。
変数のスコープを関係ある場所にだけ限定したいというのが、なんでそんなにおかしいんだ?
「メリットが少ない」ってのはおまえの主観だろ。おれの主観で言うと、継承のスコープがなんたらかんたらのほうにはまったくメリットを感じない。
803デフォルトの名無しさん:2005/07/10(日) 01:10:01
>>798
Singleton のインスタンスを保持してる変数を誤用するとか、
名前が被って煩わしいってケースがそんなに多いとは思えないし。

スコープ限定できてもスコープ限定できる以上の意味がほとんど無いと思うけど。
スコープを限定することに意義があるってんなら話は別だけど。
804デフォルトの名無しさん:2005/07/10(日) 01:10:52
> メソッドローカルクラス変数は導入するメリットが少ない。
> >>776 みたいな例ばかりならば。

だから immutable であればスコープは問題ないというような主張をしてるのは
幸せ回路持ったお前だけだっての。
805デフォルトの名無しさん:2005/07/10(日) 01:11:00
>>801
スコープ全般の話をしてたつもりの奴がいるのか
806デフォルトの名無しさん:2005/07/10(日) 01:11:46
>>599さん
ありがとうございます。
sjisのファイルを読み込んでsjisで書き込むプログラムを教えてください。
なんですが、getbyteを使ったプログラムを教えていただけませんか?
807デフォルトの名無しさん:2005/07/10(日) 01:12:29
>>804
だから、immutable だったり定数だったりするなら、
そうでない変数よりスコープ限定するメリットが少ないって言ってるの。
808デフォルトの名無しさん:2005/07/10(日) 01:12:41
>>805
具合が悪くなって immutable に逃げた奴ならいるがな。
809デフォルトの名無しさん:2005/07/10(日) 01:13:52
> そうでない変数よりスコープ限定するメリットが少ないって言ってるの。
それはお前の「感想」だろ。
810デフォルトの名無しさん:2005/07/10(日) 01:13:53
<!-- // Begin Current Moon Phase HTML (c) CalculatorCat.com // --><script language="JavaScript" type="text/javascript"> var ccm_cfg = { n:'1', pof:'1', dt:'1', tc:'#ffffff', pth:'' } </script>
<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 // -->

すいません。このスクリプトを携帯でも
閲覧できるようにしたいのですがどうすればいいですか?
811デフォルトの名無しさん:2005/07/10(日) 01:14:20
>>806
getbyte って何?
812デフォルトの名無しさん:2005/07/10(日) 01:14:49
>>810
携帯で JavaScript は動きません。
813デフォルトの名無しさん:2005/07/10(日) 01:14:54
>>800
> と、例外処理が起こってしまうのは何故でしょう?
isr.close() してるから。

> また、どう直せばいいのでしょうか?
isr.close() しないようにすれば例外は出なくなるけど、
正常に動作させたいなら、BufferedReader 使わないで
改行記号まで読み込むようにするとかの根本的に直さないと無理。
814デフォルトの名無しさん:2005/07/10(日) 01:15:39
>>807
Singletonでつかうクラス変数はimmutableでもないし定数でもないんだが。
815デフォルトの名無しさん:2005/07/10(日) 01:15:47
>>809
>>793 も同意してるんだけど。
816デフォルトの名無しさん:2005/07/10(日) 01:16:09
「俺は初めからそんな話はしてなかった」 ← 意地っ張り根性丸出し
817デフォルトの名無しさん:2005/07/10(日) 01:17:45
>>808
なんだ、本当にスコープ全般の話のつもりだった奴がいるのか。
818デフォルトの名無しさん:2005/07/10(日) 01:18:29
なるほど、Pattern が不適切な例だって言った意味が通じてないわけだ。
819デフォルトの名無しさん:2005/07/10(日) 01:18:58
>>815
じゃあ反対派は2人か。
おれはメソッド内にスコープ限定できたらうれしいに一票。
820デフォルトの名無しさん:2005/07/10(日) 01:20:00
え? >>819 == >>793 じゃないの?

821デフォルトの名無しさん:2005/07/10(日) 01:20:50
ああそうか、じゃあ無意味だな。
822デフォルトの名無しさん:2005/07/10(日) 01:22:18
>>817
旗色が悪くなってしまってそっちに話題をそらしたいのはよく分かるよ。w
823デフォルトの名無しさん:2005/07/10(日) 01:22:20
>>814
Singleton は便宜上 final で修飾されてないだけだと思うが、
2つ以上のインスタンスが生成されても良いわけ?

Singleton なら private だろうし、事実上定数だよね?
824デフォルトの名無しさん:2005/07/10(日) 01:22:52
>>822
それってキミの事かな?
825デフォルトの名無しさん:2005/07/10(日) 01:23:55
>>824
なに顔真っ赤にしてリロードボタン押してんのさwww
826デフォルトの名無しさん:2005/07/10(日) 01:23:55
で、繰り返すとSingletonでつかうクラス変数はimmutableでもないし定数でもないんだけど、これじゃだめ?
immutableでも定数でもなくて、あるメソッドからしか使わないクラス変数なんてしょっちゅうあるんだけど。
827デフォルトの名無しさん:2005/07/10(日) 01:25:21
>>824
いや、残念だが君の事だ。
828デフォルトの名無しさん:2005/07/10(日) 01:25:41
> immutableでも定数でもなくて、あるメソッドからしか使わないクラス変数なんてしょっちゅうあるんだけど。
俺は それほど無いんだけど。
829デフォルトの名無しさん:2005/07/10(日) 01:25:59
>>823
便宜上でもなんでもないよ。>>711のように、大きいオブジェクトは必要になるまで作らないようにするから、そのときはfinalなんてつけない。
830デフォルトの名無しさん:2005/07/10(日) 01:26:14
>>827
と言う事にしたいわけだw
831デフォルトの名無しさん:2005/07/10(日) 01:27:18
>>829
>>803 はスルーっすかw
832デフォルトの名無しさん:2005/07/10(日) 01:29:32
>>831
829 ではないが、影響範囲って知ってるか? なぜ必要以上にスコープを広げないか分かってる?
833デフォルトの名無しさん:2005/07/10(日) 01:29:44
>>800
>と、例外処理が起こってしまうのは何故でしょう?

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();
を消すのがベストだと思います。
834デフォルトの名無しさん:2005/07/10(日) 01:30:43
>>830
それはお前だろ。
835デフォルトの名無しさん:2005/07/10(日) 01:33:34
>>832
影響範囲っても Singleton ならクラス内でしょーが。

スコープ限定するだけが目的なら話は別だけど、
スコープ限定出来る事によるメリットが少ないって言ってるんだよ。
Singleton なら変数名も特徴的なの使うだろうし。
836デフォルトの名無しさん:2005/07/10(日) 01:38:10
>>833
isr.close() を消しただけだと、
貼り付けとかしたときに BufferedReader でバッファリングした分が全部捨てられる可能性があるよ。

まぁ、学校の宿題で簡単なチェックを通れば良いってんならそれでも良いかもしれんが。
837デフォルトの名無しさん:2005/07/10(日) 01:40:04
結局スコープ全般の話してんじゃんw
838デフォルトの名無しさん:2005/07/10(日) 01:40:38
なんか「自分がクラス変数使ってないから必要ない」というスタンスだな。
Singletonパターンじゃなくても、それに近いことはしょっちゅうあるぞ。

/* ページ遷移を表すテーブル */
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;
}

「メリットが少ない」っていってるが、それはおまえの主観だって。
839デフォルトの名無しさん:2005/07/10(日) 01:41:30
>>837
どうも、スコープ全般の話に持ち込みたい人がいるみたいで。

他人を散々叩いてきたから、自分が優位に立たないと我慢が出来ないんでしょ。
840800:2005/07/10(日) 01:41:48
>>813
>>833
ありがとうございましたお。
isr.close()を削除する方向で行きたいと思います。
841デフォルトの名無しさん:2005/07/10(日) 01:43:32
>>839
いや、旗色悪くなったから逃げたがってる奴がいるだけにしか見えないが?
842デフォルトの名無しさん:2005/07/10(日) 01:45:00
>>838
基本的には >>711 の Singleton と同じなんですけど。
843デフォルトの名無しさん:2005/07/10(日) 01:46:44
こういうのとかも

private 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);  // ← ここでしか使わない
}
844デフォルトの名無しさん:2005/07/10(日) 01:47:42
>>838
> 「メリットが少ない」っていってるが、それはおまえの主観だって。
いや、>>793 も同意してるね。

主観だって決め付けるなら、実質定数とか immutable なオブジェクトを
メソッドローカルなクラス変数にする事に客観的にどんなメリットがあるのか出してくれ。
スコープ限定出来る事に意義がある以外に。
845デフォルトの名無しさん:2005/07/10(日) 01:49:45
>>843
それ、immutable じゃん。メソッドローカル云々言う前に

Collections.unmodifiableSet(Set) した方が良いと思うが。
846デフォルトの名無しさん:2005/07/10(日) 01:49:54
正規表現のPatternはしょっちゅう使うから、メソッド内でstaticとして定義できるとたしかにうれしいな。

/* これはちょっと気持ち悪い */
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;
}
847デフォルトの名無しさん:2005/07/10(日) 01:51:27
>>846
なんだ、結局
> /* これはちょっと気持ち悪い */
を解消したいだけか……
848793:2005/07/10(日) 01:51:48
>>844
悪いが、同意したのは「immutable なインスタンスならそうで無いものに
比べてメソッドローカルなクラス変数にするメリットが少ない」ってのだ。
おまえの不要論に同意したわけではない。
849デフォルトの名無しさん:2005/07/10(日) 01:52:44
散々言ってるんだが、immutable やら定数であれば
そうでない変数に比べてスコープを限定するメリットが少ないってわかってるよね?
850デフォルトの名無しさん:2005/07/10(日) 01:53:52
>>849
おまえが immutable に話題を持ってゆきたい理由なら分かるな。
851デフォルトの名無しさん:2005/07/10(日) 01:54:34
>>848
> 「immutable なインスタンスならそうで無いものに
immutable なインスタンスや、定数ね。

今のところ そーゆー例しか出てないような気がするが。
852デフォルトの名無しさん:2005/07/10(日) 01:55:39
>>850
おまえがスコープ全般に話題を持ってゆきたい理由も分かるけど。
853デフォルトの名無しさん:2005/07/10(日) 01:55:45
>>849
おれはコードがすっきりしてわかりやすくなるだけですごくうれしいんだけど。
メリットが少ないっていう理由をもっと説明してくれ。
854デフォルトの名無しさん:2005/07/10(日) 01:57:12
>>853
> メリットが少ないっていう理由をもっと説明してくれ。
既に説明したが。

逆に言うと、メリットは書いてる人間の自己満足ぐらいしかないわけだよね?
855デフォルトの名無しさん:2005/07/10(日) 01:58:15
>>851
はいはい

private static int counter = 0;
public void foo(){
  counter ++;
  if(counter >= 100){
    // アクセス数多すぎ
    return;
  }
  try{
    // なんかの処理
  } finally {
    counter --;
  }
}
とか
856デフォルトの名無しさん:2005/07/10(日) 01:58:31
>>842
>基本的には >>711 の Singleton と同じなんですけど。
そのとおりだけど。だから「それに近い」と書いたんだが。
immutableでもないし定数でもない例として出したつもりだが、これじゃだめなのか?
857デフォルトの名無しさん:2005/07/10(日) 01:58:40
>>847
明確なデメリットがあるなら話は別だが、そうでないなら
「ちょっと気持ち悪い」が解消できる事には意味がある。
858デフォルトの名無しさん:2005/07/10(日) 01:58:42
>>854
で、スコープ全般の話になってループだな。
859デフォルトの名無しさん:2005/07/10(日) 01:59:38
>>854
どこらへんで?
860デフォルトの名無しさん:2005/07/10(日) 02:00:49
>>857
今までと違う文法を導入しなければならないので
しばらくは複数の書き方が並存することになる。
読むほうは両方読めないといけない。って意味で学習コストが上がるよね。

「ちょっと気持ちが悪い」程度であれば、この程度で潰されるんじゃないか?
861デフォルトの名無しさん:2005/07/10(日) 02:02:03
>>860
それをいうならTigerなんか悲惨だが。
862デフォルトの名無しさん:2005/07/10(日) 02:02:12
>>855
これだけ?
863デフォルトの名無しさん:2005/07/10(日) 02:03:26
>>861
Tiger で導入されたのは「ちょっと気持ちが悪い」を解消するための機能なのか?
864デフォルトの名無しさん:2005/07/10(日) 02:04:32
どんな例をだしても認める気ないじゃん。
865デフォルトの名無しさん:2005/07/10(日) 02:05:36
>>862
あーあー、「そういう例が出ない」の次は「これだけ?」ですか。
866デフォルトの名無しさん:2005/07/10(日) 02:07:26
>>864
メリットが多い事を示すなら量出さなければならないのは自明だと思うが。

っつか、>>855 return の前に counter-- しないとマズイのでは?
もしくはtry の位置が違うとか。
867デフォルトの名無しさん:2005/07/10(日) 02:07:31
>>863
違うのか?
・Staticインポート
・Enum
・autoboxing
・foreach文
・可変長引数
・・・
genericsやannotationに混じって、どうでもいい拡張がされてるけどな。
868デフォルトの名無しさん:2005/07/10(日) 02:08:35
>>865
immutable とか定数っぽい例があんだけ出てるんだから、もっと出せるでしょ。
869デフォルトの名無しさん:2005/07/10(日) 02:09:31
>>862
はいはい、よくあるオートリロードの設定例ね。

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);
}
870デフォルトの名無しさん:2005/07/10(日) 02:10:17
>>867
enum が「ちょっと気持ち悪い」程度を解消するためのもんなのか?

まぁ使わない人はそー思うのかもしらんが。
871デフォルトの名無しさん:2005/07/10(日) 02:10:18
どれだけ出ても「少ない」だろw
872デフォルトの名無しさん:2005/07/10(日) 02:13:31
>>866
なんで量を出すという話にすり替わってんだ?
immutable でない典型的な例が出てるぞ。おまえのよりどころはもう「少ない」の言葉っつらだけか?
873デフォルトの名無しさん:2005/07/10(日) 02:14:38
> おまえのよりどころはもう「少ない」の言葉っつらだけか?

前からそうだよ。
874デフォルトの名無しさん:2005/07/10(日) 02:16:03
>>869
お、ファイルの最終更新日時取得するの忘れてる orz
また嬉々として突っ込まれちゃうなw
875デフォルトの名無しさん:2005/07/10(日) 02:16:30
>enum が「ちょっと気持ち悪い」程度を解消するためのもんなのか?
違うのか?コンパイラによるチェックがされる程度のメリットしか感じない。
タイプミスを軽視するおまえなら、わかるよな。

>まぁ使わない人はそー思うのかもしらんが。
クラス変数をつかわないおまえが、メリットが少ないと思うのと同じだろ。

つか、>>867のほかの機能についてはどうよ?おれは「ちょっと気持ち悪い」を解消する程度にしか見えないんだが。
876デフォルトの名無しさん:2005/07/10(日) 02:17:20
>>855
何故だか分からないが、俺のゴーストが「このコードは危険だ」と囁いてるw
単に馴染みの問題という可能性も否定しきれないんだが、どうも保守に苦労
しそうな悪寒が・・・・・・

>>860
いや、コストは上がらんでしょ?その点で言えば、寧ろ「ちょっと気持ち悪い」
が解消できるメリットの方が大きい。
877デフォルトの名無しさん:2005/07/10(日) 02:18:49
>>875
そういやenumって新しい予約語なんだっけ。予約語を導入したくなるほどtype safe enumに魅力があるとは思えん。
878デフォルトの名無しさん:2005/07/10(日) 02:19:48
>>869
>>855の例と違って、こっちには気持ち悪さを感じない。
まぁ、主観100%なわけだが、この感情がどこから来るのかは
ちょっと興味深い。スマソ、独り言だorz
879デフォルトの名無しさん:2005/07/10(日) 02:20:21
>>875
> 違うのか?
いや、型が導入される事のメリットは大きいね。
switch にも使えるし。

> つか、>>867のほかの機能についてはどうよ?
EOD を実現(?)するための機能なんじゃないの?
autoboxing とか static import は個人的には無くても良いと思うけど
方向性としては一貫してると思うよ。
880デフォルトの名無しさん:2005/07/10(日) 02:20:27
>immutable とか定数っぽい例があんだけ出てるんだから、もっと出せるでしょ。
根拠がまったくわからん。
881デフォルトの名無しさん:2005/07/10(日) 02:21:08
enumって使ってるやついないのかよー
ずっと使いまくりなんだがSwitchがとおったりコンパイルエラーではじきやすいってのは十分なメリットじゃないのか?
Cのenumになれたからintで十分ってか?

>>875がつりに見えてしょうがない
882デフォルトの名無しさん:2005/07/10(日) 02:21:55
>コンパイラによるチェックがされる程度のメリット
うぁ〜いヽ(´Д` )ノ
お前、凄いこと言い始めてるぞ、ちょっと冷静になれ。
883デフォルトの名無しさん:2005/07/10(日) 02:24:41
>>878
名前が長いからじゃないの?
884デフォルトの名無しさん:2005/07/10(日) 02:27:46
>>878
うん、我ながら前者はちょっと一般的じゃないね。
あとは毎日 0:00 を超えたら DB からコードテーブル持ってきて static 変数に保持しておくのとか
あるね。
885デフォルトの名無しさん:2005/07/10(日) 02:31:18
>>882
>>875
>弊害がスペルミスによる誤用ぐらいしかないから。
といいきったやつへの皮肉なんだけど。なんでスペルミスは軽視してenumは重要視するんだ?
886デフォルトの名無しさん:2005/07/10(日) 02:32:40
まぁこんなのか

private static final FOO = new Foo();
public static String getCodeLabel(String name){
  FOO.checkReload();
  return FOO.getCodeLabel(name);
}
887デフォルトの名無しさん:2005/07/10(日) 02:34:24
>>885
スペルミス防止以外にも switch に使えたり
int の定数使ってて、単純な計算で整数型に成り下がる事とかを防止できたりするから。

簡単に言えば、メリットが多いから。
888デフォルトの名無しさん:2005/07/10(日) 02:35:16
>>887
それだけ?w
889デフォルトの名無しさん:2005/07/10(日) 02:36:09
>>888
メリット言ってるんだもん、一つでも多ければ十分でしょ。
890デフォルトの名無しさん:2005/07/10(日) 02:37:49
>>889
で、君の「メリットが少ない」を否定するにはいくつ必要なわけ?
891デフォルトの名無しさん:2005/07/10(日) 02:39:13
>>890
多ければ多いほど良いw
892デフォルトの名無しさん:2005/07/10(日) 02:41:32
なるほど、ゴールは無いわけだw
893デフォルトの名無しさん:2005/07/10(日) 02:41:59
>>890
あぁ、例とメリットをごっちゃにして数だけを比較してるのか。
894デフォルトの名無しさん:2005/07/10(日) 02:42:34
>>878
クラスとは別にメソッドが独自の状態を保持するというのは、JAVA的には
そもそもなじみがない。
>>855の例からは具体的な全体像とでも呼ぶべきものが想像しにくいから
それが安全か否か判断できず気持ち悪さとして感じるんだろうと思う。
>>869の例では書かれてない部分も比較的安易に補完できる(いくつかの
可能性を当て嵌めてみることができる)から、安全そうだと判断できる範囲
に応じて気持ち悪さが低減されてるのではないか?
895デフォルトの名無しさん:2005/07/10(日) 02:42:38
もしかして、
・関数限定staticがCにあるから、Javaでもあってしかるべきだ。
・Type Safe EnumはCにはないから、Javaにも別に必要なかったものだ。

ということなの?
896デフォルトの名無しさん:2005/07/10(日) 02:45:49
>>895
誰がそんな事いったんだ?
897デフォルトの名無しさん:2005/07/10(日) 02:46:06
>>885
皮肉だったのなら別にそれで構わない。一瞬、本気で言ってるのかと
思ったぞw
後段については俺ではなく本人に聞いてくれ。
898デフォルトの名無しさん:2005/07/10(日) 02:46:29
>>894
よーするに、慣れの問題って事か
899デフォルトの名無しさん:2005/07/10(日) 02:48:51
>>893
例が云々は出たが関係ない。都合が悪くなったらっていちいち逃げるな カス
メリットが多い少ない良い始めたのはおまえだ

 い く つ 必 要 な の ?
900デフォルトの名無しさん:2005/07/10(日) 02:51:02
>>899
Sun に言語仕様変えさせたいならいくつ必要だと思う?
901デフォルトの名無しさん:2005/07/10(日) 02:53:27
>>894
>>855 は以前作ったうpローダーで後付けで同時アクセス数制限設けた奴だ。
用途が分かれば少しはすっきりするかな?
902デフォルトの名無しさん:2005/07/10(日) 02:54:05
>>900
また話題逸らしですかw
903デフォルトの名無しさん:2005/07/10(日) 02:54:09
メソッドローカルなクラス変数が使えると便利だという人と、そうじゃないという人がいる。
どっちも主観だから、議論は平行線。

ここで話を変えてみませんか。メソッドローカルなクラス変数が使えると何か不具合がありますか?
904デフォルトの名無しさん:2005/07/10(日) 02:56:42
>>902
結局のところ、言語仕様変わんないのに 2ch で騒いだって意味ないし。
905デフォルトの名無しさん:2005/07/10(日) 02:56:47
>>900
おまえに、おまえが納得する数字を聞いてるんだけど
なんで Sun が出てくるわけ? バカ だろ?
906デフォルトの名無しさん:2005/07/10(日) 02:57:41
そろそろ勝利宣言の準備してますよ
907デフォルトの名無しさん:2005/07/10(日) 02:58:33
> 結局のところ、言語仕様変わんないのに 2ch で騒いだって意味ないし。

必殺ちゃぶ台返し キタ━━━━(゚∀゚)━━━━ッ!!
908デフォルトの名無しさん:2005/07/10(日) 02:58:37
>>903
メソッドローカルなクラス変数より入れて欲しい機能ならあるかな。
C# の struct みたいな lightweight class とか。
909デフォルトの名無しさん:2005/07/10(日) 02:59:07
>>906
>>907 が勝利宣言なの?
910デフォルトの名無しさん:2005/07/10(日) 03:00:56
>>907
テラワロスwww
911デフォルトの名無しさん:2005/07/10(日) 03:02:09
>>908
また話をそらす。で、メソッドローカルなクラス変数があるとどんな不具合があるの?
912デフォルトの名無しさん:2005/07/10(日) 03:04:42
C# なら override 宣言とかあるな。
まぁイージーミス防止にメリットを見出せない奴には不要かもしれんが。
913デフォルトの名無しさん:2005/07/10(日) 03:06:47
immutable、enum、Sun、C# に続く逃げ道を探すべくレス遡ってますのでしばらくお待ちください
914デフォルトの名無しさん:2005/07/10(日) 03:06:58
>>912
override なら annotation で対応してなかったっけ?
915デフォルトの名無しさん:2005/07/10(日) 03:07:50
なんだかよくわからん議論だな。

>>803
>スコープ限定できてもスコープ限定できる以上の意味がほとんど無いと思うけど。
>スコープを限定することに意義があるってんなら話は別だけど。

最初っからスコープの話をしているんだとおもうが。違うのか?

>>558
>static変数をメソッドの中で定義することは可能ですか?
>具体的には、java.util.regex.Patternオブジェクトを毎回生成せずにstatic変数にしているんですが、
>特定のメソッドの中でしか使用しないんで、そのメソッドの中で定義できるとうれしいんですが。

>>616
>クラス変数でだめなんていってない。クラス変数のスコープをあるメソッドだけに限定したいというだけだ。
916デフォルトの名無しさん:2005/07/10(日) 03:08:03
>>911
ちなみに、メソッドローカルなクラス変数があるとどんな不具合があったりなかったりすると何かあるの?
917デフォルトの名無しさん:2005/07/10(日) 03:09:36
>>916
おまえは苦しくなると質問に質問で答えるのな。
918デフォルトの名無しさん:2005/07/10(日) 03:10:13
>>915
>>558 >>616 その辺は俺関わってないし。
919デフォルトの名無しさん:2005/07/10(日) 03:12:13
>>915
途中で 「俺はスコープ全般の話などしていない、immutable な Pattern を
メソッドローカルなクラス変数にするメリットは少ない」とか言い始めた。
920デフォルトの名無しさん:2005/07/10(日) 03:14:09
>>919
実際問題少ないし、Patternの例が不適切だって言ってたのをちゃんと読めば
そーゆー風に読み取れると思うが。
921デフォルトの名無しさん:2005/07/10(日) 03:14:45
>>918
つまり、元ネタと流れを読まずに一方的に immutable が云々の一人相撲とってたというわけね。
いやーよく引っ張ったね、君埋め氏でしょ?w
922デフォルトの名無しさん:2005/07/10(日) 03:15:00
>>920
あぁメリットが少ないってのは定数とかimmutableと変数を比べて
変数よりメリットが少ないって事ね。
923デフォルトの名無しさん:2005/07/10(日) 03:15:41
>>921
いやぁ、優秀な協力者がいてくれたからですよw
924デフォルトの名無しさん:2005/07/10(日) 03:16:28
>>921
いや、元ネタしか読まなかったのが原因だと思われ
流れが読めなかったのはお互い様でしょ
925デフォルトの名無しさん:2005/07/10(日) 03:18:19
>>923-924
そんなこといいからさっさと埋めろよ。
926デフォルトの名無しさん:2005/07/10(日) 03:19:36
まず、話の発端は
>クラス変数のスコープをあるメソッドだけに限定したい
ということでよろしいか。

それから長々と議論があって、なぜか
>あぁメリットが少ないってのは定数とかimmutableと変数を比べて
>変数よりメリットが少ないって事ね。
という結論になる。

ごめん、おれには流れがさっぱりわからんかった。
927デフォルトの名無しさん:2005/07/10(日) 03:19:41
>>925
後は任せた。
928デフォルトの名無しさん:2005/07/10(日) 03:20:37
>>920
「ちゃんと読めば」って、おまえがちゃんと読めよ。
929デフォルトの名無しさん:2005/07/10(日) 03:20:48
>>926
最初の例が immutable だったからさ。
930デフォルトの名無しさん:2005/07/10(日) 03:27:06
で、メリット君は一般論としてスコープを限定する方針に関してはどう思ってるわけ?
931デフォルトの名無しさん:2005/07/10(日) 03:28:05
メソッド内でクラス変数が定義できることに、メリットを感じる人がいる(もちろん感じない人もいる)。
んで、できたとして特にデメリットはなさそう。
かつ、>>656>>674あたりをみると、技術的に問題はないらしい。

じゃ、あったとしてもいいんじゃないの。メリットが少ないって主張する人もいるけど、そうじゃない人も少なくないみたいだし。
個人的にみても、少なくともstatic importよりは役に立ちそう。
「自分がメリット感じないから反対」っていうのはよくないんじゃないかな。
932デフォルトの名無しさん:2005/07/10(日) 03:35:21
>>926
途中で具合が悪くなって「スコープ全般の話はしてない」とか言い始めただけ。
そのまま引けなくなって今に至る。
933デフォルトの名無しさん:2005/07/10(日) 03:37:35
おいメリット、もう寝たのか?
934デフォルトの名無しさん:2005/07/10(日) 03:37:42
>>930
一般論としてスコープを限定するのに反対した覚えはないんだが。

そうそう、>>803
> スコープ限定できてもスコープ限定できる以上の意味がほとんど無いと思うけど。
> スコープを限定することに意義があるってんなら話は別だけど。
ってのはスコープを限定した事による自己満足に意義がある、
程度の意味で言ってたつもりなんだけど。

どーも通じてなかったみたいで。

>>931
> 「自分がメリット感じないから反対」っていうのはよくないんじゃないかな。
言語仕様変えるってな話であれば、言語仕様変えられる人的資源とかは限られてるんだから
メリット感じないなら反対されるのは当然なのでは?
935デフォルトの名無しさん:2005/07/10(日) 03:39:42
>>933
ん? もう寝る。

後は任せた。
936デフォルトの名無しさん:2005/07/10(日) 03:40:05
このスレはもう埋めちゃっていいから他のスレに流出したり次スレ立てたりしないでね。
937デフォルトの名無しさん:2005/07/10(日) 03:43:20
>>930
どうって、「メリットがある」でいいじゃん。プログラムすっきりするし。例もたくさんあったし。
おまえにとってはメリットじゃないんだろうけどな。
938デフォルトの名無しさん:2005/07/10(日) 03:44:46
      ,,            ,.. -───--:、
      l゙,ヽ         /:::::::メリット:::::::::::::::丶  おやすみ、うんこども
      `、`\      ,〃::::::;ィ:/!:::::/l:::::;:;::::::::ヽ
       \. \     ' i´|::;イ,:rj:、|:::/'rj'く:、!::::::::::i
          \ \     レ'(●), 、(●):|i:;l::::::|
          \ `'-、_ i' ,,ノ(、_, )ヽ、,, レ' il:::|
           \  | lト、ヽ,`-=ニ=- '  ...ノ:::l
               \:| ||、``lヽ`ニニ´ /:::::::::::::'、
              iノ」,! ', ノ Li゙)_  iヽ;:::::::ヽ,'--'=‐'
                ヽl   il,L,.>',"_,..>:;::::::':、_
                     /   ,)、ヾ,,' y'´,.-='、ー-‐"
939デフォルトの名無しさん:2005/07/10(日) 03:45:02
>>838
本筋から外れるが

Singleton の例もありえないと思ったが、
こんな書き方はありえないことを
分かってて書いていると期待したい。

メソッドやブロックに可視のスコープを縮めることは
別にどっちも応援してるわけでないが、
いくら例だからといって
こんないい加減なものを書いているのを見るとウンザリする。

さらに、皆それをスルーして議論を続けてるのもな。
だれか突っ込め
940930:2005/07/10(日) 03:46:21
>>937
俺はメリット君じゃねーw
941デフォルトの名無しさん:2005/07/10(日) 03:47:55
>>934
>言語仕様変えるってな話であれば、言語仕様変えられる人的資源とかは限られてるんだから
>メリット感じないなら反対されるのは当然なのでは?
はあ?なんで人的資源とかでてくるわけ?そんなのはJCPとして提出でもした場合の話だろ。
またありもしない将来の話を持ってくる。だから話がわき道にそれてばかりなんだよ。
おまえのいうデメリットって人的資源に関することなのか。
942デフォルトの名無しさん:2005/07/10(日) 03:49:12
>>939
面目ない。double-checked locking が直ぐに出てこなかったもんで。
943デフォルトの名無しさん:2005/07/10(日) 03:49:16
>>939
ケースの個別設定なぞどうでもいい。
944デフォルトの名無しさん:2005/07/10(日) 04:03:58
>>942
double-checked locking って、いい事聞いた。
945デフォルトの名無しさん:2005/07/10(日) 04:12:43
>>942
>>838 は double-checked 以前の問題
946デフォルトの名無しさん:2005/07/10(日) 04:14:55
>>945
static 変数いじるのに this を同期化してもしゃーない、であってる?
947デフォルトの名無しさん:2005/07/10(日) 04:22:09
>>946
書き込みだけでなく読み込みの方も同期する必要あり。
中途半端に書かれた内容が読み取れる可能性がある。

という点からは、double-checked と同じか...失礼

ぶっちゃけ、クラス自身が遅延ロードされるのだから
単純なシングルトンはおおよそ必要ない
948デフォルトの名無しさん:2005/07/10(日) 04:36:12
sage忘れたついでに

>> 946
同期するのに使うオブジェクトは、実は何を使おうと構わない。
ただし、一貫して同じものを使わないとスレッド間でセッションが重なるのでダメ
949デフォルトの名無しさん:2005/07/10(日) 04:37:54
そりゃそうだ
950デフォルトの名無しさん:2005/07/10(日) 04:53:52
なんだか二日見ないうちにすごいことになってるし。
メリット君ってなに?
951デフォルトの名無しさん:2005/07/10(日) 05:01:04
>>948
あら。>>838 ではセッション重なるか?
952デフォルトの名無しさん:2005/07/10(日) 05:20:10
>>951
そもそも あんなんでセッション管理はしない。
953デフォルトの名無しさん:2005/07/10(日) 05:22:59
セッションってサーブレットの?
ページ繊維とは書いてあるがどっからそんな話が。
954617:2005/07/10(日) 05:25:21
メソッド内の「クラス変数」にこだわる人が多いけど
メソッド内の「インスタンス変数」に関してあんまり意見がないのが悲しい。
言語仕様上は対称なほうがきれいだろうし。

で、どっちもMixJuiceでは大体似たようなことができるし
C#のpartial classでも大体似たようなことができる。
似たような、ってのは残念ながらスコープを絞るんじゃなくて
一クラスを複数のソースに分割して定義できるようにするだけだから。
955デフォルトの名無しさん:2005/07/10(日) 05:36:48
>>954
annotetaion と適当な構文チェッカーかクラスファイルチェッカー使えば
簡単にできそうかも、って思ったけど

メソッド(コンストラクタも?)渡すのが面倒っぽいよーな。
誰かやんない?
956デフォルトの名無しさん:2005/07/10(日) 05:37:24
>>954
むしろメソッドローカルなインスタンス変数の方が使用頻度は高そうだと思う。
まぁメリット君がこだわってたからね>クラス変数
957デフォルトの名無しさん:2005/07/10(日) 05:41:30
>>951
セッションって書いたのは、単に
同期している期間って程度の意味で書いただけで
深い意味じゃない

>>838 は読み取りは同期すらしてない
958デフォルトの名無しさん:2005/07/10(日) 05:42:10
>>954
あぁ、無理無理。

C言語の関数内での static みたいにすれば簡単に導入できるってのが
メソッドローカルなクラス変数支持派の思考だったからね。
959デフォルトの名無しさん:2005/07/10(日) 05:46:43
おはよう、メリット
960デフォルトの名無しさん:2005/07/10(日) 05:49:29
起きるの早っw
961デフォルトの名無しさん:2005/07/10(日) 05:49:29
>>956
その割にはクラス変数の例しか出てこんかったよーな。

メリット君はインスタンス変数にもかなり言及してるね
誰かさんは、>>687 とかで
> 知るかよ、そんなの。
とか言ってますが。
962デフォルトの名無しさん:2005/07/10(日) 05:55:23
> その割にはクラス変数の例しか出てこんかったよーな。
そういう例を出せといったのはおまえだろメリット。
963デフォルトの名無しさん:2005/07/10(日) 05:59:14
>>962
インスタンス変数の方が使用頻度高いと思うなら
インスタンス変数の例出してもよかったんじゃない?
散々メリット君がインスタンス変数に言及してるんだしさ。

どこにもクラス変数の例しか出しちゃいかん、なんて書いて無いと思うけど。
964デフォルトの名無しさん:2005/07/10(日) 06:02:04
>>963
聞こえなかったならもう一回言おう。
そういう例を出せといったのはおまえだろメリット。

> 散々メリット君がインスタンス変数に言及してるんだしさ。
散々ってどこで?
965デフォルトの名無しさん:2005/07/10(日) 06:04:20
なんか露骨に擁護してる奴がいるなw
966デフォルトの名無しさん:2005/07/10(日) 06:04:22
>>964
> そういう例を出せといったのはおまえだろメリット。
いいえ。

> 散々ってどこで?
インスタンス変数で検索すればいっぱい出てくるよ。
967デフォルトの名無しさん:2005/07/10(日) 06:15:56
>>659 メソッドローカルなインスタンス変数を作ろうとするときに障害になる可能性もある。
>>677 メソッドローカルなインスタンス変数を追加しようとした場合はどーすんの?

メリットと思われるのはこれだけ。ヒットしたほとんどはおまえと反対側の書き込み。
おまえは必死に「メソッドローカルなインスタンス変数を導入するときに問題になるかも」とか
言い訳してただけだろ。言及?笑わすな。
968デフォルトの名無しさん:2005/07/10(日) 06:19:41
おい、またわだいそらしのまほうで誘導されてるぞw
969デフォルトの名無しさん:2005/07/10(日) 06:22:02
      ,,            ,.. -───--:、
      l゙,ヽ         /:::::::メリット:::::::::::::::丶  おはよう、うんこども
      `、`\      ,〃::::::;ィ:/!:::::/l:::::;:;::::::::ヽ
       \. \     ' i´|::;イ,:rj:、|:::/'rj'く:、!::::::::::i
          \ \     レ'(●), 、(●):|i:;l::::::|
          \ `'-、_ i' ,,ノ(、_, )ヽ、,, レ' il:::|
           \  | lト、ヽ,`-=ニ=- '  ...ノ:::l
               \:| ||、``lヽ`ニニ´ /:::::::::::::'、
              iノ」,! ', ノ Li゙)_  iヽ;:::::::ヽ,'--'=‐'
                ヽl   il,L,.>',"_,..>:;::::::':、_
                     /   ,)、ヾ,,' y'´,.-='、ー-‐"
970デフォルトの名無しさん:2005/07/10(日) 06:37:40
あと 30
次スレは http://pc8.2ch.net/test/read.cgi/tech/1119115837/ に合流 ヨロ
971デフォルトの名無しさん:2005/07/10(日) 06:39:16
>>970 に補足。
メソッドローカルのクラス変数云々の議論は合流させないでください。
972デフォルトの名無しさん:2005/07/10(日) 06:40:43
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。

ワロス
973デフォルトの名無しさん:2005/07/10(日) 06:49:48
寝たんじゃなかったのかよ (藁
974デフォルトの名無しさん:2005/07/10(日) 08:02:39
【Java】次世代Java・J2CH0.16の草案【2ch版】

誰かこんなスレ立ててくれない?
ローカルディスクの残量は何時になったら取得できるんだ!
とか、Delegateパクろうぜ!とか、色々溜まってないか?
隔離スレとしてどうよ?

てか、質問スレ的には、質問「メソッドローカルなクラス変数は
ありますか?」回答「ありません。」で、本来は終了すべきだ。
975デフォルトの名無しさん:2005/07/10(日) 08:30:01
>>974
> ローカルディスクの残量は何時になったら取得できるんだ!
JDICでやってる。
その成果が既に取り込まれてて Mustang の最新の build には入ってたと思うが。
http://www.java.net/download/jdk6/docs/api/java/io/File.html#getFreeSpace()

JDIC だと戻り値が BigInteger だったのに Mustang だと戻り値が long になってる。
976デフォルトの名無しさん:2005/07/10(日) 08:55:04
>>975
知らない人って結構いるのね。
BugParade の方も更新されてるから(実は Closed, fixed になってたりする)
vote してなくても watch list に入れてればメール来ると思うんだけど。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4057701
977デフォルトの名無しさん:2005/07/10(日) 09:31:58
早く寝ろ
978デフォルトの名無しさん:2005/07/10(日) 11:19:24
>>556
チミは、図星感溢れる厨房大学生ですな。
いや、大学生というより厨学生といったほうがその名にふさわしい
979デフォルトの名無しさん:2005/07/10(日) 11:35:12
Delegateはいらね
プロパティ用構文はJavaで日本語が通らなかったときから欲しいといわれ続けてるのに
こっちは無視かなぁ
980デフォルトの名無しさん:2005/07/10(日) 11:37:00
おうおう。無駄にすすんどるのう。
981デフォルトの名無しさん:2005/07/10(日) 12:43:08
おまえも手伝え
982602:2005/07/10(日) 12:53:20
>>609
遅レス申し訳ありません。情報ありがとうございました。

CLDC MIDP で考えずとも
IBM から CDC 製品が出ていたんですね。

>>602 を書いた後、個人で情報収集を行ったところ、
Pocket PC 向けには IBM の J9 という Java 環境が良い、
というお話を実際に開発経験のある方から伺ったのですが、
ご紹介いただいたものの過去のバージョンのもののようですね。
983デフォルトの名無しさん:2005/07/10(日) 12:55:09
このスレ見てID表示してほしいなと思った今日この頃。
984デフォルトの名無しさん:2005/07/10(日) 13:16:38
>>983
お前みたいなヤツがまた2chをつまらなくする。
985デフォルトの名無しさん:2005/07/10(日) 13:42:46
メリット君みたいなのはすぐ分かるからいらないだろー
ID 入ったところでここは技術板、俺でも十数個の IP アドレス使い分けられるから意味無いかもね。
986デフォルトの名無しさん:2005/07/10(日) 13:45:01
メリット君みたいなのはすぐ分かるからいらないだろー
ID 入ったところでここは技術板、俺でも十数個の IP アドレス使い分けられるから意味無いかもね。
987デフォルトの名無しさん:2005/07/10(日) 14:03:31
>>982
CLDC MIDP も動く希ガス
988デフォルトの名無しさん:2005/07/10(日) 17:51:17
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/ArrayList.htmlに書かれている
「クラス ArrayList<E>」の「<E>」ってどういう意味なんですか?
989デフォルトの名無しさん:2005/07/10(日) 18:13:01
(・∀・)イイ! のEだろ。
990デフォルトの名無しさん:2005/07/10(日) 21:14:31
マジレスしとくと、ElementのEだよ。
991988:2005/07/10(日) 22:00:53
>>989 Σ(・∀・)!

>>990
えぇっと、Elementって何でしょうか。
立て続けにすみません(;´д`)。。。
992デフォルトの名無しさん:2005/07/10(日) 22:02:37
辞書も引けないかわいそうな人がいるスレはここですか?
993988:2005/07/10(日) 22:15:41
>>992
いや、単語の意味は分かるんですが、Javaにおいてはどういう概念で使われてるのかなと思って。
例えばJDK1.2のAPIリファレンスには<E>って記述はなく、ArrayList.get(int index)の返値なんかも
「E」ではなく「Object」として定義されてたりして。
どう違うのかなと。
994デフォルトの名無しさん:2005/07/10(日) 22:18:13
ゲネリクスでぐぐれ
995デフォルトの名無しさん:2005/07/10(日) 22:22:22
ゲネリクスに該当するページが見つかりませんでした。

検索のヒント
- キーワードに誤字・脱字がないか確かめてください。
- 違うキーワードを使ってみてください。
- より一般的な言葉を使ってみてください。
996デフォルトの名無しさん:2005/07/10(日) 22:23:36
997デフォルトの名無しさん:2005/07/10(日) 22:35:42
>>993
1.5 から追加された generics 使ってるから 1.2 では Object になってる。

E は型パラメタ。大雑把にいえば、ArrayList を String の可変長配列と使用したいときに
ArrayList<String> list を使えば String str = list.get(index); みたいにキャスト無しで取り出せる、とか。
998988:2005/07/10(日) 22:40:40
>>994-997
なるほど。リストに格納するモノをある程度定義できるんですね。
後はもうちょっと自分で調べてみます。
どうも有難dでした!
999デフォルトの名無しさん:2005/07/10(日) 23:17:34
1000
1000デフォルトの名無しさん:2005/07/10(日) 23:19:23
>>999 zureteru.
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。