トップページ⇒tech
1001コメント356KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2005/06/09(木) 00:12:33
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath

前スレッド
【初心者歓迎】Java質問・相談スレッド65 Update 1
http://pc8.2ch.net/test/read.cgi/tech/1114850497/
兄弟スレッド
【初心者】Java質問・相談スレッド67【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1116750427/

兄弟スレが混雑しているときはこのスレで、このスレが混雑しているときは
兄弟スレで質問すると回答が得やすいかもしれません。

※注意※
1. 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。
2. 最近マルチ(他スレにも同じ質問を書く人)が増えております。
マルチは嫌われますので、絶対にやめましょう。
もちろん、兄弟スレとのマルチも禁止です。
3. JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/
0002デフォルトの名無しさん2005/06/09(木) 00:14:30
2ゲト
0003デフォルトの名無しさん2005/06/09(木) 00:20:19
>>1 乙!

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


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

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

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

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

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

むしろ複数たっていると適度に話題が拡散するので個々のスレが見やすくていい。
0019デフォルトの名無しさん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());
}
}
}
これにシンボルを解決できませんとのエラーが出ました。何回見ても思い当たる
所が見つかりません。どなたかヒントください。。
0020デフォルトの名無しさん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);
----
0021デフォルトの名無しさん2005/06/13(月) 17:23:04
Windows で動かすなら下手に指定しないほうが良い。
InputStreamReader is = new InputStreamReader(s.openStream());

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

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

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

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

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

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

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

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

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

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

でてきたのはかなり前だったが、Swingが実用的になったり
リッチクライアントが流行ってきたここ数年はわりと使われてる
0045デフォルトの名無しさん2005/06/15(水) 20:30:08
>>44
誤爆?
0046デフォルトの名無しさん2005/06/15(水) 20:40:55
なぜ誤爆と判断?
0047デフォルトの名無しさん2005/06/15(水) 21:06:37
>>40及び>>41
javax.xml.*パッケージあたり学んでいけばなんとかなる?
0048デフォルトの名無しさん2005/06/15(水) 21:12:44
>>46 まあアプレットを使いたい人間にJWSを勧めれば
誤爆と勘違いされても仕方ないだろうな。
0049デフォルトの名無しさん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));だと文字化けします。
アドバイスお願いします。そういったことを書いてあるサイト等ご存知でしたらお願いします。
0050デフォルトの名無しさん2005/06/15(水) 22:39:38
>>48
アプレットを使いたい人間って誰のこと?
0051デフォルトの名無しさん2005/06/15(水) 22:46:59
>vector.addElement(array);
これっていけるんだっけ?

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

0056デフォルトの名無しさん2005/06/16(木) 09:12:59
>>54
最初は同じようにレス仕様と思った。
けど、エラーが出る理由が分からなかった。
エラーって何?>>49
0057デフォルトの名無しさん2005/06/16(木) 12:49:50
兄弟スレにカキコしたら、混んでいた為すぐに流れて、回答が得られなかった為に
このスレに移動してきました。
ClassLoaderの動作で困ってます。
自作したクラスローダーで任意の場所のクラスファイルを読み込んで動作させたいのですが、
その時に読み込まれるクラスが内部クラスを使用していると、その内部クラスが読込めないとエラーになってしまいます。
先輩方に対処及びアドバイスをお願いします、以下にソースを載せます。

//ロードされるクラス
public class LoadedClass {

   public LoadedClass(){
      System.out.println("LoadedClass");
      innerClass inner = new innerClass();//コメントにすると動作する
   }

   public class innerClass{
      public innerClass(){
         System.out.println("innerClass");
      }
   }
}
0058572005/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;
   }
}
0059デフォルトの名無しさん2005/06/16(木) 13:38:49
インナークラスは別クラスだぞ
0060572005/06/16(木) 13:59:22
>>59
動きを見てると、どうやらそのようですね。
そのインナークラスをClassファイルから読込みたいのですが、
どのようにして読込んで良いか、まったくわからない状態なんですよ。
何か良い案ないですか?
ちなみにインナークラス使わないでやるってのは無しでw
0061デフォルトの名無しさん2005/06/16(木) 14:09:39
ファイルから読み込む程度なら既存のクラスローダつかったほうが
0062デフォルトの名無しさん2005/06/16(木) 14:25:59
>>60
インナークラスなしで。
0063デフォルトの名無しさん2005/06/16(木) 14:34:05
インナークラス持ちのクラスをコンパイルするとどんなファイルができ
るのか考えれば、何をすればいいのかは明白でしょ。

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

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

InnerClass は public static 宣言されている必要あり。
0069572005/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();
    }
  }
}
0070デフォルトの名無しさん2005/06/16(木) 15:39:51
URLClassLoader に指定するのはクラスファイルそのものではなくクラスパスだ。
URL url = new URL("file:///c:/");
0071デフォルトの名無しさん2005/06/16(木) 15:56:21
>>67
なあなんでURLClassLoaderのAPI仕様を読まないかなあ。
確かにぐぐって情報を集めるのは大事だが、まず一次情報源だろ。
0072572005/06/16(木) 16:13:56
>>70
ありがとうございます、クラスファイルじゃなくてクラスパスを指定するんですね
>>71
すみません、確かにAPI仕様書をみればクラスパスを指定って書いてありました。
>>アドバイスをくれた方々
お騒がせしました。なんとかいけました。
最終的には
String fName = "D:\\test\\LoadedClass.class";
↓
String fName = "D:\\";
このようになりました
0073デフォルトの名無しさん2005/06/16(木) 16:19:38
任意の場所からクラスロードが目的でなければ、素直に -cp に D:\ を指定して
Class.forName() でやった方が良いと思うが。
0074572005/06/16(木) 16:30:54
>>73
プラグイン追加型のシステムなので、ユーザーがプラグインの場所等を指定する為、
起動時にはどこにあるかわからないから、それだとちょっと無理かな
0075デフォルトの名無しさん2005/06/16(木) 16:33:13
クラスパスルート指定を間違ってただけか
FAQだな
0076デフォルトの名無しさん2005/06/16(木) 17:22:52
プラグインシステムなら既存のフレームワーク
流用したほうが57レベルなら近道だろうなあ。
0077デフォルトの名無しさん2005/06/16(木) 17:47:16
>>76
プラグイン的なシステムって多岐にわたるので既存のものを使うって難しいぞ
たとえばゲームとかでもつかうし
0078デフォルトの名無しさん2005/06/16(木) 18:01:32
>>77
一行目と二行目のつながりが全然わからないんだが、
ためしにOscarがゲームに不適な理由とか具体的に
示してくれないか?
0079492005/06/16(木) 21:39:01
54さんのやり方で解決しました。
ありがとうございました。
0080デフォルトの名無しさん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スクリプトで書くといいね。

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

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

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

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

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

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

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

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


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

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

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

皆の衆よ! 良いな!

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

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

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

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

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

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

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

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

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

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

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

やっぱり上手くファイル存在チェックが出来ません
0127デフォルトの名無しさん2005/06/19(日) 17:36:23
>>126
で?
0128デフォルトの名無しさん2005/06/19(日) 17:36:45
>>126
うまくいかないコードくらい載せてみれば?
0129デフォルトの名無しさん2005/06/19(日) 17:49:33
マイクロソフトJAVAって無くなったの?
0130デフォルトの名無しさん2005/06/19(日) 17:54:46
初歩的な質問かもしれませんが教えてください
intやshortなどのプリミティブ型を
byte配列に相互変換する方法はありませんか?
int → byte[] → int みたいな感じです
0131デフォルトの名無しさん2005/06/19(日) 18:24:15
>>130 自分でシフトして代入していくしかないんじゃないの?
0132デフォルトの名無しさん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が見えてない。
0133デフォルトの名無しさん2005/06/19(日) 18:39:52
>>129
>>125
0134前スレ9432005/06/19(日) 20:44:36
それが、実行環境からSV1が見える状態にしてもチェック出来ないのです
0135デフォルトの名無しさん2005/06/19(日) 20:47:54
マイクロソフトJAVAって無くなったの?
0136デフォルトの名無しさん2005/06/19(日) 20:51:49
>>135
>>125
0137デフォルトの名無しさん2005/06/19(日) 21:36:49
>>134
コードと詳細な環境を晒さないと
もうあなた以外のだれにも解決できないと思うよ
0138前スレ9432005/06/19(日) 21:50:07
うーん、携帯からなんで難しいです…

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

まぁ、釣りだろうな・・・
毎度毎度引っかかってる俺がいるわけだが_| ̄|○
0146デフォルトの名無しさん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 個

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

というか一番最後のエラーにちゃんとそう書いてある....
0149前スレ9432005/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になるようなのです・・・
0150デフォルトの名無しさん2005/06/20(月) 11:01:26
>>149
俺ならあちこちにSystem.out.println()を挿入して、
変数内容を表示させてみる。
あと、Fileを使うときは、File#list()を取得してみる。
初めからbooleanばかりじゃわかりにくいからね。
0151デフォルトの名無しさん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

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

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

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

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

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

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

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

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

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

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

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

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

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

\\Srv1\C\

は

\\\\Srv1\\C\\

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

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


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

じゃダメなんかい?
01981962005/06/21(火) 13:20:18
>>197
そんな便利なメソッドがあるんですね。それでいけました。ありがとうございます。
0199デフォルトの名無しさん2005/06/21(火) 14:29:30
GUIで
class a{
   int a[][] = new int[2][2];
   ・・・・・2*2の同じ画像が出るようにしてあります
}
class b{
ここで例えば[0][0]の画像が押されたら
[1][1]の画像が変るというような処理を行いたいのですが
クリックされたのはどこの画像なのかを識別するには
どうすればいいのでしょうか?
0200デフォルトの名無しさん2005/06/21(火) 14:49:15
やさしいMaja
0201デフォルトの名無しさん2005/06/21(火) 15:34:43
>>199
int配列との関係が不明。
適当なリスナを用意する。
0202デフォルトの名無しさん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);
}
}
0203デフォルトの名無しさん2005/06/21(火) 16:05:54
>>202
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/jar.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jar/jar.html#JAR%20Manifest
0204デフォルトの名無しさん2005/06/21(火) 16:08:27
>>202

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

ところで、日本語localeでのjava.text.BreakIterator.getWordInstance()
はどういう動作になるんだろうか。
0253デフォルトの名無しさん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にばらされた文字列が入ってるはず。


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

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

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

メソッド名も変数名も間違ってないです.
02722672005/06/22(水) 23:56:58
解決した
0273デフォルトの名無しさん2005/06/22(水) 23:58:05
↓怒りの鉄拳
0274デフォルトの名無しさん2005/06/23(木) 00:02:31
          _
      ミ ∠_)
         /
         /   \\
 ウイーン  Γ/了     | |
  ウイーン  |.@|    | | ガッガッガッ
       | / | .     人
       |/ |    <  >_Λ∩ <267
      _/  | //. V`Д´)/
      (_フ彡           /
0275デフォルトの名無しさん2005/06/23(木) 00:18:58
>>274
すごく素敵です。
0276デフォルトの名無しさん2005/06/23(木) 02:14:11
byte[] a= (なんか配列)
を
String b = new String(a, "UTF-8")とやってから
b.getBytes("UTF-8")とやっても元のAの配列に戻ってくれません
数も合わねー
こういうものなんでしょうか?
元にもどる方法がありましたら誰か教えてください
02772622005/06/23(木) 07:13:33
>>749
>>263-264
質問しただけなのになんでそんなムキになってるの?
02782622005/06/23(木) 07:13:51
749は無視してくれ。
0279デフォルトの名無しさん2005/06/23(木) 07:14:42
>>266
今度は「当てつけ」の誤用が来たか。
0280デフォルトの名無しさん2005/06/23(木) 07:20:31
>>276
具体的にbyte配列にどんなのを使っているの。具体的数値とかどうやって得られたとか。
0281デフォルトの名無しさん2005/06/23(木) 07:23:21
>>280
そんなの関係ありますか?値によって動きが違うんですか?
0282デフォルトの名無しさん2005/06/23(木) 07:34:51
あります。
02832762005/06/23(木) 08:41:03
>>280
普通の文字列を配列にしたものではないです。
そういうのだと上手くいきますね。
配列に入ってる値はbyteの域内のほぼランダムな値です。
十進数で表示させると−128から128までの値のどれかがめちゃくちゃに10個くらいならんでます。

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

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

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

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

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

まぁ小手先の細工はしょせん小手先の細工ですたが。
0308デフォルトの名無しさん2005/06/24(金) 00:12:15
JAVA初心者なんですが、JAVAってexeファイルは作れないのでしょうか?
0309デフォルトの名無しさん2005/06/24(金) 00:15:22
>>308
http://pc8.2ch.net/test/read.cgi/tech/1046627795/1-304
03103012005/06/24(金) 02:05:11
>>304
レスありがとうございます。

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

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

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

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

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

いろいろ考えたのですが原因がどうしてもわかりません
どなたか教えてくださいませ
03163152005/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 );
03173152005/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);
}
}
03183152005/06/24(金) 11:29:30
事故解決しました
板汚しごめんなさい
0319デフォルトの名無しさん2005/06/24(金) 13:37:35
キーボード入力した文字が数値か
判定したいのですが何を使ったら宜しいですか?
0320デフォルトの名無しさん2005/06/24(金) 14:08:59
最近のって、昔からだろw
最近にちゃんねるはじめたのか?
0321デフォルトの名無しさん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);
  }
}
0322デフォルトの名無しさん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)
0323デフォルトの名無しさん2005/06/24(金) 14:56:32
デコードされた orz

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

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

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

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

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

とりあえず現状では

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

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

EAR
 WAR(自分アプリ) without クラス、ライブラリ
 MDB
 lib
  使用するクラス、ライブラリ一式
0346デフォルトの名無しさん2005/06/25(土) 08:13:27
>>341
ターミナルからps axして、pidを調べ、killで止める
0347デフォルトの名無しさん2005/06/25(土) 16:30:49
お願いします。
graphicsクラスを使って表示した図形をbmpなりpngなりの画像で保存する方法って、ありますか?
Alt+PrntScrnで毎回保存するのはばかげているし。
0348デフォルトの名無しさん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がなかった。
メソッド化するなら真偽値で返したほうがいいかもな。
0349デフォルトの名無しさん2005/06/25(土) 17:31:12
いかん、手持ちのコードから取ってきたのでcomponentの中身を
画像に吐き出すコードになっている。

component.paint(g) のところを g.draw(xxx)の呼び出しの羅列に
してももちろんOKのはず。
0350デフォルトの名無しさん2005/06/25(土) 17:41:36
ありがとうございます。よく分からない部分もあるけど試してみます。
0351デフォルトの名無しさん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 でも怒られてしまいます…
0352デフォルトの名無しさん2005/06/25(土) 23:25:15
>>351 jarのなかのjarはクラスパスに含めることは出来ない。
03533512005/06/25(土) 23:35:46
>>352
回答ありがとうございます。
ではjarの中にjarを入れてはいけないということでしょうか?
また、jarの中にjpgを入れた場合も同様にダメなのですか?
03543512005/06/25(土) 23:46:42
ageます
0355デフォルトの名無しさん2005/06/26(日) 00:18:23
jar の中に jar はだめ。どうしてもしたいなら展開して含めればいいが
勝手に人のものを、自分の jar に含めるのはお勧めできない。
jpg は問題ない。
03563512005/06/26(日) 00:37:18
>>355
勉強になりました。ありがとうございます。
0357デフォルトの名無しさん2005/06/26(日) 03:19:19
他のファイルから↓のように書いて図形を持ってきました。
/********** paint ***************/
public void paint(Graphics g) {
○○○ h3 = new ○○○(200, 100, 50, Color.blue, Color.green);
h3.construct(g);
}


その図形をGUIプログラムによって表示された画面をクリックしたときに表示されるようにしたいんですけど、

public void mouseClicked(MouseEvent e) {
Graphics g = getGraphics();
                            ←     ここにはなんて書けばいいんでしょうか? (e.getX() e.getY()を使って)
g.dispose();
}
0358デフォルトの名無しさん2005/06/26(日) 03:29:23
解決しました。スレ汚しすいません。
0359デフォルトの名無しさん2005/06/26(日) 03:49:07
>>351
jarの中のjarを読み込めるClassLoaderを作って
実行時にそのClassLoaderを使って自分で読み込めばよい。
0360デフォルトの名無しさん2005/06/26(日) 10:12:51
JARファイルに含めたファイルはgetResource等で読み込むことができますが、
このファイルの最終更新日時を取得することは可能でしょうか?
0361デフォルトの名無しさん2005/06/26(日) 10:29:14
JSPで\web-inf\classesに作ったクラスを使用するにはどうしたらいいですか?
0362デフォルトの名無しさん2005/06/26(日) 10:35:28
>>361
importする。
0363デフォルトの名無しさん2005/06/26(日) 10:41:00
>>360に便乗で質問させてください。
getResourceをstaticブロックで行うことは可能でしょうか。
0364デフォルトの名無しさん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を使うというのはみとめられてないのでしょうか??
0365デフォルトの名無しさん2005/06/26(日) 13:53:03
()の組み合わせを数えてみれ
0366デフォルトの名無しさん2005/06/26(日) 14:45:48
>>363
public class Foo{
  static{
    URL url = Foo.class.getClassLoader().getResource("...");
  }
}
03673602005/06/26(日) 14:53:56
やっぱりJARファイルの中のファイルの最終更新日時、というのは
ムリなんでしょうか。
0368デフォルトの名無しさん2005/06/26(日) 15:00:49
JAR ファイルの場所が分かるなら ZIP ファイルとして読み込みゃ分かるだろ。
そもそも何がしたい? 設定の自動リロードか? バージョン表示か?
0369デフォルトの名無しさん2005/06/26(日) 16:20:33
>>362
クラスパスさえ通っていればimportはまったく関係ない
0370デフォルトの名無しさん2005/06/26(日) 17:40:54
>>368
アプレットを含めたJARファイルを作成して
<applet archive="〜.jar" ・・・>
という風にしていて、JARファイルの中のファイルをローカルにコピー
するのですが、既にコピーされている場合はその処理を飛ばす、
ということをしたいのです。

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

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

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

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

ワラタ
0389デフォルトの名無しさん2005/06/26(日) 23:26:51
>388
ワロスwww
0390デフォルトの名無しさん2005/06/26(日) 23:30:29
>>389
自演かよ。
0391デフォルトの名無しさん2005/06/27(月) 05:41:18
アプレットで、ボタンをクリックしてWEBページを開きたいんだけど
そういう事をする為のライブラリってありますか?
0392デフォルトの名無しさん2005/06/27(月) 06:01:58
AppletContext#showDocument()
0393デフォルトの名無しさん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になるのかわかりません。
説明もらえますか?
0394デフォルトの名無しさん2005/06/27(月) 06:41:26
>>393
そのコードだとその結果になるのは当然だとしか言いようがない。
おまえが期待する結果は何だ?
0395デフォルトの名無しさん2005/06/27(月) 06:51:35
xとかyとかiとかjとか配列とか
あんさんはエクセルか!!!!!!!!!!!
0396デフォルトの名無しさん2005/06/27(月) 07:03:16
どんな流れで、そうなるのか教えてちょ
。
0397デフォルトの名無しさん2005/06/27(月) 07:09:12
>>395
死ねば?
0398デフォルトの名無しさん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だよ!
0399デフォルトの名無しさん2005/06/27(月) 09:24:40
FlowLayoutで垂直方向に中央揃えって出来ませんか?
0400デフォルトの名無しさん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?
 英語ですいません、答え合わせをしたいんですけど、どなたか
 お願いします。
0401デフォルトの名無しさん2005/06/27(月) 14:08:27
>>400
> Fraction c = (Clone) a.clone();
コンパイル通らねーんじゃ?
0402デフォルトの名無しさん2005/06/27(月) 14:31:50
>400
答え合わせならまずキミの解答を書こうな。

しかし、Fraction(num, denom)はmethodじゃなくてconstructorだろ、と言いたい。
0403デフォルトの名無しさん2005/06/27(月) 16:46:18
TreeSetがTreeMapを使われて実現されているのは何故ですか?
TreeMap<E, Object>となっていますが、Valueの方を使わないなら無駄なので、
Treeを使ってTreeSet, TreeMapを実装した方がよさそうですが。
0404デフォルトの名無しさん2005/06/27(月) 16:47:42
わざわざ別で実装するの面倒だしな
0405デフォルトの名無しさん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" のような設定が可能だったようです。
0406デフォルトの名無しさん2005/06/27(月) 23:37:06
>>390
?
>>389==>>388という自演?
少なくとも>>388 != >>120だ
0407デフォルトの名無しさん2005/06/27(月) 23:38:17
>>391
ある。
0408デフォルトの名無しさん2005/06/27(月) 23:41:18
>>399
できる。
0409デフォルトの名無しさん2005/06/27(月) 23:46:02
>>399
つ [BoxLayout]
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/BoxLayout.html
0410デフォルトの名無しさん2005/06/28(火) 05:44:02
初期化ではなく、byteやintなどの配列の各要素にまとめて値を代入したいのですが、
int a[] = {116,184,17663,8211,5816};
みたいな初期化の文みたいにまとめて書く事って出来ませんか?
a[0] = 116;
a[1] = 184;
...
と書くしかないんでしょうか?
0411デフォルトの名無しさん2005/06/28(火) 06:38:02
>>410
いまいち何言ってるかわからんけど処理の途中に

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

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

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

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

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

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

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

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


ん?ファイルシステムがツリー構造じゃないシステム上で実装されたJavaは(あるとしたら)どうなるんだ?
0428デフォルトの名無しさん2005/06/28(火) 20:22:59
>>417
おい
0429デフォルトの名無しさん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}となる。
このように左から小さい順にならばないのです。
先輩方私にどうか正しい考え方を教えてください
0430デフォルトの名無しさん2005/06/28(火) 20:49:53
なんでもそうですがコンピュータはミスをしません
間違った指令を忠実に実行します
己を信じるな、全部己を疑え
0431デフォルトの名無しさん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();
  }
}
0432デフォルトの名無しさん2005/06/28(火) 20:56:48
>>430
そんなことないですよね。
0433デフォルトの名無しさん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)を使うとうまくいくのはなぜでしょうか。
0434デフォルトの名無しさん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化。

こんな感じだとどうでしょう?
0435デフォルトの名無しさん2005/06/28(火) 21:22:05
ALTキーを押しっぱなしにしてくれるような命令はありませんか?
あるボタンを押したときと同じ処理を,キーボードの'A'を押したときにも
行わせたいのですが,このようにするにはALTも押さなくてはなりません。
(ニーモニックキーとして使用)
KeyListenerを実装しようとも思ったのですが,
それだとactionPerformedの中の処理と同じ内容をコピーしてこなくてはいけないので
効率が悪いと判断してニーモニックキーを使用しています。
0436デフォルトの名無しさん2005/06/28(火) 21:28:06
>>435
KeyListener と ActionListener の中で同じメソッドを呼べば良い。
0437デフォルトの名無しさん2005/06/28(火) 21:30:29
>>436
やっぱりメソッド化ですか。
おとなしくそうします
0438デフォルトの名無しさん2005/06/28(火) 21:31:45
System.load とか System.loadLibrary でDLLをロードした後、
明示的に解放することは可能でしょうか。
0439デフォルトの名無しさん2005/06/28(火) 21:58:36
JInternalFrame 内のどのコンポーネントにフォーカスが当たっていようが [CTRL]+[S] で
編集中の内容を保存したいんだけど、JInternalFrame の全部のコンポーネントに
KeyListener を仕掛けなきゃだめ?
0440デフォルトの名無しさん2005/06/28(火) 22:17:21
>>433
描画前にリペイントよびだしてどうする
0441デフォルトの名無しさん2005/06/28(火) 22:33:05
repaint()はupdate(g)を呼び出すだけなんじゃないんでしょうか?
0442デフォルトの名無しさん2005/06/28(火) 22:45:44
>>441
ね
0443デフォルトの名無しさん2005/06/28(火) 23:27:23
JEditorPane で選択範囲 (まぁ任意の位置です) を強調したり斜体にしたりフォントや色、
大きさを変えたりするのってどうやるんでしょうか? ヒント教えてください。
0444デフォルトの名無しさん2005/06/28(火) 23:36:58
HashMapとHashTable
ArrayListとVectorの違いがよくわかりません
同期の問題が出る場合後者を使うって感じで問題ないのでしょうか?
前者をラップして使う方法は一応ですが知っています
あとHashSetに対応するものもあると思うのですがわかりません・・・
この辺りのコレクションフレームワークの使い分けとかを教えてください
0445デフォルトの名無しさん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 に対応するものは無かった。
04464442005/06/29(水) 00:04:50
>>445
ありがとうです
じゃあ同期取る必要があるときはラップして使うのが推奨みたいですね
早いレスありがとうでした
0447デフォルトの名無しさん2005/06/29(水) 00:07:21
つーか大概同期取りたいときは処理手順が重要になるだろうし
いじる場所で排他かけるべし
0448デフォルトの名無しさん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){}

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

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

0459デフォルトの名無しさん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);
0460デフォルトの名無しさん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);
}
0461デフォルトの名無しさん2005/06/29(水) 10:02:21
つづき3

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

0462デフォルトの名無しさん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();
}
}
}
}

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

>>507
>まぁ今は destroy() は実装されてないけど。
僕はここの認識が無かったようです。
destroyは実装されていないんですね。
0527デフォルトの名無しさん2005/07/03(日) 22:35:23
>>525
運営ってのはどういう人たちなの?
0528デフォルトの名無しさん2005/07/04(月) 17:39:59
文字列の中にascii以外の文字が含まれているかどうかの判定って
どのへんのクラスを使えば出来るのでしょうか?
0529デフォルトの名無しさん2005/07/04(月) 17:44:22
String, Character
0530デフォルトの名無しさん2005/07/04(月) 19:29:22
そもそも使い終わったスレッドオブジェクトって、
完全に破棄できるの?
0531デフォルトの名無しさん2005/07/04(月) 19:46:13
意味が分かりません。
スレッドの処理が run() メソッドを抜ければ active でなくなりシステムリソースは
開放され、インスタンス自信もいずれ GC が回収してくれる。
0532デフォルトの名無しさん2005/07/04(月) 20:00:34
>>531
自信は回収しない。
0533デフォルトの名無しさん2005/07/04(月) 20:15:02
ルートからたどれなくなってスレッドも終了していれば回収してくれるんじゃ?
0534デフォルトの名無しさん2005/07/04(月) 20:19:52
このように技術系の板ではネタ突っ込みにマジレスされることがあるので注意が必要です。
0535デフォルトの名無しさん2005/07/04(月) 20:38:12
オブジェクト自身は回収できても自信は回収のしようが無いな
0536デフォルトの名無しさん2005/07/04(月) 22:28:54
漏れの自信は厨房時代にGCされますたorz
0537デフォルトの名無しさん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側だけで
クローズすれば良い気がするのですが、スレッドの場合はアドレス渡しされるという話も
ききます。
どなたか教えて下さい。
0538デフォルトの名無しさん2005/07/04(月) 23:05:57
まず(ry
0539デフォルトの名無しさん2005/07/04(月) 23:19:28
>>537
ServerSocket serverとSocket socketのどっちの話をしてるの?
あと、server.accept()が2つあるのは間違いだよね。
05405372005/07/04(月) 23:21:27
>>539
Socketクラスの方です。
このようなプログラムで例外が発生すると、次回起動時にServerSocketを生成する時点で
エラーが発生するようです。
あとacceptは間違いです。すいません。
0541デフォルトの名無しさん2005/07/04(月) 23:22:29
JTableでテーブルの各セルを初期化(空白)にしたいのですが、
全てのセルに対してsetText("")をしていると、
テーブルが大きいと非常に時間がかかってしまい困っています。
効率の良い初期化方法ってありますでしょうか。
0542デフォルトの名無しさん2005/07/04(月) 23:41:01
>>540
「次回起動時に」の問題を解決するのが目的なら、Socket socketの方は関係ない。
server.bind()の前にserver.setReuseAddress(true)すればいい。

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

0543デフォルトの名無しさん2005/07/04(月) 23:45:33
>>536
参照切らない限りGCされないはずだぜ。
0544デフォルトの名無しさん2005/07/04(月) 23:53:41
>>541
setText?
レンダラを自作してるってこと?
05455412005/07/05(火) 00:00:59
>>544
ごめんなさい、自分で間違えてました。
テーブルの全てのセルに対して、
setValueAt("", i, j); (i, jはセルのインデックス)
を呼んでます。
これをどうにか高速にできないかなぁと思ってます。
05465372005/07/05(火) 00:07:42
>>542
ありがとうございました。参考になりました!
0547デフォルトの名無しさん2005/07/05(火) 00:17:52
>>545
TableModelってしってる?
05485322005/07/05(火) 00:48:07
>>534
気を付けます・・・
0549デフォルトの名無しさん2005/07/05(火) 09:27:29
>>543
>>536はきっと厨房時代に引きこもりになっちゃったんだよ。
外部との接触がなくなった→他者から参照されない、ってことだな。
0550デフォルトの名無しさん2005/07/05(火) 14:15:36
j2sdk1.5.00のjavacで、ソース中に浮動小数点数の0を
リテラルで記述するとjavacが落ちるという
謎の現象に遭遇した……。
1.5.04入れたら直ったけど、何だったんだろう……。
0551デフォルトの名無しさん2005/07/05(火) 18:55:35
AMD64版のJDKは64ビット版のOS用?
それともAMD64搭載マシンだったら通常のXPでもOK?
0552デフォルトの名無しさん2005/07/05(火) 18:56:54
いいわけないじゃない
0553デフォルトの名無しさん2005/07/05(火) 19:18:57
>>549
面白くないですよ。
0554デフォルトの名無しさん2005/07/05(火) 22:00:55
>>448
同じ現象なんですが、どうすればいいんですかね?
0555デフォルトの名無しさん2005/07/05(火) 22:23:58
同一のクラスローダーでクラスを再ロードすることって出来ないのでしょうか?
Javassistでテスト対象のクラスを書き換えながらテストを出来たらいいなぁと思ったのですが…
0556デフォルトの名無しさん 2005/07/06(水) 00:16:34
>>383 そのままおまえにそっくりかえしてやるよ
おまえは現実世界であってもきちがいだろうけど
0557デフォルトの名無しさん2005/07/06(水) 01:10:41
一週間以上前のレスに噛み付くきちがい ハッケーン
0558デフォルトの名無しさん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);
...
}
0559デフォルトの名無しさん2005/07/06(水) 01:32:03
>>558
不可能。
C だとできるんだけどね〜、Java でも使えたら良いのにと思う状況に年に何度か遭遇する。
05605582005/07/06(水) 06:39:31
>>559
ありがとう。なんでできないんですかね。簡単に実現できると思うんだけど。
0561デフォルトの名無しさん2005/07/06(水) 09:28:27
メソッドの中でstaticにする意味って何?
0562デフォルトの名無しさん2005/07/06(水) 09:54:13
>>558
static の意味と変数のライフサイクルちゃんと分かってるか?
0563デフォルトの名無しさん2005/07/06(水) 10:58:59
>>556
図星感溢れる、いいレスですね
0564デフォルトの名無しさん2005/07/06(水) 12:13:29
>>562
あるメソッドの中に限定されたスコープを持つ static 変数ってあったら便利よ?
C/C++ とか使ったことない?
0565デフォルトの名無しさん2005/07/06(水) 12:19:27
Cなら使うけど、C++でつかうようだとクラス設計をちゃんとしたほうがいいよ
スコープを最小にしつつ保持範囲を広げるなんてクラス使えないから使うという感じ
0566デフォルトの名無しさん2005/07/06(水) 12:31:25
private static な変数は public static な変数よりスコープが小さく保持範囲が同じわけだが、
それをメソッドまで縮めると「ノー」? よくクラス設計語ってるねw
0567デフォルトの名無しさん2005/07/06(水) 13:01:23
>>566
クラス変数とローカル変数の違いがあるから単にスコープを縮めて適用していいと
いうことにはならないと思うが。
0568デフォルトの名無しさん2005/07/06(水) 13:22:12
クラス変数をメソッドのスコープに限定するという話ですが「クラス変数とローカル変数の
違いがあるから」ってどういう意味ですか?

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

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

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

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

一方scanfの実装がアレだが安全性のためには仕方ないか
0573デフォルトの名無しさん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);
}
}
0574デフォルトの名無しさん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 です。
0575デフォルトの名無しさん2005/07/06(水) 15:15:07
> これだとクラス変数と読めるが。じゃあクラス変数ではだめな理由は何?
だからそのいまさらな考え方が下段だっての。「if(DEBUG) assert(test); で
だめな理由は?」「enum一項目づつにクラス割り当てるのでだめな理由は?」
「多態化でだめな理由は?」「Object[] 渡しでだめな理由は?」
JDK のバージョンが上がるまでは「正論」だった論法な。

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

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

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

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

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

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

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

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

というのはさておき

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

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

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

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

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

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


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

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


その他、同分野に関する良著など、
ご存知でしたらご教示いただけると助かります。
0603デフォルトの名無しさん2005/07/08(金) 19:07:22
http://pc8.2ch.net/test/read.cgi/tech/1119115837/
があるけど、どっちが本スレ?
0604デフォルトの名無しさん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();
   …
  }
 }
}

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

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

このように定義されるのを避けたいのです。
0607デフォルトの名無しさん2005/07/08(金) 20:36:26
イテレータで取得されるとまずいのか?ナニソレ
06086042005/07/08(金) 20:40:36
itemには100件データが入ってるとして、Aのクラスはスレッド実行させ、子スレッドで順次nextを実行させたいのですが。
0609デフォルトの名無しさん2005/07/08(金) 21:15:30
>>602
http://www.airbitway.com/meng/cp.php?site=airppcpc&req=171_01_01&category=houjin&sort_type=0
0610デフォルトの名無しさん2005/07/08(金) 21:22:47
イテレータがいやならインデックスアクセスにすれば?
0611デフォルトの名無しさん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;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

だから immutable であればスコープは問題ないというような主張をしてるのは
幸せ回路持ったお前だけだっての。
0805デフォルトの名無しさん2005/07/10(日) 01:11:00
>>801
スコープ全般の話をしてたつもりの奴がいるのか
0806デフォルトの名無しさん2005/07/10(日) 01:11:46
>>599さん
ありがとうございます。
sjisのファイルを読み込んでsjisで書き込むプログラムを教えてください。
なんですが、getbyteを使ったプログラムを教えていただけませんか?
0807デフォルトの名無しさん2005/07/10(日) 01:12:29
>>804
だから、immutable だったり定数だったりするなら、
そうでない変数よりスコープ限定するメリットが少ないって言ってるの。
0808デフォルトの名無しさん2005/07/10(日) 01:12:41
>>805
具合が悪くなって immutable に逃げた奴ならいるがな。
0809デフォルトの名無しさん2005/07/10(日) 01:13:52
> そうでない変数よりスコープ限定するメリットが少ないって言ってるの。
それはお前の「感想」だろ。
0810デフォルトの名無しさん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 // -->

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

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

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

Singleton なら private だろうし、事実上定数だよね?
0824デフォルトの名無しさん2005/07/10(日) 01:22:52
>>822
それってキミの事かな?
0825デフォルトの名無しさん2005/07/10(日) 01:23:55
>>824
なに顔真っ赤にしてリロードボタン押してんのさwww
0826デフォルトの名無しさん2005/07/10(日) 01:23:55
で、繰り返すとSingletonでつかうクラス変数はimmutableでもないし定数でもないんだけど、これじゃだめ?
immutableでも定数でもなくて、あるメソッドからしか使わないクラス変数なんてしょっちゅうあるんだけど。
0827デフォルトの名無しさん2005/07/10(日) 01:25:21
>>824
いや、残念だが君の事だ。
0828デフォルトの名無しさん2005/07/10(日) 01:25:41
> immutableでも定数でもなくて、あるメソッドからしか使わないクラス変数なんてしょっちゅうあるんだけど。
俺は それほど無いんだけど。
0829デフォルトの名無しさん2005/07/10(日) 01:25:59
>>823
便宜上でもなんでもないよ。>>711のように、大きいオブジェクトは必要になるまで作らないようにするから、そのときはfinalなんてつけない。
0830デフォルトの名無しさん2005/07/10(日) 01:26:14
>>827
と言う事にしたいわけだw
0831デフォルトの名無しさん2005/07/10(日) 01:27:18
>>829
>>803 はスルーっすかw
0832デフォルトの名無しさん2005/07/10(日) 01:29:32
>>831
829 ではないが、影響範囲って知ってるか? なぜ必要以上にスコープを広げないか分かってる?
0833デフォルトの名無しさん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();
を消すのがベストだと思います。
0834デフォルトの名無しさん2005/07/10(日) 01:30:43
>>830
それはお前だろ。
0835デフォルトの名無しさん2005/07/10(日) 01:33:34
>>832
影響範囲っても Singleton ならクラス内でしょーが。

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

まぁ、学校の宿題で簡単なチェックを通れば良いってんならそれでも良いかもしれんが。
0837デフォルトの名無しさん2005/07/10(日) 01:40:04
結局スコープ全般の話してんじゃんw
0838デフォルトの名無しさん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;
}

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

他人を散々叩いてきたから、自分が優位に立たないと我慢が出来ないんでしょ。
08408002005/07/10(日) 01:41:48
>>813
>>833
ありがとうございましたお。
isr.close()を削除する方向で行きたいと思います。
0841デフォルトの名無しさん2005/07/10(日) 01:43:32
>>839
いや、旗色悪くなったから逃げたがってる奴がいるだけにしか見えないが?
0842デフォルトの名無しさん2005/07/10(日) 01:45:00
>>838
基本的には >>711 の Singleton と同じなんですけど。
0843デフォルトの名無しさん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);  // ← ここでしか使わない
}
0844デフォルトの名無しさん2005/07/10(日) 01:47:42
>>838
> 「メリットが少ない」っていってるが、それはおまえの主観だって。
いや、>>793 も同意してるね。

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

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

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

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

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

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

っつか、>>855 return の前に counter-- しないとマズイのでは?
もしくはtry の位置が違うとか。
0867デフォルトの名無しさん2005/07/10(日) 02:07:31
>>863
違うのか?
・Staticインポート
・Enum
・autoboxing
・foreach文
・可変長引数
・・・
genericsやannotationに混じって、どうでもいい拡張がされてるけどな。
0868デフォルトの名無しさん2005/07/10(日) 02:08:35
>>865
immutable とか定数っぽい例があんだけ出てるんだから、もっと出せるでしょ。
0869デフォルトの名無しさん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);
}
0870デフォルトの名無しさん2005/07/10(日) 02:10:17
>>867
enum が「ちょっと気持ち悪い」程度を解消するためのもんなのか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

後は任せた。
0936デフォルトの名無しさん2005/07/10(日) 03:40:05
このスレはもう埋めちゃっていいから他のスレに流出したり次スレ立てたりしないでね。
0937デフォルトの名無しさん2005/07/10(日) 03:43:20
>>930
どうって、「メリットがある」でいいじゃん。プログラムすっきりするし。例もたくさんあったし。
おまえにとってはメリットじゃないんだろうけどな。
0938デフォルトの名無しさん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'´,.-='、ー-‐"
0939デフォルトの名無しさん2005/07/10(日) 03:45:02
>>838
本筋から外れるが

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

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

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

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

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

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

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

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

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

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

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

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

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

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

メリットと思われるのはこれだけ。ヒットしたほとんどはおまえと反対側の書き込み。
おまえは必死に「メソッドローカルなインスタンス変数を導入するときに問題になるかも」とか
言い訳してただけだろ。言及?笑わすな。
0968デフォルトの名無しさん2005/07/10(日) 06:19:41
おい、またわだいそらしのまほうで誘導されてるぞw
0969デフォルトの名無しさん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'´,.-='、ー-‐"
0970デフォルトの名無しさん2005/07/10(日) 06:37:40
あと 30
次スレは http://pc8.2ch.net/test/read.cgi/tech/1119115837/ に合流 ヨロ
0971デフォルトの名無しさん2005/07/10(日) 06:39:16
>>970 に補足。
メソッドローカルのクラス変数云々の議論は合流させないでください。
0972デフォルトの名無しさん2005/07/10(日) 06:40:43
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。
散々メリット君がインスタンス変数に言及してるんだしさ。

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

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

てか、質問スレ的には、質問「メソッドローカルなクラス変数は
ありますか?」回答「ありません。」で、本来は終了すべきだ。
0975デフォルトの名無しさん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 になってる。
0976デフォルトの名無しさん2005/07/10(日) 08:55:04
>>975
知らない人って結構いるのね。
BugParade の方も更新されてるから(実は Closed, fixed になってたりする)
vote してなくても watch list に入れてればメール来ると思うんだけど。

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

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

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

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

検索のヒント
- キーワードに誤字・脱字がないか確かめてください。
- 違うキーワードを使ってみてください。
- より一般的な言葉を使ってみてください。
0996デフォルトの名無しさん2005/07/10(日) 22:23:36
>>994
http://www.google.co.jp/search?hl=ja&q=%E3%82%B2%E3%83%8D%E3%83%AA%E3%82%AF%E3%82%B9&lr=
0997デフォルトの名無しさん2005/07/10(日) 22:35:42
>>993
1.5 から追加された generics 使ってるから 1.2 では Object になってる。

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