【初心者】Java質問・相談スレッド58【大歓迎】
あ、あの、えと、、、2、、、ゲット?
>>前スレ982
なるほど。
DataInputを使った場合、返り値などでストリームの終端を認識できないのですね。
それにしても
while (true) {
try {
byte b = in.readByte();
} catch (EOFException ignore) {
break;
}
sha.update(b);
md5.update(b);
}
のほうが綺麗だと思うんですが、どうなんでしょ?
ループを例外で抜けるのは違和感があるのですが
結構使われてるもんなんでしょうか?
998 名前:デフォルトの名無しさん[] 投稿日:04/12/07 20:46:31
java.io.Serializableとは、どのように使用するものですか?
APIにある、直列化とはどういう意味でしょうか・・。
---
前スレで上の質問をした者です。
>3
ご回答ありがとうございます。
なるほど。ネットワークを通したり、ファイルを保存するなどに使用するのですね。
これは、こうしなきゃちゃいけない、という必須のインターフェースですか?
ファイルの保存なんかはSerializableをインプリメンツしなくてもできそうな気がするのですが。
質問です。
Javaの解説サイトや、ここのJavaスレッドでもよくみる hoge とは、何ですか?
>>8 Javaに限らず、困ったらhogeなんですね。勉強になりました!
というかググらずに質問してごめんネ(´・ω・`)
10 :
デフォルトの名無しさん:04/12/07 21:36:42
JavaやJSPなどでブラウザ上に日本語を表示させるときに
文字列エンコードなど設定します
私のやり方はとにかく、いろいろ試してうまく表示できればそれでOKという事にしていますが
当然、そういうやり方だと大規模プロジェクトなどで無理が出てくると思います
文字コードに関して
このときはShift_JIS、このときは他のコードを使うとか
そのような決まりというか、設定パターンとかあるのでしょうか?
機種依存文字、特にユーザーが多いWindowsでの文字を扱いたいのならMS932かUTF-8で。
12 :
デフォルトの名無しさん:04/12/07 22:01:39
IIS+Tomcatの環境なんですが、ServletからJNIを使ってC++で作った関数を使用し、
値を返そうとしています。
そういったことはこの環境でできるのでしょうか。
13 :
デフォルトの名無しさん:04/12/07 22:02:50
IIS+Tomcatの環境なんですが、ServletからJNIを使ってC++で作った関数を使用し、
値を返そうとしています。
そういったことはこの環境でできるのでしょうか。
できる
15 :
Java初心者:04/12/07 23:21:40
はじめまして。
Microsoft Visual Studio97のJ++を使っております。
VJ++(1.1)でのビルド中にエラーの回避策についてお聞きしたいと思っております。
Javaアプレットのプロジェクトを新規に作成して、ソースに手を加えずにコンパイルしたら、
error J0051: 'lang' は未定義のパッケージです
error J0051: 'applet' は未定義のパッケージです
error J0051: 'awt' は未定義のパッケージです
の3つのエラーが出てきます。
ソースの先頭に、
import java.applet.*;
import java.awt.*;
でインポートしています。
また、ためしに import java.lang.*; を追加しても同様に上記3エラーが発生します。
VJ++、MSDNをインストール後、VisualStudio ServicePack3 を適用しています。
※VJ++のインストール時に、カスタムですべてインストールしています。
おわかりの方がおられましたら、お手数をおかけしますが回避策を教えていただけましたら
幸いです。
OS:Windows2000(SP4)
>>15 Javaを使いたいのかVisual J++を使いたいのかをまず決めること。
* Visual J++を使いたい場合 → MSのサポートに電話する
* Javaを使いたい場合 → Visual J++を捨てる
好きな方を選べ。Visual J++(の言語)はJavaではない。
18 :
デフォルトの名無しさん:04/12/08 01:32:38
JSPで帳票をプレビュー、印刷をしたいのですがどうすればいいのですか?
できれば100枚で数分でプレビューしたいのですが・・・。
java.awtのボタンに画像を設定することってできるのですか?
21 :
Java初心者:04/12/08 10:07:58
>>16 ありがとうございました。
VJ++を捨てます。
22 :
デフォルトの名無しさん:04/12/08 11:21:24
VJとJavaの違いって何ですか?
ググったんですけどよくわからなかったので
23 :
デフォルトの名無しさん:04/12/08 11:42:47
Javaアプレットでジョイパッドからの入力を受け取る方法はありますか?
24 :
デフォルトの名無しさん:04/12/08 11:51:01
Integerの使い道がわかりません・・・
どなたか宜しくお願いします
初心者ページなんかで少しどんなもんかjavaをいじってみたんですが、
基本的にDOSで動かしたりwebにのせたりするレベルのものしか作れないのですか?
VBの基本をかじった以来の言語なんですが、かなりとっつきにくいのですが・・・
多言語でもこんなもんなんですか?
>>25 コマンドラインベースでやればどこもそんなもんかと
.NETでもCでもすべて
何をしたいのだ?
VBはとっつきやすそうなのが売りなんだから、
他言語がとっつきにくいのは当然じゃまいか?
29 :
デフォルトの名無しさん:04/12/08 13:18:43
31 :
デフォルトの名無しさん:04/12/08 13:34:51
>>25 実はVBの難易度とJavaの難易度はさほど変わらない。
VBは一見とっつきやすそうで実は難しい。
さらに現在では、VBの方が実用的な言語であると一般的に評価されている。
長らく崇拝されていたオブジェクト指向の様々な欠点が指摘
されるようになって久しいが、その中心は、三大要素の一つ「継承」の
実用機会の少なさだ。完成されたライブラリでしかその恩恵が得れない。
継承よりもinterfaceの方が実際には重宝されている。つまり継承は
理想論でしかなかった。Javaはinterfaceを一つの方法でしか表現せず、
その重要性に気づかなかった。C♯はその点をかなり解決してる。
javaは、オブジェクト指向の理想的側面ばかりを重視して、実用レベル
現場レベルの事まで考慮しなかった。つまり初期設計が失敗している。
Javaの将来性は無いと言えるだろう。
マジかよ
継承バリバリ使ってる俺はどうすればいいんだ・・・
継承ってスーパークラスとかサブクラスとかのあれだっけ。
今職業訓練でやってるが、一人でやってた時は理解できなかったのと、
まんどくさそうだったので使わなかったな。
職業訓練って刑務所とか少年院でやるやつだっけ?
Swingとか継承バリバリつかってるだろ
それにJava使ってる限りObjectかならず継承するだろうに
VBの利点はあのとっつきのよいライブラリ群
こまわりはきかないが、それなりに扱える
ただ、.NETになって便利な独自ライブラリがごっそり抜けてAPIが統一されたわけだ
Win32APIにくらべれば.NETははるかに便利ではあるが
ある意味感覚的にはWin32APIのみを使ってVBで書かせるような感じ
CやC#なら単純にAPIレベルであそこまで高機能なのはひたすら便利
基本となるAPIが暮らすライブラリとしてはじめて実用的になったのがJavaで
そのあとつづいてきた.NETということで今後は楽になるだろう
BeOSはC++使ったAPIでそれなりにリンクで苦労していたので
互換性維持しつつ実用度という点では厳しかったのだ
C#どころかVB.NETとかも仕組みなどはJavaまんまだが
グラフィック周りはかなり違うアプローチをとってる
BCBやDelphi触っていた人はSwingよりWindowsFormのほうがVCLに近い
というかSwing機能多すぎ
ラッピングしてAWTのように使いやすいライトウエイトコンポーネントが
標準であってもいいかもと思っている
逆にいじり倒すならこれほど面白いものもないが、業務プログラムで
時間に追われている場合はさっさと自分のプログラミングスタイルつくらんときつい
というのがいろんなのを触ってきた俺の意見だが、まとまりなくてゴメーヌ
36 :
デフォルトの名無しさん:04/12/08 14:05:42
継承についての初歩的な質問なんですが
class A {・・・ と class A extends Object {・・・
では、何か違いがあるのでしょうか?
教えてください、お願いします。
いや、かならず継承はするが、それ以上継承しないし。
自分から継承を使おうという積極性と、理解力の両方が俺にはかけているんだよ。
継承はフレームワークを使うときや作るときぐらいにしか使わんね。
オブジェクト指向関連の書籍をみても、継承よりも委譲による機能の拡張を進めてるから
無理して使うこともないんじゃないか?
>>25 VBの基本をかじった程度でJavaがとっつきにくいとかよくいえるな。
プログラム作業がとっつきにくいんじゃねぇの?
39 :
Java初心者:04/12/08 14:43:11
JAVAアプレットを作っていて、IEで表示させています。
JAVAのソースを修正→コンパイル→jarコマンドで結合して、アプレットを表示させますが
ソース修正前のアプレットしか表示されません。
いちいちキャッシュをすべて削除してIEを起動しなおしてアプレットを表示させなければ
修正後のアプレットは表示されないのでしょうか?
44 :
デフォルトの名無しさん:04/12/08 15:31:24
ラップクラスの定義は
ラップクラス=カプセル化でFA?
45 :
デフォルトの名無しさん:04/12/08 15:49:33
46 :
Java初心者:04/12/08 15:56:01
49 :
デフォルトの名無しさん:04/12/08 16:01:40
>>48 どう違うんでしょう?
調べてもわかりませんでした。
申し訳ありませんが、
>>23をお願いします。
できないと言っても信じてくれないので、
できないことを明示したいのです。
>>49 カプセル化はオブジェクト指向の特徴の一つ。
ラッククラスはプリミティブ型をインスタンスオブジェクトとして扱うために用意されたクラス。
53 :
デフォルトの名無しさん:04/12/08 16:58:45
はじめまして
JAVAでtoString関数で、int型の変数の値を文字列につなげていきたいと思い
import java.lang.*;
:
String tmp = "":
int aaa;
tmp +=toString(aaa);
としましたが、コンパイル時に
java.lang.Object の toString()は(int)に適用できません。
とエラーが出て、コンパイルできませんでした。
回避策がわかりましたらお手数ですが教えていただけないでしょうか?
>>53 面白い冗談だな
String tmp = "":
int aaa;
tmp += aaa;
もしくは
String tmp = "":
int aaa;
tmp += Integer.toString( aaa );
>>53の補足事項です。
int aaa;
と
tmp +=toString(aaa);
の間でaaaに何か値を入れています。
>>54 ありがとうございました。助かりました。感謝いたします。
57 :
デフォルトの名無しさん:04/12/08 17:32:41
Stringのオブジェクトから先頭1文字抜き出して、その文字のunicodeを取得するには
どうすればいいですか?
>>57 それ基本中の基本だと思うんだがマニュアル読んだか?
>>57 String.charAt(0)
サロゲートペアとか合成文字に対応したいならもっとコードが必要になる。
>>57 int a = Character.getNumericvalue( str.charAt(0) );
すみません。追記です
日本語文字列を入力してカタカナかどうか判断したいのですが、
日本語を Character.getNumericvalueでunicode化すると-1が帰ってきてしまいました。
>>61 全然Unicode取得する必要ないじゃない
String str = "テスト";
if ( Character.UnicodeBlock.of( str.charAt(0) ) == Character.UnicodeBlock.KATAKANA ) {
System.out.println( "(・∀・)カタカナ!" );
}
Character.getNumericvalue ってその文字が '1' だったら 1 を返すとかゆーメソッドでしょ。
66 :
デフォルトの名無しさん:04/12/08 19:12:00
今JAVAを勉強してる初心者だが、教えてほしいことがある。
a〜eの変数名のうちJavaで使えないのはどれ??
a _count
b 123count
c $test
d This_is_a_long_name
e new-word
答えはbとe
eはわかるがbはなぜダメだかがわからない(:_;)なぜだか教えてくださいm(__)m
67 :
デフォルトの名無しさん:04/12/08 19:13:04
あ…すませんm(__)mわかったのでやっぱいいです。迷惑かけました
68 :
デフォルトの名無しさん:04/12/08 20:06:37
しつもーんです
文字列が
String[] a={"あい","うえ","お","かか","きき","こ"}
String[] b={"あい","け","お","こ","ちち","た"}
と二つあるとき,bに対してaの文字列を引いた文字列
だけを取得するためのサンプルプログラムをおせえてちょ−だい
この場合は、結果的に{"け","ちち","た"}のみになりまちょ
ArrayList l = new ArrayList(Arrays.asList(b));
l.removeAll(Arrays.asList(a));
l が望みの結果を保持する java.util.List になってる。
String[]が欲しいなら
String[] c = (String)l.toArray(new String[l.size()]);
一行で書けるかと思ったら removeAll が boolean 返してて無理だったorz
> String[] c = (String)l.toArray(new String[l.size()]);
String[] c = (String[])l.toArray(new String[l.size()]);
だった。orz
>>69 ごめん答えちゃった。orz
Java Web StartでSSOを実現する方法について教えてください。
具体的には、既存のJWSアプリケーションにサーバ側認証を加えて
他のアプリケーションと認証情報を共有する方法
74 :
デフォルトの名無しさん:04/12/08 20:53:59
Random random = new Random;
d = ( m + t ) + random;
演算子+は、int
java.util.Randomに適用できません。ってなります。ということは、使えないということですか??
>>74 > Random random = new Random;
ここでコンパイルエラーになるか、別の言語の質問だな。
>>74 それ以前に、それじゃRandomがnewできないだろ。
Random random = new Random( System.currentTimeMillis() );
d = ( m + t ) + random.nextInt();
インスタンスオブジェクトとプリミティブ型との間で+が使えるのは、インスタンスオブジェクトのクラスがStringの場合だけだろ。
77 :
デフォルトの名無しさん:04/12/08 21:19:39
Random random = new Random();
int r = random.nextInt(10);
で、できました!!
78 :
デフォルトの名無しさん:04/12/08 21:27:19
>>69 すみませ〜ん
>>71 ありがとうございます。。^^
習ってやってみたら、エラーが起こってしまった・・・
こんな感じにやってみました。
public class www extends DefaultHandler {
public static void main(String[] argv) {
String[] a={"あ"};
String[] b={"あ","い","さ","し","す","か","そ"};
ArrayList k = new ArrayList(Arrays.asList(b));
k.removeAll(Arrays.asList(a));
String[] c = (String[])k.toarray(new String[k.size()]);
for(int i=0;i<c.length;i++){
System.out.println("key:"+c[i]);}
}
}
後は宿題掲示板の方で聴いて見ます。。ありがとです。
/* Test.java */
class A {
public String value = "ABC";
}
class B extends A {
public int value = 12345;
}
class Test {
static public void main(String[] args) {
B b = new B();
printValue(b);
}
static void printValue(A a) {
System.out.println("a == (B) a : " + (a == (B) a));
System.out.println("a.value : " + a.value);
System.out.println("((B) a).value : " + ((B) a).value);
}
}
これをコンパイルして、java Testとやると、
a == (B) a : true
a.value : ABC
((B) a).value : 12345
こうなります。a == (B) a なのに、a.valueと((B) a).valueの結果が違います...。
何故なんでしょうか??
>>80 ありがとう。読んでみまつ。
こういった決まりが自然に思えるようになりたいものです。
>>31 いや、VBなんてマジで言ってるの?VB.NETなんかダサいだけのC#だよ。
あんなものにしがみ付いているのは結局VB6しか使えなかったおバカさんだけ。
それともVB6の話?そんなに旧VBが実用的ならどうしてMSがVBを捨てたのか
一度良く考えてみるといい。
なぜC#が全くJavaのパクリで、なぜCLRがJVMのパクリなのかもね。
MSの実装力がSunのそれよりも高いのは認めるが、君の頭が悪いのはそれとは関係が無いよ。
85 :
デフォルトの名無しさん:04/12/09 01:23:19
SolarisでInetAddress.getLocalHostを実行して取得できるホスト名はどこから
持ってきているのかご存じの方はいらっしゃいませんか?
>>19 .NETでPDFで出力したことがあるんですが、何種類かPDFソフトを
使ったけど遅いのです。30枚で5分くらいかかりました。
それも、かなりの高性能のサーバーで。
ソフトによっては処理速度の速いものもあるんですかね?
88 :
デフォルトの名無しさん:04/12/09 02:00:24
Solarisの陽のもとに
>>88 馬鹿にすんなよwwwこのペテン師がwwww
91 :
デフォルトの名無しさん:04/12/09 09:34:13
Javaでc言語とかでつかうgprofみたいなツールあります?
>>91 >>92は古かった
java -Xrunhprof:help
これで見てくれ
デーモンスレッドって、あんまりデーモンっぽくないよね。
俺の考えるデーモンは「バックグラウンドでひっそりと仕事が来るまで待」であり、
「ご主人様と一緒に消えてなくなる」様なものではない。
なんか、Javaと同じような意味で「デーモン」って言葉を使ってる例を知ってる?
95 :
デフォルトの名無しさん:04/12/09 09:57:58
俺は内部的にメイドスレッドと呼んでる(;´д`)
デーモンスレッドはあくまでデーモンスレッドであって
デーモンプロセスとは違うということだな。
97 :
デフォルトの名無しさん:04/12/09 10:13:16
>>82 ここまでキレる君のみじめな人生に同情する。
所詮スレッドだから
>>96のいうとおり
VMが消えたらさすがにのこらんでしょ
main()ってなぜ必要ですか?
アプレットは使ってないんですけど。。。
俺はmainなんて使ってないぜ。
主にexecuteを使ってる。
>>100 なかったらどこからプログラムを開始したらいいかわからんだろ。
アプレットもinitがないと動かんだろ。
>>102 細かい話かつ揚げ足取りで申し訳ないんですけど、
とりあえず、init は無くても動きません?start 使うとか。
アプレットとかコンテナから呼ばれるのは特殊なタイプ
>>103 >とりあえず、init は無くても動きません?start 使うとか。
102じゃなくて悪いがAppletクラスにあるじゃん。
あなたがオーバーライドしてないだけで
無ければ親クラスであるAppletクラスのinitを使うだけ。
>>105 なるほど。そういえばそうですね。ご指摘ありがとう。
107 :
デフォルトの名無しさん:04/12/09 21:27:53
JAVAでXMLの要素を追加及び変更のプログラムを作成しようとしているのですが
非常に難しく、どうすればよいのかが解らないのです。。
例えば
---あ.xml----
<a>
<b>
<c>
</c>
</b>
<d>
</d>
</a>
------------
特定のタグ例えば<c>の下に
--
<k>
<g>あああ</g>
</k>
--
を追加することは出来るでしょうか?
このような特定のタグを指定して
追加するプログラムを作成するためには、どうすればよいのか教えてください。
また、特定のタグ名を指定してその要素名を変更する事はできるでしょうか?
例えば
<g></g>を<年齢></年齢>に変更するためにはどうすればよいのでしょうか?
サンプルプログラムを作成してくれるとうれしいのですが、
どのようにすればよいのかわからないので、質問しにきました。
JavaというよりDOMについてまず勉強してくれ
w3cパッケージはそのままの実装だ
109 :
デフォルトの名無しさん:04/12/10 00:19:16
Windows2000 pro でJDK5.0をインストールしたんですが、環境変数「PATH」にインストールディレクトリ
を指定しなくともコマンドプロンプトから「java」で実行できました。
これはどういうことなんでしょうか?
どこかで環境変数「PATH」に同等の設定が行われていると考えていいんですかね?
>>109 ユーザー環境変数にJava_homeが既に設定してあるんじゃないの?
windowsでJDKインストールすると
C:\Windows\System32
あたりにjava.exe javaw.exeがコピーされてるはず
デフォルトのパスにそこが通っているからそれが呼ばれてるだけ
>>110 ちょっと先ほどJDK5.0アンインストールして「java」してみたところ、既にインストールしておいたJDK1.4.2_02
のjava.exeが実行できました。そして「javac」してみたところ、以下のログがプロンプトにでました。
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
今またJDK5.0インストールしています。
ちとレス分けます。
>>111 JAVA_HOMEはシステム、ユーザどちらでも消してありました。
>>112 おお。C:\Windows\System32 を見てみました。
すると、java.exe, javaw.exeはあるんですが、javac.exeなどはありませんでした。
おっしゃる通りのようです。
解決しました^^
お三方、ありがとうございましたm(_ _)m
確かに、環境変数PATHに、「C:\WINNT\System32」 が追加されてました。
どうやら決定的なようです。それではm(_ _)m
質問なんですが、ビットをシフトしてマスクかけるときなど、
符号ビットがたたないように、Cではunsigned を使用してましたがJAVAには
それがないのでどうすればいいのでしょうか?
符号ビットが立たないシフト演算(論理シフト、>>>)があるよ。
シフト演算なんてめったに使う必要ないはず
画像処理くらいか?
画像処理です。1画素2バイトのバイナリデータを読み込んで、2バイトが反転
してしまうので、8ビット右へ左へシフトして、論理積を求めて、下位10ビット
を取り出すために0x03ffのマスクかけて10ビットを取り出す。というそうさをし
たいんです。
>>121 符号付変数で気にせずビット演算すれ。
右シフトに>>>を使うように気をつけるだけで
普通にできる。
マスクかける時は、Cでは宣言の部分で
unsigned short mask = 0x03ff
のようにしていたのですが、JAVAではどのようにすればいいですか?
short int mask = 0x003ff;
なるほど。ありがとうございます^^
intはいらないやごめん
つーかマルチポスト死ね
定数ならfinalにした方がよくない?
となりのスレから来た超初心者ですが、
バイナリデータから
ランダムアクセスで指定のデータ位置から
文字列として読み込む方法誰か教えて!!
バイナリデータってbyte[]の事か?
インデックスをランダムで指定すればいいだろ。
131 :
デフォルトの名無しさん:04/12/10 11:01:29
>>129 多分この辺?
RandomAccessFile
133 :
デフォルトの名無しさん:04/12/10 12:55:48
質問です。
String変数を宣言するときに
String s = "";
と
String s;
とするのとで
前者のほうが初期化されていて安全かと思われますが、
後者で宣言する場合のメリットデメリットってあるんでしょうか?
好みでいいんじゃない?
初期化されてなければコンパイラが警告出してくれるし。
>>133 初期化したいんなら
String s = null;
でいいじゃん。
136 :
133:04/12/10 14:07:34
>>135 いや、nullだとsに何か値を設定するのを
ロジックで忘れてたら、ぬるぽなんで、
nullで初期化はまずいです。
>>136 それがでるということは初期化してないということだから
コンパイル時にエラー吐き出してくれる初期化なしのほうがいいとおもうぜ
あんたの話のレベルを考えるとね
でも宣言場所によるからそこも気をつけるべし
正直、こんな枝葉末節にこだわってもしょうがない気がする
public void db2WorkMainNormal(List data){
try{
con = dataSource_.getConnection();
System.out.println(con.isClosed());
con.close();
System.out.println(con.isClosed());
} catch (SQLException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
上記ソースだと、
con.close()したところでメソッド起動中に
com.sun.jdi.InvocationExceptionが発生しているようです。
この例外はなんですか?
あと、その後のcon.isClosed()を実行するとSQLExceptionが発生するのは
なぜでしょうか?
すいません、解決したっぽいです。
DB2DataSource型のデータソース使ってたんですが、
これをDB2SimpleDataSource形に変えたらExceptionでなくなりました。
141 :
デフォルトの名無しさん:04/12/10 15:53:29
簡単な電卓作ろうかと思ってますが、
標準入力から受け取った文字列から、最初に表れる数字以外の位置を
知るにはどうしたらいいんでしょう?
>>141 一文字ずつcharAtでもらってきて調べれば?
143 :
141:04/12/10 16:07:43
String line = reader.readLine();
for(int i=0; i<line.length(); i++){
if(line.charAt(i)=='+' || line.charAr(i)=='-' || line.char
At(i)=='*' || line.charAt(i)=='/'){
int idx = i;
}
}
ってな感じですかね??
144 :
141:04/12/10 16:09:32
間違えた〜
== じゃなくて equalsだったw
>>143 いいとは思うが、idxはそのfor文の中だけで使うのか?
char型だから==でOKだろ
147 :
141:04/12/10 16:12:43
連続ですみませんが
9−3の様な簡単な計算しかできないものです
148 :
141:04/12/10 16:14:47
>145
そうですね、始めにintで宣言しとかないと意味ないですねw
149 :
デフォルトの名無しさん:04/12/10 16:30:06
質問させてください。
とても単純なことなのですが
調べても分かりませんでした。
JAVAで扱うことのできる最大の数値
っていくつになるのでしょうか。
long int だと20桁しかいきません。
よろしくおねがいします。
>>149 BigDecimal,BigInteger使えばメモリが許す限り。
プリミティブなら各ラッパークラスのMAX_VALUEを見ろ。
さーみんなで20桁で足りないアプリを考えてみよう・・・・
数値計算なんて余裕で足りないだろ
そういう計算するやつがBigDecimalに気がつかないとは思えないのだが
ウブなねんねなんだよ
JavaでEXEファイルって作れますか?
作れるよ
>>156 レスども。
一番簡単な方法を教えていただけませんか?
158 :
デフォルトの名無しさん:04/12/10 18:05:28
ボーランドのJビルダーで作れる。
byte単位でかきこめるからつくれる
>>159 問題は「書き込むバイト列をどう作るか」だね。
bccでも呼び出せ
162 :
デフォルトの名無しさん:04/12/10 20:52:41
自分自身のprivateメンバにアクセスするときも
Getter/Setter(特別な処理はしていないもの)を使うべきですか?
ベクトルクラス作ってるんだけど
private double x,y;
public Vector2D(double x, double y) {
this.x = x;
this.y = y;
}
こうなってるときに
public Vector2D(Vector2D v) {
this(v.getX(),v.getY());
}
こうするべきか
public Vector2D(Vector2D v) {
this(v.x,v.y);
}
こうするべきか。
>>162 内部でアクセサメソッド使うなんてばかげてる
>>165 ありがとー。
こっちのほうが理想的なのか。
でも嫌う人多そうだな〜。
場合によるが単なるアクセッサなら直接アクセスのほうが好ましい
>>168が正解かと
なんらかのロジックや安全性とかが必要であれば
一度作って安全性が確保されたメソッドを使いまわすべきだ
170 :
デフォルトの名無しさん:04/12/10 22:54:16
アクセッサをクラスにしたらいい。
public Vector2D(double x, double y) {
this.x = x;
this.y = y;
}
か
public Vector2D(double x, double y) {
setX(x);
setY(y);
}
か、なら直接アクセスでもいいかなと思うが、
public Vector2D(Vector2D v) {
this(v.x,v.y);
}
か
public Vector2D(Vector2D v) {
this(v.getX(),v.getY());
}
か、ならアクセッサ経由の方がいいと思う。
インスタンスが違うんだし。
あれ?変な記号になってしまった。失礼しました。
173 :
デフォルトの名無しさん:04/12/10 23:30:16
初心者で申し訳ないですが、どうも
>>171さんの言っておられることが
わからないですね。
public Vector2D(Vector2D v) {
this(v.x,v.y);
}
か
public Vector2D(Vector2D v) {
this(v.getX(),v.getY());
}
上記部分ですが、
privateフィールドである。自分とは別インスタンスのフィールド
使うことできるのですか。
this(v.x,v.y)
このように
>>173 public Vector2D(Vector2D v) {
~~~~~~~~~~
これは自分自身ではない(かもしれない)からだろ
馬鹿
人にイチャモンつける前に勉強しろ糞漏らし
自分で試せる人間は「初心者です」なんて言わない。
177 :
デフォルトの名無しさん:04/12/11 00:18:58
173です。
すみません別にイチャモンつけてるわけでもないのですが、
文章にすると、平坦な言葉になってしまって、
試しても試しきれなくて、
class Test48{
public static void main(String args[]){
new Vector2D(new Vector2D(new Vector2D(.....
俺も
>>173のように思っていたので、
>>162の直後の連中は質問読んでいないだろ、
と思って試したら出来てしまってびっくり。
勉強しなおしだ。
でも、やっぱり、直後の連中は質問をよく読んでいなかったと思うのだが。
// Vector2D.java
public class Vector2D {
private double x,y;
public Vector2D(double x, double y) {
this.x = x;
this.y = y;
}
public Vector2D(Vector2D v) {
this(v.x,v.y);
}
public double getX() { return x; }
public double getY() { return y; }
public static void main(String[] args) {
Vector2D v1 = new Vector2D(1,1);
Vector2D v2 = new Vector2D(v1);
System.out.println(v2.getX()+","+v2.getY());
}
}
「こんなプログラムを書こう」から
「じゃあこんなクラス・インターフェースに切り分ければいいな」までの
考え方がわかりません。
この辺りを勉強するのによい書籍・サイトはありますか?
Javaの質問とは言えないかもしれませんが
文法のわかっている言語がJavaくらいしか無いので
できればJavaで解説されているものだと嬉しいと思い
ここで質問させてもらいました
>>180 たぶんそれだけじゃわからんだろ。
可視性 (private とか public とか) は
「インスタンスごと」ではなくて「クラスごと」に見え方を決めてるって
はっきり言ってやらないと。
>>179 まあ「画面」を考えて、ボタンとか押した時に、処理をお願いする先になるクラスを考えて、その処理をするクラスが
使うデータを考えれば大体まとまる。
>179
それはOOPを会得する上での永遠のテーマかも知れないOTL
どっかの人は「『泣きながらクラスを3度書き直す』ことを繰り返す」とか言ってた。
あと、本屋でオブジェクト指向分析の本を探して、手に負えそうな奴を読んでみるとか。
185 :
デフォルトの名無しさん:04/12/11 01:10:02
>173です
>>180さん
>>181さんありがとうございました。
読みに行きます。
>>178さん
モジュールあげていただいてありがとうございます。
よく読んでみます。
186 :
デフォルトの名無しさん:04/12/11 02:08:17
インナークラスでは、privateでもフィールドが読める理由がわかりません。
Bは内側から外側だから分からないでもないのですが、
@、Aはなぜアクセスできてしまうのか教えてください。
public class Outer{
private int outerVar = 1;
public static void main(String[] args){
Outer out = new Outer();
Inner in = out.new Inner();
System.out.println(out.outerVar); //当然OK
System.out.println(in.innerVar); //@privateなのに読込OK?
in.print(); //Aprivateメソッド?
}
private class Inner {
private int innerVar = 2;
private void print(){
System.out.println(outerVar); //BOuterのprivate!?
}
}
}
187 :
デフォルトの名無しさん:04/12/11 02:30:38
>>186 Java言語規定にそう書いてるからです。
理論的にはアナタの言う通り、インナークラスの変数がアクセスできるのは
おかしいですけど、実務上便利な方を取ったとの事でしょう。
Sunの考えでは、あまり厳密なアクセス規制は実務上好ましくないようで
protected指定が同パッケージ内の全てからアクセスできたり、
private protectedを無くしてしまった事からも伺えます。
つまりSunの好みなのです。
>>187 なるほど。であれば深く追求しません。ありがとうございました。
実はこんな事実もある。
public class Hoge {
private int hage
public void huge( Hoge a) {
this.hage = a.hage; <---aのprivateフィールドに代入しているが、エラーにならないし、ちゃんと動く。
}
}
同じクラス同士にはアクセス修飾子は無効(Hogeはいつでも他のHogeにアクセスできる)という例。
>>189 今ごろ何言ってんだ?ちょっと上で散々やってんだろ。
>>183-184 ありがとうございました。
経験を積んで少しずつ慣れていきたいと思います。
サーバーを作っているのですが、
クライアントが接続してきて、Socketを取得して、
printWriter = new PrintWriter(socket.getOutputStream());
のようになっているとき、
クライアントが切断したことをどのように知ればいいのでしょう?
切断されているときにprintWriterに書き込んでもIOExceptionは発生しません。
自分が送信したデータが相手に届いたかどうか
確かめる方法があってもいいような気がするのですが。
193 :
デフォルトの名無しさん:04/12/11 10:34:45
Javaというか、AWTのクラスを読み始めたあたりで、
パソコンが二秒くらいフリーズしたように、マウスカーソルが動かなくなることがあるのですが、
これは漏れのパソコンだけかしら。
何か対処法ある?
>>192 java.io.PrintWriter#checkError() を使うしかない。
PrintWriterを使った時点で原因となった例外は受け取れないので、
それが不満ならPrintWriterは使わない事。
っつか、ドキュメントに書いてあるよね?
abstract class ユニット { フィールド:視界、座標、体力、主人公見つけフラグ、次回行動までの待ち時間 }
class ならず者 extends ユニット { メソッド:歩く、襲う、スる、逃げる }
class ドラゴン extends ユニット { メソッド:歩く、飛ぶ、噛みつく、炎を吐く }
class 村の人 extends ユニット { メソッド:歩く、無視する、話しかける }
などのクラスがあり、オブジェクトそれぞれが独自の行動をとるようにしたい場合、
ゲームマスタークラスをつくって、毎ターン、各オブジェクトをvisitするようにすべきでしょうか?
たいていの場合は「待ち時間」状態で何もできなくて、効率が悪い気がします。
より効率とメンテナンシビリティの良い作り方ってあるでしょうか?
198 :
デフォルトの名無しさん:04/12/11 11:56:22
Random random = new Random;
int r = random.nextInt(3);
String s[][] = new String[2][2];
s[0][0]="おはよ";
s[0][1]="こんばんは";
s[0][2]="こんにちは";
s[1][0]="かえれ";
s[1][1]="なんだ";
s[1][2]="このやろう";
s[2][0]="まて";
s[2][1]="いや";
s[2][2]="なんでもない";
System.out.println("あ・・・" + s[r][r]);
コンパイルはできるのですが、実行すると
Exception in thead"main" java.lang.ArrayIndexOutOfBoundsException:2 at Oyasumi.main(Oyasumi.java:14)
となります。なぜですか?教えてくださいm(__)m
とりあえずそれはゲーム製作板へ
俺もJavaでゲーム作ってるが言ってることはわかるようなわからんような
待ち時間状態で何もできないって意味不明だし
200 :
デフォルトの名無しさん:04/12/11 11:59:12
>>198 配列の要素が2×2=4個しかないじゃん。
使えるのはs[0][0]、s[0][1]、s[1][0]、s[1][1]だけ。
ArrayIndexOutOfBoundsExceptionは「配列の大きさを超えてまっせ」エラー。
しょっちゅう出るだろうから覚えとき。
201 :
デフォルトの名無しさん:04/12/11 12:18:10
200さん!ありがと!勘違いがわかりました
>>199 リョカーイしました。
各ユニットは行動毎に待機ターンがある、ということを書き忘れてました。
203 :
デフォルトの名無しさん:04/12/11 13:43:32
Integerクラスの
static int parseInt(String s)
は s を基数10の数値として変換してint型で返すとは、どういう意味なのかよくわかりません。おしえてもらえますか?
基数って小中学あたりでならわなかったっけ?
何進数かってやつだ
8進数とか2進数とか10進数とか
>>203 引数の文字列を「10進数」とみなして
変換するよってこと。
だいたい想像どおりの動作するから安心スレ。
206 :
デフォルトの名無しさん:04/12/11 14:02:07
>>203 int i = Integer.parseInt("100");
ってうやると、iには100が入るということです。
"100"という文字列を数値の100に変換しているわけ。
207 :
デフォルトの名無しさん:04/12/11 14:08:15
どうやら調べたところ最近はゆとり教育で基数変換は中学の数学にはいってないっぽいね
そのくせ高校入試にでてたとか問題があったようだ
209 :
デフォルトの名無しさん:04/12/11 14:22:33
>>208 あら、まじで?5〜6年前塾講バイトしてたころは、まだあったけどなぁ。
おれ文系だったから、かわいい女子中学生に逆に基数変換教えてもらったよ。
まあ、基数なんてのはリアルじゃ滅多に使わないからね。
やるだけ無駄。
無駄なつめこみ知識を課題から外すのは良い傾向だよ。
その空いた時間を独創的な学習に当てれば本当の意味での学力は
アップする。
日常でよく使う知識しか学校で教えないようになったらますますバカになる一方だな
そんなこともわからないようなバカがウジャウジャいるのが問題なのだが
>>207の場合「基数」って言葉を知らなかっただけだからまだよかったな
これが2進数や16進数自体知らなかったなら…
214 :
デフォルトの名無しさん:04/12/11 15:21:19
時刻・時間・角度を表す単位である分・秒は60進数。
2週間後テストだよ〜。
かったるい・・・
>>210 知識は無理矢理にでも詰め込まないと。
独創的な学習させるためには物事を考える土台となる
「十分な量の知識」がないと無理だぜ。
217 :
デフォルトの名無しさん:04/12/11 15:44:49
大体、努力、根性と全く無縁の日本の現代っ子(若者)が
ゆとり教育は良くない、厳しく知識を詰め込むべし
などと言う事自体おこがましい。
IPアドレスは256進数だな。
ブラウザの「印刷」を起動させることを
JSPかサーブレットでやりたいんですが、
方法があったら教えて下さい。m(_ _)m
>>219 本質的には違う。
↑これがつめこみ教育の弊害だ。
表面的な見方(知識)でしか、物事を判断できなくなってしまう。
>>220 アプレットをダウンロードさせて、それで印刷を実行するとか・・・
223 :
デフォルトの名無しさん:04/12/11 16:03:41
>>221 おれも一瞬ツッコミかけたが、どっちでもいいかと思った…。
時計が60進数とかいうのと同じ程度の違和感。
224 :
デフォルトの名無しさん:04/12/11 16:07:19
>>220 ブラウザに対してJSP、サーブレットができることは
HTMLの出力、画像データなどの出力ぐらいです
たとえばJavaScriptにそういう機能がない限り(知らんが)出来ない
他のやり方はJavaAppletをロードするHTMLを出力するようにJSP、サーブレットを作り
JavaAppletでそういう機能書けばできるとは思う
>220
ブラウザをIE決め打ちにして、サーブレット/JSPで返すHTMLにJavaScript埋め込んで
それで処理させるというのも手かな。
スクリプトの詳細は面倒でもWeb製作板行っとくれ。
227 :
デフォルトの名無しさん:04/12/11 16:21:30
つうか、自分で書いてて思ったけど
JavaAppletで印刷実行したとして
ブラウザのコンテンツ内容を印刷ってできるのかな
Appletの中に表示されているものだったらわかるけど・・・
228 :
デフォルトの名無しさん:04/12/11 16:26:52
>>504 含んでいるかどうかはしらんが
XMLのAPIで処理するとしたら
<br>タグとかは<br/>って書いておかないと
エラーになりそう
JTextPaneでTabサイズを変えたいのですがJTextAreaにしかsetTabSizeがありません。
どうやればいいですか?
230 :
デフォルトの名無しさん:04/12/11 16:41:49
javax.swing.text.TabSet
javax.swing.text.Style*(クラス&インターフェース)
JAVAはMSのサポートから外されるとかなんとか噂を聞いたのですが、
外されるとIEでJAVAアプレットを動作させるには
何か入れなきゃいけなくなるのでしょうか?(FLASHみたいに)
それから、
JAVAでペイントソフトみたいなやつと15パズルみたいなやつを作ったことがあるのですが、
このレベルからネットワークプログラミングをできるレベルになるまでには時間がかかりますでしょうか?
232 :
デフォルトの名無しさん:04/12/11 17:54:37
>>231 質問があまりにショボイ&いつの話だよって感じだが、本当につくったのか?
本のサンプルほとんど写しただけ、とかじゃなく?
233 :
デフォルトの名無しさん:04/12/11 17:54:56
ネットワークは超簡単だよ
どうしても不安なら、ファイル入出力を試してみたり
HTMLを手書きしてみれ
234 :
デフォルトの名無しさん:04/12/11 17:57:05
どの言語でもそうだが
IOを理解し自由自在に扱えるようになれば
大抵のことは何でもできるようになる
javaってなんで構造体ないの?
オブジェクトのコピー作るのもめんどくさいし。
Cで
struct POINT {
int x,y;
};
ってのがあったとして、javaで書くとしたらこう?
class POINT implements Cloneable
{
public int x,y;
public Object clone() {
try {
return (super.clone());
} catch (CloneNotSupportedException e) {
throw (new InternalError(e.getMessage()));
}
}
}
>>235 君はオブヂェクト指向に向いていないね。
Point クラスの中身でも見れ
238 :
デフォルトの名無しさん:04/12/11 20:04:03
>>235 確かにそうだな。
しかし、C♯にはある。
先のないJavaを捨ててC♯に乗り換えるいいチャンスかもしれない。
public Object clone() {
return new POINT(x,y);
}
だろ
>>235 Javaに構造体がないか探してたんだけど、やはりないのか・・・orz。
データテーブルを作成するのに便利なんだけどな。
チェーン構造とか作る時どうやってるんだろう。
その度にクラス作るのか?
241 :
デフォルトの名無しさん:04/12/11 20:32:32
>>240 仮に構造体がJavaにもあったとして、「その度にクラス作る」のと
「その度に構造体作る」の、何が違うの?
242 :
デフォルトの名無しさん:04/12/11 20:39:14
>>241 構造体はスタック領域に作られるから高速だが、クラスはヒープ領域に
作られるのでメモリ確保の手間がかかる。さらにメソッドテーブル作成
などでも時間とメモリを食う。これ位常識。
>>242 馬鹿には聞いていません。
>>240-241をよく見て、話を要点を絞って
一体どこに焦点を当てた話なのかを理解したら死んでください
244 :
デフォルトの名無しさん:04/12/11 20:50:27
>>242 構造体はスタック領域に作られるってあんた…
どこで仕入れた勘違い知識ですか。
auto変数とallocaしか使わないのか?
246 :
デフォルトの名無しさん:04/12/11 21:04:41
ローカルスタックとも言う。
一般にオブジェクトをプールするヒープ領域はジャンプテーブル方式で
参照チェインなのでどうしてもメモリアクセスが遅くなるが
参照(ポインタ)を必要としない構造体は、スタック領域にコンパクトに
作成されるのでクラスに比べて高速でメモリ効率もいい。
Sunが構造体を実装しなかったのは手抜き以外の何者でもないね。
コンパイラの実装やJVMコアレベルの知識の話だから、そこら辺を
踏まえてくれよ。
247 :
デフォルトの名無しさん:04/12/11 21:09:59
>>246 ちょい待て、構造体とクラスを比較してるってことは、C++での話じゃないのか。
それを「JVMコアレベルの知識の話」とか言われても、はぁ?ですな。
誰がそんな話をしてる
「その度にクラス作る」のと「その度に構造体作る」では
作業的な手間は大して変わらないって話だろ
>>246は自分が如何に頓珍漢なことを言っているのか一生気付かんかも知れんな。
250 :
デフォルトの名無しさん:04/12/11 21:29:28
>>242 >>246みたいに話のコンテキストを読まず、自分の知識を
披露したがるやつが一番イタいな。。。
だいたい何でもかんでもセッターゲッター作るのが気に食わない。
な〜にがオブジェクト指向だよ
252 :
デフォルトの名無しさん:04/12/11 21:32:56
>>251 ほう、じゃあどうであればオブジェクト指向なのか伺おうか
>>252 ただの独り言なんでほっといてください。
254 :
デフォルトの名無しさん:04/12/11 21:37:40
>>251は前橋読んでかぶれたな…。いや俺も好きだけどw
値のチェックがクラスの中でできるのは結構なメリットじゃね?
まぁ何もチェックしないセッターゲッター作るだけならpublicにしろよとは思うが
>>230 もうちょっとヒントでないですか?
TabSet使ってもTabサイズ変えられる気がしないんですが・・・どうやるんでしょう
>>241,
>>248 感覚的な問題だけど
自分にはクラス->一つの機能、データ群->構造体みたいな
切り分けがあるのでデータ群をクラスで作るのは気持ち悪い。
必要な物があったら必要なものだけ作れば良い。
構造体なら本当に必要なデータの塊だけど
クラスなら最低コンストラクタは作らなくてはいけない
(確かにたいした手間ではないとは思うが)。
C++的な知識、しかもうろ覚えで悪いがメソッドがあるなら
メソッドの位置を記憶したポインタ領域が new したときに
確保されるはず。
少しとは言え余計な物を作り、無駄な領域が使われる訳だ。
>>257 だから、無理してオブジェクト指向やるのやめれば?
それともC++がガチのオブジェクト指向だと信じているクチ?
259 :
デフォルトの名無しさん:04/12/11 23:25:06
>>258 C++も当然OOPじゃん。少なくともJavaよりはね。
多重継承による柔軟な継承、演算子オーバーロードやテンプレート、
フレンド関数による「多態性」、真のprotectedアクセス子やnamespaceによる
カプセル化と少なくともJavaよりは、OOPの機能が豊富に揃ってる。
javaは、OOPとは言い難い(むしろライブラリ委譲だろ)interface
とかで要所要所をごまかしてる感じがするね。
まあ、C++も完全なOOPとは言えないけどね。
釣りキター
マクロはオブジェクティブ、ミクロは関数型。これって最強じゃない?
>257は今後もCでバリバリに頑張って頂きたい。
JavaとかC#なんて、効率悪くて使ってられないっしょ?
てか、C/C++にしたってmallocやnewも標準のは効率悪くて使う気しないっしょ?
10万行くらいあるデータファイルから読み込んで処理するプログラムとかは
javaなんかじゃやってらんないね。Cマンセー
264 :
デフォルトの名無しさん:04/12/11 23:47:44
cout << なんたらとかやるよりかは、printfの方が簡単でいい
Javaで例外クラスを作るとき、
ExceptionかRuntimeExceptionを継承すると思うのですが、
どのように使い分けるのがベストでしょうか?
個人的に、プログラムの実装次第で発生させないように出来る例外
(あるいは、バグが原因で発生すると思われる例外)を
RuntimeExceptionのサブクラスにしています。
(例: 正の整数が入っているはずのint型変数に負の数が入ってしまっている)
で、サーバーが応答しない、みたいな、プログラムだけでは
どうにも対処できない例外をExceptionのサブクラスにしています。
こういう使い方で良いのでしょうか? 自信ないのですが。
RuntimeExceptionだってExceptionを継承してるんだから、
267 :
デフォルトの名無しさん:04/12/12 00:00:32
カプセル化とはいったい何なんですか?おりが使ってる本には、データとデータを操作するコードとを関連付けるメカニズム。って書いてあるがイマイチ??です。
で、君が検索したサイトには何て書いてあるんだい
>267
要するに
「白鳥は水中で激しく動かす足を見せない」
ということ。
270 :
デフォルトの名無しさん:04/12/12 00:11:12
パソがまだつながってないから、本でしか調べられないんだ(:_;)申し込んでからそろそろ2週間になるのに・・
カプセル化 【encapsulation】読み方 : カプセルカ
オブジェクト指向プログラミングが持つ特徴の一つ。データとそれを操作する手続きを
一体化して「オブジェクト」として定義し、オブジェクト内の細かい仕様や構造を外部から
隠蔽すること。外部からは公開された手続きを利用することでしかデータを操作できない
ようにすることで、個々のオブジェクトの独立性が高まる。カプセル化を進めることにより
オブジェクト内部の仕様変更が外部に影響しなくなり、ソフトウェアの保守性や開発効率が
高まり、プログラムの部分的な再利用が容易になる。
読み方 : カプセルりょく
273 :
デフォルトの名無しさん:04/12/12 00:22:01
カプセル化 (―か。Encapsulation)
薬のカプセルのように、パケットなどをあるヘッダで包み込むこと。異なる
層、あるいは異なるプロトコル環境でもスムーズに通信できるようにするため
の技術。
例えば、送信者がIPv4(インターネット・プロトコル・バージョン4)のパ
ケットをIPv6(インターネット・プロトコル・バージョン6)環境のネットワ
ークを通して、相手のIPv4対応のホストに送信する場合、IPv4パケットをIPv6
のネットワークで通すには、IPv4パケットをIPv6のパケットであるかのように
見せかけるため、IPv6のネットワークの入口で、IPv4パケットをIPv6ヘッダで
カプセル化してしまいます。するとIPv4パケットは、あたかもIPv6のパケット
のように扱われるので、IPv6のネットワークを通過できるようになります。そ
して、IPv6のネットワークの出口で、IPv6のカプセルを取り外すことによって、
IPv4パケットとして相手に送信することができることになります。
jarファイルでImageIconで画像が表示されないのがいくつかあるんですが
なぜ表示されないんでしょう?
getClass().getResource()でurlとってます
275 :
デフォルトの名無しさん:04/12/12 00:45:06
>>273とてもわかりやすかったです。ありがとうございました。
・→(・)→・→・(・)
こういうことだね!
ありがとうございます。
>>232 ペイントソフトもパズルも最初は解説サイトを見て写しながら勉強して、
その後理解できたかの確認のために、自分で変更を加えながら作り直しました。
>>233 ファイル入出力はやったことがないので、やってみます。
HTMLはなんとかかんとかlintでギリギリ満点取れます。
>>234 なるほど。
IOはほとんど知らないので勉強してみます。
servletの質問です。
送信元のURLを送信先に表示させたいのですが
どのようにしたらいいんでしょうか。
getServletPath()だと送信先のものが表示されて
うまくいきませんでした
280 :
デフォルトの名無しさん:04/12/12 01:33:08
つーか答える気もないくせに人のことばっか気にしてんな!
お前ら、何様だよ!
いっつもいっつもくだらないことばっか言いやがってよー
ちゃんと働けよ!暇人が!
真剣に答えてくれる人にはすいません。
そうゆう人にはマジで感謝してます。
>>278 おまえ調べる気ないだろ、、、
送信元のURLってのが何を指すかよくわからんけど
request.getRequestURI()のことか?
質問です。
文字列phoneに数字かハイフンじゃない文字が含まれていた場合に、
作動するようにしたいんですが
if (phone.matches("[0-9?-]+") == false)
でエラーがでるんですけど何故でしょうか。
そのエラーすら書かないクソは一生うんこ喰ってろ
メソッド matches(java.lang.String) は class java.lang.Stringで見つかりません。
というエラーです。
それはね、メソッド matches(java.lang.String) が class java.lang.Stringで見つからないからだよ。
日本語でエラー内容書いてあるのにわからないのはなぜ?ナゼ?
javaのバージョンが古いからできないということでしょうか?
解決法とかは・・
男なら自分で何とかしろや、ハゲが!
分かってるのに何故教えてくれないのか激しく謎ですが・・・
なんとか自分でやってみます
ありがdでした
>>290 そんな化石みたいなバージョン止めて新しいの使えば?
君の友達はみんなJ2SE5.0使ってるよ。
そのバージョンはすごいですねw
でもコンパイルを大学のunixでやってるので無理ですね・・
PCでコンパイル頑張ってしようかな・・;
情報を小出しにする奴はよっぽどバカなのか問題を解決したくないのかっちなのだろう
LinuxかSolarisならずいぶん前から5.0は使えるわけだが。
HP-UXでも5.0使えます。Mac OSXは1.4.2が最新
どうせ糞FreeBSDか何かでJDK1.1.8でも使ってるんだろ?w
PCでコンパイルしたら問題解決しました
J2SE5.0をネタだと思ってしまいました、失礼
一つ勉強になりました(かな?
では
ついでに大学にも5.0入れろや。こんな化石使わせんじゃねーよこの糞管理者が、ってな
299 :
247:04/12/12 08:28:22
>>258 無駄ものは作りたくないだけ。
オブジェクト指向云々以前の問題。
>>262 なんか勘違いしてないか。
自分が無駄と言っているのは
「メソッドの位置を記憶したポインタ領域」のことなんだが。
確保したクラスや構造体のアドレスが返ってくるのは
無駄じゃないだろ。
それとも構造体でもメソッドのためのポインタが確保されるのか?
で、その構造体は作るたび(使うたび)に初期化するの?
301 :
デフォルトの名無しさん:04/12/12 08:42:19
↑
質問の意味が分からない厨発見
>>299 実行効率最優先で考えたらオブジェクト指向そのものが無駄だと思わないか?
>>300 あちこちで作って使うような構造体なら毎回初期化処理書くわけだからムダだろ?
304 :
デフォルトの名無しさん:04/12/12 10:03:21
コマンドラインから二つのdouble型引数を受け取り、それらの積を表示するプログラムを作成したんですが、Array IndexOutOfBoundsExceptionとなります。
メインの中身↓
double d1 = Double.valueOf(args[0]);
double d2 = Double.valueOf(args[1]);
double d3 = d1 * d2;
System.out.println(d3);
>>304 IndexOutOfBoundsException以前にコンパイルが通らんと思うのだが…
306 :
デフォルトの名無しさん:04/12/12 10:24:45
>>305いやコンパイルはできてしまった。。。
なぜだかわからん(-.-;)
質問するのに自分の環境ぐらい書けや
>>302 実行効率最優先で考えたら高級言語そのものが無駄だと思ってる。
流用、保守を考慮した作りにすることと、
ただの無駄とは話が違うだろう。
じゃあ、高級言語を使わなければいいだけだろ。
おまえはこのスレには無駄だということもわかってない無駄人間。
なるべく短時間で平易に実装して、
必要に応じてパフォーマンス向上を図るべきだと思う。
とはいえ何万レコードのデータをメモリにため込むのはだめだけど。
312 :
デフォルトの名無しさん:04/12/12 12:22:58
効率うんぬんを抜かすなら、計測してからにしろと誰かが言ってたんだよな、確か。
313 :
デフォルトの名無しさん:04/12/12 12:25:23
コンパイルしても実行ファイルできないの?
314 :
デフォルトの名無しさん:04/12/12 12:28:10
> 実行効率最優先で考えたら高級言語そのものが無駄だと思ってる。
こういう極論出して悦に入ってるやつってなんだろね。
「環境最優先で考えたら自動車そのものが無駄だと思ってる」とか、
意味の無い正論ってやつ。
資源は潤沢にあるのだから、富豪的プログラミングの時代。
>>314 思ってるだけじゃ我慢できなくて書き込んじゃったんだろうから、優しくしてあげて。
,,,,,,,,,,,,,,,,,,,,
/": : : : : : : : \
/-─-,,,_: : : : : : : : :\
/ '''-,,,: : : : : : : :i
/、 /: : : : : : : : i ________
r-、 ,,,,,,,,,,、 /: : : : : : : : : :i /
L_, , 、 \: : : : : : : : :i / 実行効率最優先で考えたら
/●) (●> |: :__,=-、: / < 高級言語そのものが無駄だと思ってる
l イ '- |:/ tbノノ \
l ,`-=-'\ `l ι';/ \ ニート(24・男性)
ヽトェ-ェェ-:) -r'  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヾ=-' / /
____ヽ::::... / ::::|
/ ̄ ::::::::::::::l `──'''' :::|
>>309 >実行効率最優先で考えたら高級言語そのものが無駄だと思ってる。
だったら、構造体を採択しないのも言語設計の妥当な選択肢だと思わない?
>流用、保守を考慮した作りにすることと、
>ただの無駄とは話が違うだろう。
流用・保守を考えてのクラスじゃないの?
少なくとも構造体よりは流用性も保守性もあると思うが。
関数実行のオーバヘッドは意外と大きくて時間の無駄。。
>>318 >だったら、構造体を採択しないのも言語設計の妥当な選択肢だと思わない?
構造体が無いことに合理性があるなら
選択肢としてあるのは良いと思う。
しかし不便になっているだけにしか思えない。
なぜ構造体が無くなったのか
(構造体が無くなることでこういう風に良くなったとか)
説明をできる人がいたら、ぜひ教えてほしい。
>しかし不便になっているだけにしか思えない。
構造体が無いことによって一体どこが不便なんだ? メモリの使用効率?
純粋に疑問。
>>324 CやC++から移行した人が戸惑うってことじゃないか?
326 :
デフォルトの名無しさん:04/12/12 16:43:58
>>323 classとstructという似て非なるものが同じ階層に存在することが無駄だ、という視点を理解できないのですか?
CのstructとJavaのclass
あえて考えるなら・・・nullが入らないという保障ができないと言う事くらいかな。
330 :
デフォルトの名無しさん:04/12/12 17:22:54
box2.setText("〜〜〜〜");
といった感じで表示窓に文章を表示させたら
横に一行でダラダラと長くなってしまって酷く見づらいので
窓の中で改行をさせたいのですが方法が分かりません。
調べてみると、TextFieldという形式の窓は一行分だけで
複数行になる場合はTextAreaという部品を用いるらしいのですが
TextField→TextAreaとすると今まで上手くコンパイルできていたのが
シンボルを解決できません
シンボル:コンストラクタ TextArea(int)
場所 :java.awt.TextAreaのクラス
private TextArea box2 = new TextArea(200);
というメッセージが出てエラーになります。
窓の中で文章を改行する方法を教えてください。
Javaが構造体を無くしたことで、
* 構造体はどうしても必要なものでは無いということに気付いたニュータイプ
* 構造体がなきゃ生きていけないオールドタイプ
という区別ができるようになりますた
332 :
デフォルトの名無しさん:04/12/12 17:49:30
>>330 APIで、コンストラクタの概要をみること
333 :
デフォルトの名無しさん:04/12/12 17:51:29
>>331 違うな。
与えられた環境に疑問を持たないオールドタイプと
常にそれが最良の仕様なのか問答し、向上を求めるニュータイプ
だな。
334 :
デフォルトの名無しさん:04/12/12 17:56:28
TextArea(int);
↑こんなコンストラクタは無いっていうことだろ?
ちょっと考えてください
>>333 C++は君のすべての向上心に応えてくれるよ。安住の地が見つかってよかったね。
言語仕様の美しさだけ考えたら、C++でstructを拡張してclassを作った時にstructを廃棄しても良かったんだよな。
あっちは別にObjectを継承する訳でもないし。
>>324 240に書いたけどデータテーブルが効率よく作れないのが痛い。
あくまで例だけど
typedef stract hoge{
int a,b,c;
}HOGE;
const HOGE tblHoge[]={
//a b c
{1,2,3},//hoge1
{4,5,6},//hoge2
{7,8,9},//hoge3
};
と書ければデータhogeのパラメータ(a,b,c)が
横一列に並ぶため可読性が良い。
Javaは構造体が無いためパラメータ毎に
テーブルを作らなくてはいけないので
どのデータとどのデータが関連あるのか直観的に分かりずらい。
Javaで無駄な作業(コンストラクタを作るとか)をせずに
可読性の良いデータだけのテーブルを作れれば問題ない。
>>326 >classとstructという似て非なるものが同じ階層に存在することが無駄だ、という視点を理解できないのですか?
非なるものなんだから無駄ではない。
強いて言うなら紛らわしい(紛らわしいというほどでも無いが)。
つまり326、328の言い分は
オーバーライドとオーバーロードも
似て非なるものだから無駄だということだな。
338 :
デフォルトの名無しさん:04/12/12 18:04:52
>>336 > あっちは別にObjectを継承する訳でもないし。
(;´∇`)?
>>337 釣りは休日に限るよね
俺も某スレで大量に釣ってきた
340 :
デフォルトの名無しさん:04/12/12 18:09:00
> オーバーライドとオーバーロードも
> 似て非なるものだから無駄だということだな。
揚げ足とりにもなってない、ただの言いがかりだな。
馬鹿の匂いがプンプンする。
データテーブルの問題だって瑣末すぎる。
多少、コードを長く書かなければいけないのは確かだが、
「どのデータとどのデータが関連あるのか」なんてのは
書き方しだいで何とでもなるだろう。
341 :
デフォルトの名無しさん:04/12/12 18:15:57
>>337 なるほど。確かにそうだな。
javaのインスタンス作成におけるオーバーヘッドはかなり大きい。
それを解決する構造体が必要って意見はもっともだな。
釣りかと思ってたがただの馬鹿っぽいな
>>337 >240に書いたけどデータテーブルが効率よく作れないのが痛い。
その「効率がいい」というのは単に君がタイプする文字が多いかどうか、ということなんだね。
アホらし。
タッチタイピングとかコピペとか覚えると世界が変わると思うよw
たった数行のコンストラクタを書くことが「効率が悪い」のか。
>>338 ン? 何か間違ってる?
俺が昔C++を勉強したときは、「structとはメンバが全てpublicなclass」って書いてあったんだが。
344 :
デフォルトの名無しさん:04/12/12 18:32:18
>>343 あ、いや合ってる合ってる。
「Objectを継承する訳でもないし」って一文が、「Objectクラスを継承する訳でもないし」なのか、
「オブジェクト(インスタンス)を継承する訳でもないし」なのか判然としなかっただけ。スマソ
>>344 了解。
「Objectクラスを継承する訳でもないし」と書けば良かったね。
>>336 >言語仕様の美しさ
C++では禁句です。
Cとの互換性、過去のC++との互換性を保ちつつOOを取り入れねばならなかった苦労を偲んであげましょう
言語使用が美しい言語って何かね〜
Lisp
構造体の (プログラム上での) 初期化がめんどくさいとか
データテーブルが効率よく作れないって言っても
337 の例みたいに一回しか作らないんなら全然効率の問題にはならないわけですが。
つーかデータテーブルなんかをソースコードに直書きするのは間違ってると思いませんか。
ファイルから読み込め。
釣り耐性なさすぎw
プゲラッチョ
>>350 偽者かな?
もっと頭良さそうなフリしないと、釣りというよりただの馬鹿だよ。ここは初心者スレでもあるし
もともと頭悪いんだろうからこんなこというのは酷だけどね
>>351 それで精一杯皮肉ったつもりなのか?
一生懸命文章考えてくれてご苦労さまプゲラ
敗北宣言が出たので構造体は必要ないってことでFA.
・・・つまんねーな。もっと分かってる奴ならもっと盛り上がっただろうに。
最近は一方的に叩かれて終わりなのも釣りっていうのか。
負け惜しみキター
プゲラッチョ
スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、
釣り師 ↓
. /| ←竿
○ / |
. (Vヽ/ |
<> |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
|
餌(疑似餌)→.§ >゚++< 〜
の組み合わせだと思ってたんだけど、
最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
これは、どっちかというと、
,〜〜〜〜〜〜 、
|\ ( 釣れたよ〜・・・)
| \ `〜〜〜v〜〜〜´
し \
゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ
~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト>゚++<
ノ)
かと思うんだけど、どうよ?
>>353 ま、本物の釣りと同じで、一匹も釣れなくても「釣りをした」という
事実には変わりないわけで…。
本人が満足らしいからそれでいいんでしょう。
釣りましたよ、って宣言してるにも関わらず
未だに釣れ続けているなw
アホどもw
358 :
デフォルトの名無しさん:04/12/12 19:42:16
よく職場で、やり方とか考え方の食い違いがあって
プチケンカ(といっても、不気味なぐらい穏便に)をしているが
心の中ではココで書いていることを言っているのだろうな
質問スレと宿題スレでは fusianasan を強制し、
バカはブラックリストに入れるのがいいと思う。
利点1.質問の仕方を注意されて逆切れする香具師が少なくなる。
利点2.質問と見せかけて釣りで荒らす香具師が少なくなる。
利点3.回答者の名誉欲が満たされる。
まあ、いちいち
>>355なんかを書き込んでしまう時点で
釣られているんだけどな
>>361 たぶん今年中に廃れるね。
それはそれでどうでもいいが
>>235 から始まってるから
よっぽど気合の入った釣り師か、
途中で自分の間違いに気付いて恥ずかしくなったので自称釣り師に変わったか、
本人が見てないうちに、別の釣り師が引き継いだのか、
真相は闇の中
>>361 おおまかには同意。
こういうくだらん流れも少なくなるかもしれない。
テンプレに「質問者・回答者はフシアナ推奨」と書くのがいいかと。
「強制」にすると小うるさい香具師が必ず出てくる。
それを言うなら回答者もフシアナしなきゃいけないぞ。
このスレは回答者も初心者であることが多いため
見当違いのクソ回答のせいでめちゃくちゃになることが多いんだから。
そういう話は自治スレでやれ。
>>367 >>361に倣って書くとだな。
利点1.思いつきだけの安易な回答が減る。
利点2.回答のミスを注意されて逆切れする香具師が少なくなる。
利点3.回答と見せかけて釣りで荒らす香具師が少なくなる。
利点4.じきにクソ回答者が淘汰される。
>>235のような奴が回答側に回ることは十分あり得る。
>>370 違うって。
「利点3.回答者の名誉欲が満たされる。 」って書いてあるってことは
初めから「回答者もフシアナ」ってことだろ。
それを「それを言うなら回答者もフシアナしなきゃいけないぞ。 」は意味不明。
372 :
デフォルトの名無しさん:04/12/12 20:38:49
>>366 つーか、初心者大歓迎だから初心者が回答しても何もおかしくない。
フシアナは非現実的だが、回答者がそれぞれトリップ付のコテハンを
名乗れば過去レスから回答実績が明らかになるし、どのレスが信用できる
かも一目瞭然になる。
隣の宿題スレではコテハンを名乗ってる香具師が何人かいるようだが
ここでは全くいないのは何故?
適当にやればいいじゃん。
ルールで縛ると、ルールを守った守ってないという
つまらない議論でスレが潰れたりするよ。
「1000」を「1,000」にする方法を教えて下さい。
>>376 「1」と「000」の間に「,」を入れる。
>>377>>378 初心者ですみませんが、1000を入れたら1,000を
返してくれる関数のようなの知りませんか?
380 :
デフォルトの名無しさん:04/12/12 21:02:12
000の前に,を書く
381 :
デフォルトの名無しさん:04/12/12 21:03:32
>>379 java.text.DecimalFormat
でOK
某板の某Java質問スレを再び機能させる方法を教えてください
回答もらった人がWikiに情報を残さないのは何故?
1.wkiの編集の仕方を調べるのがめんどくさいから。
2.教わったことを文章にするのがめんどくさいから。
3.文章にするほど一般的な問題ではないから。
4.Wikiってなんですか?
>>387 1や2だと回答するのがバカバカしくなるね。
3だと勝手に判断せずに登録してほしいね。
>>388 もうなんかお話にならないね。
391 :
デフォルトの名無しさん:04/12/12 22:28:44
まだ、プチケンカやってのか
そんなことより いまフジテレビで 小島奈津子が・・・
キーウィ
ちょっとみない間に随分カキコが。
しかも偽物まで(初めてだ)。
しかし、ここまでカキコがあって
構造体反対派の中で
>可読性の良いデータだけのテーブルを作れれば問題ない。
に、まともな意見書いてるのが
>>349の
>ファイルから読み込め。
だけか。
これに関してはケースバイケース。
349だってすべてのデータ(コンストラクタに渡す値とか)を
ファイルから読み込んでいる訳じゃ無いよね。
もちろんデータの内容によっては
ファイルから読み込むように作るつもり。
あと「一回しか」というのは、あまり重要ではない。
保守が楽なんだよ。
テーブルにデータを追加するのに構造体だと
一つのテーブルに一行追加しておしまい。
Javaだと各パラメーターのテーブル毎に追加しなくてはいけない。
作業が増える分ミスの可能性も増える。
データが少なければ分かれてても問題ないけど
ちょっと多いと追加する場所を探すのが大変になってくる。
これ以上書き込んでも
良い方法が出て来そうも無いから後はスルーするけど
話の流れを読まず、脊髄反射で書き込む奴おおすぎ。
あと知識無いのを叩いてごまかす奴とか。
Javaスレなので構造体が分からないのは仕方ないが
叩くなら構造体の使い方まで理解した上でやってくれ。
「自分は構造体を理解してる」というのなら
叩く前に適切なアドバイスができるよな。
>>393 適切なアドバイスすら無視してる奴がよく言うよ。
>>393 もっともな意見だな。
俺もここまでの一連のカキコを見て、このJavaスレ住人の
プログラミングに対する根本レベルからの理解が欠けてるのを
はっきりと分かったよ。
やはり、いろいろ保護された高級レベルの高級言語だけを専門に
してる人間ってのは、どうやってそれをコンパイラで実装してるのかって
ベース部分の事まで理解が及ばないんだな。
そういう事に関心を持つ概念すらないんじゃないか?
質問した場所が悪かったかもしれないな。むしろCスレの方が本当の
意味でJavaを理解してる人が多いかもしれん。
「構造体」が本質じゃないことは結局理解できなかったか・・
>>395 全角英字で「Java」て表記を平気で使う奴がよく言うよ
398 :
デフォルトの名無しさん:04/12/12 23:42:13
ここでfusianasanですよ
400 :
デフォルトの名無しさん:04/12/13 00:11:08
つーか答える気もないくせに人のことばっか気にしてんな!
お前ら、何様だよ!
いっつもいっつもくだらないことばっか言いやがってよー
ちゃんと働けよ!暇人が!
真剣に答えてくれる人にはすいません。
そうゆう人にはマジで感謝してます。
>>397 全角から半角に直すのが面倒臭かっただけだよ。
あと構造体の本質って言うけどさ、構造体の意味が分かってないのは
アンタの方じゃないか。
ここで再三言ってるのは、C言語風の構造体が無いのは不便って事だ。
C言語風の構造体とは、Object型からプリミティブまでのデータを
配列定数の形でも代入できる、マルチ配列みたいなものなんだよ。
何でそんな事も分からない?
ちなみにC♯だとスタック領域に格納されるインスタンス生成が
高速なデータ集合体になる。
明らかにJavaしか知らないだろ。プログラミング全般に関する
広範囲な知識がないから、今までこんな頓珍漢な回答とツッコミと
煽りばかりになるんだ。今回の騒動でJava厨と言われる所以が
分かったよ。そのレベルの低さもね。
402 :
デフォルトの名無しさん:04/12/13 00:22:47
>>400 まぁ2chにそーいうの求めてもなぁ
モラルがしっかりしてる掲示板だったら他にあるわけで
@ITとかどこぞのMLとか
>>401 C言語風の構造体とやらの
利点がわからんのだけど?
配列定数って、初期化のための
シンタックスシュガーがそんなにすごいモンか?
あと、なんでスタック領域にインスタンスがあると
「高速なデータ集合体」になるんだ?
スタック領域とヒープ領域にどっちにデータがあろうと使う分には変わるまい?
スタック相対アクセスとレジスタ相対アクセスてそんなに速度違うか?
あそうか、
メモリ確保は確かに早いな。
「生成」を読み落としてたよ。
ここまでで出た、クラスではなく敢えて構造体にしたい理由(?):
>データテーブルを作成するのに便利(
>>240)
>構造体はスタック領域に作られるから高速(
>>242,246)
>(クラスは)少しとは言え余計な物を作り、無駄な領域が使われる(
>>257,299)
>データテーブルのソースコードの可読性が良い(
>>235,337)
>配列定数の形でも代入できる(
>>401)
>>401 みんな「そんなことにこだわる暇があったらほかにやるべき事がいくらでもある」って言ってるだけだよ。
日本語わからないの?
あと「富豪的プログラミング」で検索かけてみるのもおすすめ。
あ、同じことを2行書いてしまった
>>405 結局、テーブルをソースに直書きするためだけに構造体を導入しろということだな。
>>408 さっきから見てればそこだけはいくらつっこまれても無視するんだからお話にならない
>>409 そして「プログラミング全般に関する知識」ってか・・・救えねえ
初心者スレに粘着する時点で知れてるよ
日本の中学生がアメリカの小学校低学年の教室に行って
「おまえら因数分解もできねーんか、アメ公はレベル低いな」
っつって鼻息荒げて帰っておしまいのような感じ。
>>401 CもC++も業務で使ってたよ。それぞれ5年位。
C#は使ってないが。
>C言語風の構造体とは、Object型からプリミティブまでのデータを
>配列定数の形でも代入できる、マルチ配列みたいなものなんだよ。
これは「C++の」「クラス」ではできんのか?
ところで「構造体の本質」なんて一言も言ってないが。
あ、良く見りゃ俺宛じゃないのか。
>>412 たぶん帰国子女だから
日本語が不自由なのは許してあげて
ローカルで宣言した構造体はスタックに確保できて早いって話だけど、
Javaだって、ローカルでnewしたオブジェクトへの参照をメソッド外へ持ち出してなければ、
べつにそのオブジェクトはスタックに確保してもいいよね。
なので、少なくともスタック云々言ってる香具師は、言語仕様の問題と最適化の問題を混同してると思われ。
>>411 その例えは根本的に違う。
自宅から勤務先への直通電車を通せと政府に要求し、
反対意見に対して「交通や運輸についての理解が不足してる」とか言ってるのと同じ。
416 :
デフォルトの名無しさん:04/12/13 01:07:07
>>414 違うって。
Javaでクラスのインスタンス本体をスタックに確保しても、それへの
参照変数も確保しなきゃいけないし、参照変数→オブジェクト本体→
メンバテーブルと参照して、フィールドの相対アドレスを求めてるから
はっきり言って遅い。しかも実装によっては参照変数だけスタックで
本体はヒープの場合もあるからインスタンス生成も時間がかかる。
C言語風のマルチ配列タイプの構造体なら、プリミティブと同じように
スタックに即座に確保して、参照変数がない直接参照になりフィールドも
バイトコードの埋め込み時点で相対アドレス値が直書きされるから
生成もアクセスも早くなる。
配列定数のシンタックスシュガーだけじゃないんだよ。利点は。
それに {str, 0, obj, 5.0} みたいにインスタンスをコンパクトに
表現できるのはかなり便利じゃないか。シンタックスシュガー位って
言うなら、多くの構文もそんなの別にいらんて話になるだろうが・・・
全く、プログラミングレベルの本質的な話ができないのには呆れを
通り越して残念に思うよ。俺をバカにして無知を晒すヒマがあったら
勉強することだな。サンもこのスレを見たら嘆くだろうよ。
ええと、Cの構造体初期化が楽だという意見自体にはおれは賛成なんだよ。
でもそれって、「構造体」っていう概念の問題ではなくて、C言語における構造体の
「書き方」の話だろ。
だって、構造体の「概念」だけを実現するならば、
class Struct {
public int a, b, c;
}
で立派に構造体だろ?
Struct struct = new Struct();
struct.a = 1;
ってできるわけで。
構造体ってどの構造化された言語にもたいてい同じようなものが存在する
(Visual Basicにだってある)が、C言語の構造体には、上記のような構造に対して、
struct = {1,2,3};
と書いてもよい、という便利な文法があるってだけの話だろ。
俺には、構造体がないから云々というより、この構造体初期化文法がないことに文句を
言っているようにしか見えない。で、この問題はおれにはシンタックス・シュガー的な要素に
しか見えない。たまたまJavaにはその文法がないというだけ。
で、最初のころに出てた話で言えば、おれはJavaでテーブル構造作るなら、素直にコンストラ
クタと配列配列初期化構文を使う。
Hoge[] array = { new Hoge(1,2,3), new Hoge(4,5,6), new Hoge(7,8,9)};
C++の理解も足りない奴がJavaを始めてつまずいて、わめき散らしてる、って理解でOK?
>>416 いや、俺がいいたいのは、
フィールドしかないようなfinalのJavaのクラスを作って、そのクラスのオブジェクトを、
あるメソッド内だけで閉じた使用しかしていなかった場合に、
コンパイラがDFAとかの解析を(解析のコストとかはおいといて)きちんと
Cの構造体アクセスと同等のコードにコンパイルすることは可能でしょ?ってこと。
まあ、そんなJavaの実装は無いと思うけどw
ごめん。一部抜けた。
> コンパイラがDFAとかの解析を(解析のコストとかはおいといて)きちんと
これは「きちんとすれば」と書きたかったのでした。
うーん、おれはSunがJavaに構造体を取り入れなかったのは、手抜きというよりは
純粋主義だったからだと思うぞ。データとその振る舞いを一つにまとめて扱うのが
オブジェクト指向の考え方であって、データを単独で扱う構造体という概念はJavaには
必要ない、と真剣に考えた結果だと思うよ。あくまで想像だけど。
オブジェクト指向の考え方を言語仕様として規定するとしたら、考え方としては間違って
ないと思う。まあ
>>416は納得しないだろうとは思うけど。
あと、416は、
どんな実装でもスタックよりもヒープのメモリ確保が遅いと信じてるのが面白いな。
例えばCopy GCベースのヒープ実装だったらスタック領域のメモリ確保もヒープ領域のメモリ確保も
全然確保コストは変わらないのにねー。
>>418 Cの理解も足りない奴がJavaを始めてつまずいて、わめき散らしてる、って理解でOKだYO!
高級言語とかオブジェクト指向とかって、変数がスタックに置かれるとか、
レジスタに置かれるとかいうところを気にせずに、「機能をどう実装するか」
というプログラミングレベルの本質の話をするためにあるものだと思って
たんだけど、変数をスタックにおいてアクセスをコンマ何秒か速くすることが
プログラミングレベルの本質だと。
バイトコードで動いてて、マシン語になったときどうなってるかは実装依存の
Javaって本質からかけ離れてますね
まあおれは客がどのプラットフォームでも動かせるプログラムが必要と言う
本質的な話の方が重要なんでいいけど。
>>416 >それに {str, 0, obj, 5.0} みたいにインスタンスをコンパクトに
>表現できるのはかなり便利じゃないか。シンタックスシュガー位って
C++を改良したはずのJavaもC#も、なぜその構文を採用しなかったか考えてみたら?
お前が今思っているほど、その構文は便利でもないし、必要でもなかったってこと。
少なくともこの2つの言語設計者は、
「大多数の人間はこれを必要としない」または「導入することによるメリットよりデメリットの方が大きい」と考えた、ということ。
その構文が無い環境でもう少しコーディングしてみれば分かるよ。
>>415 わかってないな。
それをわざわざ「初心者スレで」やってるのが問題なの。
うるせー
3分立てばなんか書いてるし・・・
質問・回答以外は書くべきではない
>>393 >構造体反対派の中で
>>可読性の良いデータだけのテーブルを作れれば問題ない。
>に、まともな意見書いてるのが
>
>>349の
>>ファイルから読み込め。
>だけか。
ワラタ
これこそ一番どうでもいいツッコミだよw
C:「なんで printf がねーんだよ。」
J:「いらねーよ。そんなもん自分で作れ。」
C:「いちいち作ってられっか。面倒くせーだろ。」
J:「じゃー、てめーC使ってろ。」
数年後。
S:「待望の printf です!!!!!」
C,J:「今さら、、、。」
みたいな話もあるので、何年かしたら Java に構造体が出来るかもしれないね。
駄々をこねるなら作っている人に見えるところにすると良いでしょう。
つまり、初心者に嘘を教えてはいけないという名目で書いているのだろうが
実際は、自分のプライドのために書いているのか
>>429 数年後なのか?J2SDK5.0て・・・
詳しく知らんが、たしか書式指定できたような・・・
つうかいまさら使わんとおもうけど、いや使うのか
J2SDK5.0・・・すまん違う
あ、あってるわ
いや、printfはかなり昔からJava使いからの要望が強かったと
思うんだけど。
そうなのか〜
Javaだと
FormDefinition fd=new FormDefinition();
fd.set(1,"%s");
fd.set(2,"%x");
fd.add("%d");
out.printf("sample",fd);
とかやるのか?
知らんが
偽者を一瞬で見抜いた俺が予言する!
>>393 は真性で
>>395 >>401 >>416は釣り師!
「プログラミングレベルの本質」とか書いてる奴は釣り師ですよ。気をつけよう
真性クンが「どうでもいい些細な事柄」を本質であるかのように主張するのをみて「本質」というキーワードで釣ってみたくなったんだろう
>>436 う〜む、本質だけを連呼してる訳じゃなく、外の事もいろいろ
気合入れて書いてる(ように見える)からな〜。
釣り師かどうかは分からんな。んな事言ったらどんな会話も成り立たなくなる。
別に楽しくはないけどね。
おかしな論が書かれっぱなしになるよりは正しい事を教えちゃろう、とは思う。
釣りはできれば居ない方がいいよね
430 デフォルトの名無しさん sage New! 04/12/13 01:43:54
つまり、初心者に嘘を教えてはいけないという名目で書いているのだろうが
実際は、自分のプライドのために書いているのか
>>435 いや普通に普通のprintf()だよ。PrintStreamのメソッドなんて、outに対して使えるね。
System.out.printf( "おれに%d万円ください。%d万円でも可。", 100, 1000);
てな感じで。J2SE 5.0で可変長引数がサポートされたから、C的なprintf()が実現可能に
なった。
442 :
デフォルトの名無しさん:04/12/13 02:22:03
>>441 そうなんだ
いままでそういうのって
MessageFormat.format("おれに{0}万円ください。{1}万円でも可。", new Integer[]{new Integer(100), new Integer(1000)});
見たいな感じにしてたな
実際のパフォーマンスがどうなるのか試してみたい
で、ちょっとびっくりしたのが
可変長引数できるようになるのか
以前どういう場面だったか忘れたが、使いたいなと思ったことがある
>>430 >>440 プライドってのはどういう意味で書いてるんだ?
間違った事が事が書いてあったら正すぐらいのことは当然のことだろ。
それがプライド???日本語おかしくない?
>>444 まあ、負けたくない(負けず嫌い)てなとこか
>>445 「間違っているのを正す」のは勝ち負けとは関係ないな
>>429 限られた場面でのパフォーマンス改善の手段として、
C#でいう「値型」に近いものが導入される可能性はないとはいえない。
だがおそらくC#でもstructを使うべきところは非常に少ないだろう。
しかもC#でもパフォーマンスを除けばclassもstructもほとんど同じものだから、
そのままJavaに入ることはないだろうね。
ところでJava使ってると性格悪くなるの?
ここ険悪な空気が漂ってるからさ。
たぶんC++。
List は Arrays.asList で即値を初期値に入れて作成できますが、
Map で同じようなことは出来ませんか?
>>451 できないと思っていい。
どうしてもやりたければそういうメソッドを作ることはできるが、
Map map = entryArrayToMap(new Map.Entry[]{new MyEntry("key1", "value1"), new MyEntry("key2", "value2")});
作った後に値入れていくのと手間はそう変わらない。
>>452 そこを疑問に思わないところが疑問だな。
メソッドの引数に書くconstキーワードは、欲しいなとは思ったことある
ただ単に、安全っぽいって言う理由だけだけど
Winのショートカットファイル(*.lnk,*.url双方)の情報の取り出し方を
教えていただけませんか?
>>457 天然とネタの区別もつかないのか。可哀想に
>>459 テキストファイルじゃないのか
自分でフォーマット解析して
>>461 テキストエディタでは開けないようなので、バイナリエディタでということですよね?
勉強してみます。
>>459 ちょっとまて
.urlファイルはまちがいなくテキスト
しかし、ショートカットファイルをエディタで開いても参照先のファイルを開いてしまうということを覚えておいてね
464 :
デフォルトの名無しさん:04/12/13 03:50:13
だれか2ちゃんのIDを全板分確認するJavaつくっておくれ
なるほど。調べてみたらそのとおりでした。ありがとうございます。
おかげさまでurlファイルについてはなんとかなりそうです。
いまごろわかったというのも恥ずかしいですが・・・
1000ほどあるlnkファイルをhtmlファイルにリスト化する作業を
javaにやらせたいと考えています。
リンク元は僕がweb上からサイトごとDLしたindex.htmlの集団です。
ゆくゆくは、jsp+servletでカテゴライズされたリストから、
そのファイル群にアクセスできれば楽だろうと考えたのが、
この質問のはじまりでした。
apacheを導入してあるのでurlファイルベースで上の作業をやれば、
lnkファイルの扱い方が分からなくてもなんとかなりそうです。
ありがとうございました。
>>466 なんで?
別に隠すものでもないだろうに
>>468 2chにスレがいくつあると思ってるんだ・・・
>>470 なんか勘違いしてるみたいだな。
自分だけのIDのこといってんだけど。
>>473 きっとこっちの方
int doesNotChangeMyInstanceValues(void) const { hogehoge; }
void myMethod( final int arg)
とか普通に書いてるぞ。俺の書くメソッドにはほとんどの場合
引数にfinalを書いてる。
メソッドがオブジェクト内容の不変を宣言する事はできないよね?
>>476 それintをfinalにする意味あるのか?
>>479 メソッド内で引数が変更されないことが保証される。間違って書いた場合コンパイラが見つけてくれる。
あと、インナークラスから参照する場合は必須。こんなの。
void hoge(final int a){
Thread t = new Thread(new Runnable(){
public void run(){
System.out.println(a);
}
});
t.start();
}
>>476 finalはintにかかるのではなく、常にargのほうにかかるんだよ。
だから、int型変数argの値を変更できないと言うこと。
だからconstみたいに位置によって意味合いがちょっと変わる、
みたいなことはできない。
JavaScriptの値をJSPに渡す方法があれば
教えてください。
>>483 実はリストボックスの項目を選択した時点で値を渡したいのです。
フォームは「送信ボタン」押さないと値を渡せなかったです。
>>484 一旦submitする以外、JSPに値を渡すことは不可能。
>>485 2つ以上のページに送信したいのです。
上手く説明できないんだけど、送信ボタンが2つあって
それぞれ別のページにリストボックスで選んだ同じ値を渡したいのです。
>>486 1. 1つめのページに送信
2. 1つめのページのJavaScriptで2つめのページに送信
3. 2つめのページで受信
>>487 レスありがとうございます。
その方向でやっていこうと思います。
489 :
デフォルトの名無しさん:04/12/13 18:14:39
実験でjavaを使ってます
javaで組んだ複数の独立したプログラムを、一つのプログラムで実験がしおわったら
次のプログラムに自動的に移行するように繋げたいのですが、どうすれば良いでしょう?
画面上のある点をクリックさせるような実験なのですが、1回の実験では50クリックと決まって
いるので、50回目をクリックしたときに、任意の次のプログラムに移る・・・
という感じにしたいのですが。
プログラム用語もあまりわからず、これで、やりたい事が伝わるといいのですが・・・
どうか、なにかヒントだけでも教えてください。
>>481 デフォルトの名無しさん sage New! 04/12/13 13:06:32
>>476 finalはintにかかるのではなく、常にargのほうにかかるんだよ。
それ、意味が違うと思う
476はメソッドに渡すint型(その他プリミティブ)はメソッド抜けた後も変わらないので
finalに意味があるのか?(つけてもつけなくてもおんなじ)といっているのだろう
Javaではプログラマがプログラム内でポインタ制御できないからな
491 :
デフォルトの名無しさん:04/12/13 18:45:32
>>480さん
>あと、インナークラスから参照する場合は必須
よく、「final宣言されていない」などとコンパイラに怒られますが
そういう決まりだったのですね
しかし、なぜそうしないといけないのかっていう理屈がいまいち理解できません
別に変えられても問題ないのでは?と思うのですが
問題大アリです。
∨
/ ̄ ̄ ̄ ̄\
( 人_____,,)
|ミ/ ー◎-◎-)
(6 (_ _) ) カタカタカタ
| ∴ ノ 3 .ノ ______
ヽ、,, __,ノ | | ̄ ̄\ \
/ \.____| | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
,f" ゙l:、
,f" ヒ,,__;:-'" ノ 〃 小 ゙l:、
{ i /ノ ( 〃 、_,,,二ブ }, , i |小 .,}
i; y/ ゞ 彡 ),/,ィ',イ,/ ノ,ノ,|; i; :l | |l,i'
7 ,;f 〃ゝミ三彡,ノ,;イf ゙v' (/〃'彡'彡ッ'゙いミ:、 :i ヘツ
,{ ;{ ,, _,;f"ー-ニ,,,__ い'''" ̄"__,;:=-‐'''''i; :| ミ:、 :トァ
..゙i、 { ,i',i'.,k" -─モ・ナ=ミヽミヾゝ::-=ニモ・テ'ーァ''ソ人 い ゙li
`'ン { レl小  ̄ ゙ ` `  ̄ "  ̄ノ,ト、 l i ,ノ
'{ :、V、゙:|{゙i l ::. ,;{ソノl ツ,ノ
゙i、l、 ゙ヾi゙l; l ::::.. ,i'ィ'" ム'"
`:ゝ、 ゙ミi 、 ,,;::'' /f'{ il(,
,ソノ ,∧ ...._____..____..... /〃) )i
(:i| :;i _l゙、 .,,,__,,,... /|〃〃'"
゙i|ヘ,,ニ| `:、 ,r'":l ミL_
,f '、,, ゙ヽ、 _,,r''"_,,;-'二l''"
,,,,,_____ j_,f゙''-ニー-ミニ===='''ニ彡'''":-''"l | ______
__,ィ''''" ̄ヽ ,} ,i`i ,r'二`''ー:、`Y",;='ニ二ミ、 f''"i ./ ゙̄'''=;zL___
 ̄ ̄ ゙li _,,,L---r‐r--f"ゝ{. ゙ナ'" `) | | .l| f" イ、_j.l^;>-ニr:,,,∠,,,,,,__ )
'li_;;< i、 i、 ゙ヽ、゙ヽ、,,,,__,,.ノ .l . | :| ゙-,,_,,ニ=''"ノ ̄ フ,ノ─ _,,>、 /
int型の2次元配列をある列に着目してArrays.sort()でソートすることは可能ですか?
可能でしたら具体的な記述方法を教えて欲しいのですが
各行には関連のあるデータを置くので行は1セットとしてソートしたいです
うまく言葉だと表現できないので簡単な例を挙げます
15 30
12 20
50 40
38 10
例えば上のような4x2配列で2列目に着目してソートをかけ
38 10
12 20
15 30
50 40
という並びにしたいということです
>>496 Arrays#sort(Object[], Comparator)を使う。
int[][] ary = {
{15, 30},
{12, 20},
{50, 40},
{38, 10},
};
Arrays.sort(ary, new Comparator(){
public int compare(Object o1, Object o2){
int a = ((int[])o1)[1];
int b = ((int[])o2)[1];
return a - b;
}
});
>>497 ありがとうございますさっそく試してみます
あぁ・・・・
やっぱ
>>489の文章じゃワケワカンナイっすかねぇ・・・・ OTL
500 :
デフォルトの名無しさん:04/12/13 20:53:51
>>499 それぞれのプログラムのロジックをmainから切り離して
プログラムAからプログラムBのクラスを生成して実行しれやれば?
状況がよくわかんねーけど
あるいは、外部プログラムを実行する方法ってのもあるんだけど
>>500 やっぱ、状況伝わってませんねw すいません
外部プログラムで順番に実行するような線で、今、調べています
が・・・・・・ ワガンネ
503 :
デフォルトの名無しさん:04/12/13 21:10:46
>>502 ん〜?よくわからないけど、外部プログラムを実行したいんだろ?
つまり
>java gaibuA
>java gaibuB
をやりたいんだろ?
それだったらプログラムで出来るが・・・Runtimeクラスを参照してみ。exec()メソッドで
exec("java gaibuA");
ってやると実行できる。
見当違いだったらスマソ
>>503 サンクス!
ランタイムね・・・ランタイム・・・
505 :
デフォルトの名無しさん:04/12/13 21:33:09
import java.io.*;
public class HelloWorldExecCmd {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("ls -l");
} catch (Exception e) {
e.printStackTrace();
}
}
}
506 :
デフォルトの名無しさん:04/12/13 21:46:19
参照渡しで
ググって見てるのですが
・「データの値」を渡すのではなく「参照そのもの」を代入する。
・呼び出し先を変更すれば呼び出し元も変更される
こういう説明が多いのですが
参照渡しって具体的に開発する際にどういった場合にどういった方法で使うのでしょうか?
メリットというか利便性がいまいちつかめません
教えてください
Javaだと意識しなくても使ってるから
>>506 値をコピーしないので多少早い。
(配列とかオブジェクトとか大きなデータだと特に。)
出力したい値が返り値以外にある。
509 :
デフォルトの名無しさん:04/12/13 22:09:31
>>507 うーん、それほど「値渡し、参照渡し」って
実際の開発ではそこまで意識しなくてもいいってことでしょうか?
もちろん、パフォーマンスなどの面では使ったほうがいいけど
511 :
デフォルトの名無しさん:04/12/13 22:13:52
関数で複数の値を返したい場合は、
返したい値をすべて含むクラスのインスタンスを返すしかない。
前スレのStringで粘着してた方ですか?
>>479,490
メソッドの中で、受け取った引数に間違って代入してしまうのを防止するという
効果があるんだよ。逆に言えばその程度の意味しかない。
どうせオブジェクト参照型の変数をfinalにしたってオブジェクト自体は操作可能
なんだから、そういう意味での効果はもともとないんだし、期待もしてないわけだ。
おれは引数に間違って代入してしまって気づかずにそのまま引数を使った処理を
実行するという馬鹿なバグをしてかしたことがあるのでfinal付けてるってだけで。
514 :
デフォルトの名無しさん:04/12/14 00:54:49
Javaで動く絵を設定するにはどうすればいいのでしょうか?
例えばfillOvalで作成した円が右から転がってくる場合のプログラム等なのですが。
FLASHのようなフレームの概念を設定する方法が分からなくて困っています。
ActionScriptなら単純にオブジェクトにonClipEvent(enterframe),_x+=●等を設定すればよかったので
やはりそういった概念だとは思いますが・・・。
今まで見てきた参考書のほとんどはオブジェクト指向、if,for文等の解説ばかりなので参考になりません。
解決策、または動的プログラムが載った参考になる参考書、HPがあれば教えてください。お願いします。
515 :
デフォルトの名無しさん:04/12/14 01:01:53
>>514 Java宿題スレの430番台辺りのレスに、似たようなアニメーションの
サンプルプログラム(アプレット)がある。
スレ違いな気もしますが、Javaの質問です。
「Java Bean」と「Java Beans」は、用語としてはどう違うのでしょうか?
517 :
デフォルトの名無しさん:04/12/14 01:11:35
サーブレットからサーブレットへ、https接続を
行いたいのだが、うまくできない。
証明書をcacertsに取り込み、
httpsURLConnectionをつかっているが、
エラーが出る。
A*B(C+D)
という条件式を()を優先して行う方法で
簡単なのありませんか?
条件式ってなに?
>>518 A*B (ココはナニが入るんだ?) (C+D)
>>509 参照渡しで意図せずうっかり値を書き換えると
気づきにくいバグになることがある。
必然性がないなら本来は値渡しのほうが安全だ。
つうかJavaには値渡ししかないだろ。参照を値渡ししてるだけだし。
>>518 JavaはCと違って数値と条件式の型が違うから
そんな計算式をif文とかに
直接書いてもコンパイルエラーになるだけだよ。
>>476のはconstキーワードと全く意味が違わないか?
>>525 それなら、既にそうなってるよな。
翻訳すると、俺はこう推測する。
文字列「A*B(C+D)」から演算した結果を取得するにはどうするのでしょうか?
前から1文字ずつ見て、演算するのは出来たんですが、
()を優先して演算するいいアイデアが浮かばないのです。
Javaというより、文字列解析のアルゴリズムの話になるかも知れませんが、
適切なクラスなどがあったら、アドバイスください。
()に対応した構文解析器の書き方ぐらいググればいっぱい出てくると思うが。
529 :
1/2:04/12/14 11:17:38
import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MouseEvent2 extends Applet implements ActionListener {
Button btn;
int colorFlag=0;
public void init(){
btn=new Button("変更");
add(btn);
btn.addActionListener(this);
}
public void paint(Graphics g){
if(colorFlag==0) {
g.setColor(new Color(50,50,100));
} else {
g.setColor(Color.orange);
}
g.fillArc(10,10,200,200,0,90);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btn){
colorFlag^=1;
repaint();
}
}
}
530 :
2/2:04/12/14 11:18:44
↑をeclipseで実行しアプレットを再起動するとボタンが増えるのですが、
これは仕様なのでしょうか?
また、増やさないようにする方法があればご教授願います。
>>530 initの処理をコンストラクタでやったら?
>>529 仕様。あのへんのメニューはアプレットのライフサイクルを理解した上
でチェックのために使うものだから「なってしまいます。」といわれても
答えようが無い。
rubyでいうところのjoin()みたいなメソッドって標準のAPI(ないしは、
何か有名なオープンソースのライブラリ)にはないですか?
配列をtoStringした結果をjoinに渡した引数を挟みながらくっつけるやつ。
array = ["もなー", "ギコ", "しぃ"]
print array.join(":")
=> もなー:ギコ:しぃ
ArrayとかStringのjavadocは一通り眺めてみたのですが見付けられませんでした。
コンパイルしたら、
注:test.javaは推奨されないAPIを使用またはオーバーライドしています。
注:詳細については、-Xlint:deprecationオプションを使用して
再コンパイルしてください。
とメッセージが出るのですが
無視しても良いのでしょうか?
536 :
デフォルトの名無しさん:04/12/14 16:17:07
>>535 もちろん書くのは簡単なんですが、こんなによく使うメソッドが
ないはずは無いと思い、一般的に広く使われている
メソッドがあるのであれば、それを使った方が良いと思いましたので。
何はともあれ、commons のことを教えて頂きありがとうございました。
そんなの全然使わないな・・・・
>>538 そうですか?私は何か大きめのプログラムを書いたら必ず1箇所ぐらいは
必要とする箇所がでてきますけど…
* join(",")でCSV(厳密なやつじゃないけど)を生成
* join("\n")で文字列の配列を一行ずつ改行した文字列を生成。HTML だったら、join("<br/>")
* 同じく HTML の class="..." の中身はスペース区切りで複数のクラスが指定できるのでjoin(" ")
* join("|")で「もなー」か「ギコ」か「しぃ」にマッチする正規表現を生成
などなど。
\(
\ __,、-''"¨´ ̄ ̄`¨゙ヒー-:、,,_
,r''" ,, ,,ニ、 `ヽ、
/;i',,〃" ( ゙i ゙i,
,/ 〃 丿 ゙l, ,/ ゙i,
〃 彡 7゙ リ |' . i ゙ヽ、
/ , ゙i, f r' 〃 ノ!、| i l ミ、 l
,i',f";i' | } い ,/ ,/゙i(、い | !、 ご゙ {
l_| i ,, _彡'"ノヒ人( f ,/ _,,ニゝヾミ、ミーヽ |
ゝ| i l 「"´┬ヲ=,(( '''"r┬テ;ァ Jf`:、ミ:、l リ
`'ゝミート  ̄ ,}`  ̄ =彳! ト ソ
)ハ / i',ノ,イ川:リ)
{; ゙i ゙ャ ;:. , ;" /
\゙i __ニ ,,,,_ /〃 .f"
ミヽ、 `ニ'" / ),、 、ド
,)介、 _,/ /´「ノ ,ソ
,>l,,_`;、__,,,,;:'"ニ-ー''"~_> 「
_ . `T''=:,,`Y''二-ー<_. ̄,r}ノ
541 :
デフォルトの名無しさん:04/12/14 18:45:54
java5.0のGridLayoutにバグないですか?
カラム数やロー数が多いとき、端っこに隙間ができる。
542 :
デフォルトの名無しさん:04/12/14 20:57:06
注:hoge.javaは推奨されないAPIを使用またはオーバーライドしています。
注:詳細については、-Xlint:deprecationオプションを使用して
↑
Java 設計者の先見性のなさの現れ。
BioAppletはpublicです;Bioapplet.javaファイルで宣言されていなければなりません
ってどういうことですか?
544 :
デフォルトの名無しさん:04/12/14 21:36:59
ソースファイルのファイル名を変えろってこと。
Date()の出力を次のようにフォーマットするにはどうすればいいの?
YYYYMMDDhhmm
例)200412142136
547 :
デフォルトの名無しさん:04/12/14 22:52:58
A+B*(C#D)
などの論理式を、LISPのLISTに変換するにはどうすればいいですか?
548 :
デフォルトの名無しさん:04/12/14 23:01:33
ついでに>547のCARも
>>547 なんだ。大学の課題か。
自分で考えなw
構文木ができればLISPっぽく出力するのは簡単だ。
550 :
デフォルトの名無しさん:04/12/15 00:00:41
せめて構文木の作り方だけでも。
552 :
デフォルトの名無しさん:04/12/15 00:36:42
>>539 > * join(",")でCSV(厳密なやつじゃないけど)を生成
厳密なやつにしようと思うと結局join()じゃ役に立たないことが多いから。
他も同じ。
「もしかするとあると便利かもしれないけどきちんと作ろうとすると結局使えない」ようなAPIは
標準では用意されない傾向がある。
逆にjakartaにはそういうのがありがち。
これぐらいあってもいいんじゃないの?って思う便利なものはjakartaに多い。
順序をひっくり返すComparatorとか。
jakarta commonsのうちプリミティブなものは標準APIに取り込まれたりもするね。
NextedExceptionとか
List#join(String)が標準になることは無いだろう。
>555
「わずか数行」だと思うと別メソッドにしたくなくなるでしょ。
で、その実毎度毎度コピペして「あ〜かったりー」とか。
そこで一手間掛けてクラス作ってメソッドこさえてると、半年も経てばCommonsの
1サブプロジェクトくらいのコードが溜まったりするんだこれが。いややったことないけどorz
>>556 コアとなるJ2SEがそういう気分でAPIを追加していくと、API数が爆発するんだよ。
「どの程度までコアに含むか」ってのは設計者次第。
だから、jakarta commonsのような「ちょっと便利なAPIを集めました」というプロダクトは
コアとは分離していることが望ましい。
つか現状でもJ2SEのAPIちょっと太りすぎ。javax系は
J2MEみたいなProfile制にして切り分けて欲しかった。
できればAWTも。GUIなければSun以外の実装系もJ2MEの
ようにかなり出てくると思うんだけどな。
>>553 逆順のComparatorは標準でもCollectionsクラスにあるんだよねえ、これが。
562 :
デフォルトの名無しさん:04/12/15 06:27:58
>>560 そんなことしたら大変なことになりますがな
563 :
デフォルトの名無しさん:04/12/15 08:08:04
標準APIは、数は多いが中身がスカスカだからね・・・
マーケティングから、とかく見栄えを良くする事を考えてるのだろうが
クラスの数を増やすよりも、従来のクラスを完全にする方を
重視してほしいよ。
565 :
デフォルトの名無しさん:04/12/15 08:22:33
各プロトコルよる通信や、コレクション、crypto、Mathクラス
などなど
∨
/ ̄ ̄ ̄ ̄\
( 人_____,,)
|ミ/ ー◎-◎-)
(6 (_ _) ) カタカタカタ
| ∴ ノ 3 .ノ ______
ヽ、,, __,ノ | | ̄ ̄\ \
/ \.____| | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
完全ってなんだよ、コンクリートクラスを持ち込むことか?
いずれにしてもお前が求める理想のコア機能は MFC や VB ランタイム
のように場当たり的な機能追加で肥大化したものなんだろうな。そういう奴が
作った独自フレームワークのせいで修羅場となったプロジェクトならいくつも
見かけたよ。
569 :
デフォルトの名無しさん:04/12/15 08:56:27
ライブラリと言語の区別ぐらい付けろ。
それに、その程度で目くじら立ててたら殆どの言語はダメ。
C++にもiostreamがあるように誰でもミスはする。
っつか、1.1の頃はdeprecatedなメソッドってまだ少なかったんだねぇ。
571 :
デフォルトの名無しさん:04/12/15 09:20:21
関連スレがわからないのでここで教えてください。
ただいまJbossで開発しております。
そこでクエリーを発行しているのですが
SELECT OBJECT(o) FROM Hoge o
WHERE hoge_name = ?1
というクエリーですが?1のところは文字列ではなく
ユーザー定義型というかクラスで指定しています。
この場合hoge_nameにNULLのデータがあると
検索結果が0件になってしまいます。
どうしたらよいでしょうか?
>>571 nullの場合はwhere文無しで検索したいのか、それともis nullで検索したいのか。
適当に制御しろ。
deprecatedって警告がでるだけでも、十分親切だと思うな。
「代わりにこれ使え」とまでjavadocには書いてるし。
>>568 なにがコンクリートクラスだ。ば〜〜〜か。
上で挙げたクラス群は、場当たり所か、基本の必須クラスばかりだろ。
何が肥大化だ。バカか。ロクな経験もないのがミエミエだ。
ネットやセキュリティ方面のもロクに組んだ事ないだろ。
それでプロジェクトだとか偉そうに語るな。このチョソめ。
頓珍漢な言動とコードを繰り返して、修羅場にしてるのはアンタだろが。
W杯予選で日本選手を拉致るなよ。
強制送還も近いぞ。捏造の歴史で特権に浸りやがって。
あまり調子に乗るなよ。
∨ __,、-''"¨´ ̄ ̄`¨゙ヒー-:、,,_
,r''" ,, ,,ニ、 `ヽ、
/;i',,〃" ( ゙i ゙i,
,/ 〃 丿 ゙l, ,/ ゙i,
〃 彡 7゙ リ |' . i ゙ヽ、
/ , ゙i, f r' 〃 ノ!、| i l ミ、 l
,i',f";i' | } い ,/ ,/゙i(、い | !、 ご゙ {
l_| i ,, _彡'"ノヒ人( f ,/ _,,ニゝヾミ、ミーヽ |
ゝ| i l 「"´┬ヲ=,(( '''"r┬テ;ァ Jf`:、ミ:、l リ
`'ゝミート  ̄ ,}`  ̄ =彳! ト ソ
)ハ / i',ノ,イ川:リ)
{; ゙i ゙ャ ;:. , ;" /
\゙i __ニ ,,,,_ /〃 .f"
ミヽ、 `ニ'" / ),、 、ド
,)介、 _,/ /´「ノ ,ソ
,>l,,_`;、__,,,,;:'"ニ-ー''"~_> 「
国際化関連かなあ。Taligentがコードを持ち込んで
ましになった点が多いけど、逆に混乱したり。
国際化は重視してるようでされてないな。
8ビットで全言語が足りる欧米人にとっては、所詮ウザくてどーでもいいのだろうな。
ところでコンクリートクラスって何?
580 :
デフォルトの名無しさん:04/12/15 14:07:33
コンポーネントのレイアウトを、ボタンで変更できるようにしたいのですが。
表示した後にレイアウトの変更は出来るのでしょうか?
具体的にはJFrameのペーンにグリッドレイアウトでJPanel jb1とjb2を載せて、
それらが並んで表示しているとします。
そこで、ボタンを押したらJFrameにjb1だけが全フレーム内で表示
される、といったことは可能でしょうか?
581 :
デフォルトの名無しさん:04/12/15 14:16:46
>>580 CardLayoutを使えば、ワンタッチで切り替えられます。
582 :
デフォルトの名無しさん:04/12/15 14:18:15
>>580 間違えた。
レイアウトを設定し直して、Component#validate()をすればOKです。
583 :
580:04/12/15 14:51:18
>>582 すいません。レイアウトは変更されましたが、思うような配置になりません。。
差し支えなければ、コードを書く手順等をご教授いただけないでしょうか?
585 :
デフォルトの名無しさん:04/12/15 15:01:08
こんにちは。質問があります。
jsp・Strutsを使用したWEBアプリケーションを作っているのですが、
ブラウザでアクセスしてきた人のドメインアカウントを取得することは可能ですか?
ドメインアカウントってWindowsのか?
>>585 ってか何が取得したいか理解不能。
・接続元のプロバイダ・学校・企業などでのアカウント名
・こっちのサーバに登録してあるユーザのアカウント名 (要はサーバで認証がしたい)
588 :
デフォルトの名無しさん:04/12/15 15:14:36
remove()したコンポーネントはもう再利用できないのでしょうか?
589 :
1/2:04/12/15 15:19:58
import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MouseEvent3 extends Applet implements ActionListener {
Image img;
Button btn;
int colorFlag=0;
public void init(){
img=getImage(getCodeBase(),"shito.gif");
btn=new Button("変更");
add(btn);
btn.addActionListener(this);
}
590 :
2/2:04/12/15 15:20:55
public void paint(Graphics g){
g.drawImage(img,100,100,this);
if(colorFlag==0) {
g.setColor(new Color(50,50,100));
} else {
g.setColor(Color.orange);
}
g.fillArc(10,10,200,200,0,90);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btn){
colorFlag^=1;
repaint();
}
}
}
このプログラムでshito.gifという画像と扇形の図形を表示できるようにしたいのですが、
shito.gifが表示されません。
どうしたらよいでしょうか?
591 :
デフォルトの名無しさん:04/12/15 15:21:20
>586さん>587さん、説明不足ですいません。
Windowsのドメインアカウントです。
>587さんのおっしゃっている2番目のとおり、
取得したアカウントとサーバ側で持っているアカウント情報とを照らし合わせて認証がしたいです。
JTableを扱っている日本語のページありませんか?
594 :
デフォルトの名無しさん:04/12/15 16:02:14
596 :
デフォルトの名無しさん:04/12/15 16:23:16
質問させてください、
超初心者なんで右も左もわからず…なんですが、
アプレットつきのHTMLのファイルをFrame型の変数で
f.show();
で立ち上げることはできますか??
それか、Frameを表示させて、
それにGIFの画像やアニメーションGIFの画像を表示させることは可能でしょうか
意味不明な質問だったらすいません、よろしくお願いします。
>>596 なんでできないとおもうわけ?
普通にアプレットからフレームだせるよ
>>597 アプレットや GIF 付きの HTML を Frame クラスで表示できるかって意味じゃないか?
どっちにしても回答側に推測させる質問はスルーで良いと思うが。
>>582 もういらっしゃらないかも知れませんが、何とかして解決いたしました。
ありがとうございました。
>>599 で、どのように「何とかして解決」したかを書く気はない、と?
603 :
質問:04/12/15 18:31:33
import java.awt.Graphics;
import java.applet.*;
import java.awt.Image;
public class Test extends Applet {
Image im[] = new Image[4];
public void init() {
im[0] = getImage(getDocumentBase(), "a.gif");
im[1] = getImage(getDocumentBase(), "b.gif");
im[2] = getImage(getDocumentBase(), "c.gif");
im[3] = getImage(getDocumentBase(), "d.gif");
}
public void paint(Graphics g) {
double x = Math.PI * 0;
double y = 200 - Math.sin(x);
for (int i=0; i<4; i++){
g.drawImage(im[i], 100 * x, y, this);
x += Math.PI * 1/4 ;
}
}
}
という画像をsinカーブ上に並べる プログラムを作成したのですが、コンパイルすると、
604 :
603:04/12/15 18:33:02
605 :
デフォルトの名無しさん:04/12/15 18:37:11
おまいらJavaでサブプロセス作ったらちゃんと標準出力や標準エラーを掻き出してるか?
掻き出さないとデッドロックしてうざいし標準エラーと標準出力は違うスレッドから扱わなきゃだし
何かかなり面倒なんだけど。
まあ >&/dev/nullすればいいんだけどさ。
>>603 g.drawImage(im[i], (int)(100 * x), (int)y, this);
これでどう?
608 :
603:04/12/15 19:11:38
>>606 うまくいきました。
ありがとうございます。
609 :
デフォルトの名無しさん:04/12/15 20:08:12
java1.5を利用しています。
イテレータ文から拡張for文に書き直す点で問題が起きました。
Iterator<Hoge> it = hogelist.iterator();
while( it.hasNext() ) {
Hoge hoge = it.next();
if( .. ) it.remove();
}
という表記を、拡張Forを用いて
for( Hoge hoge : hogelist ) {
if( .. ) hogelist.remove( hoge );
}
になおしたところ、
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:4
49)
at java.util.AbstractList$Itr.next(AbstractList.java:420)
...
というようなExceptionが発生しました。
どのように拡張Forでリスト要素を削除するにはどのように
書けばよいのでしょうか?
よろしくお願いします。
みなさん、教えてください。
public class typing extends Applet implements KeyListener{
Panel p1;
init(){
// add(p1,BorderLayout.NORTH);
addKeyListener(this);//キー認識
requestFocus();
}
public void keyPressed(KeyEvent e){//キー入力受付
showStatus(e.getKeyText(e.getKeyCode()));
}
4行目のパネルp1を付けると、keyPressedが反応しなくなります。
よろしく、お教え下さい。
>>609 書き直したっていうか、等価じゃないじゃん。
前者のコードでも、Itrator#removeではなく、
if( .. ) hogelist.remove(hoge);
としたら同じエラーになるんじゃないか?
要するに走査しながら削除するには、Iteratorからじゃないとだめということだ。
612 :
609:04/12/15 22:38:32
>>611 ごもっともですね・・・
ありがとうございました。
>>611 そういう場合はケツから読んでいくのさ。
>>609,613
iteratorを走査してるときに元のcollectionを操作しようとすると必ず例外を吐くので無理。
removeしたい要素を別にとっておいて、あとからremoveAllするがよい。
同期取るだけじゃダメなんれすか?
617 :
デフォルトの名無しさん:04/12/16 01:03:47
620 :
デフォルトの名無しさん:04/12/16 01:54:05
0x00ぽ
参照渡しってのは、
hogeType arg = hoge;
funcHoge( arg);
void funcHoge( hogeType arg) {
arg = hage;
}
とかやったときに、funcHoge()にargがどう渡るかという言語仕様の問題だ。
Cではargのコピーが作られる。PASCALでは上記はargの参照が(勝手に)
渡されて、arg = hage;は参照アドレスの値を書き換えるとコンパイラが解釈する。
たしか引数が4バイトよりも大きかったらそうなるんだっけ?
そういう仕様だ。それが参照渡し。CやJavaにはそもそも値渡ししか存在しない。
Javaはオブジェクト参照のコピーが渡るだけだから、funcHoge内部のarg=hageは、
呼び出し元のargに影響しないだろ。オブジェクト参照を値渡ししてるだけなんだから。
メソッド内でオブジェクトの状態を変更してしまう問題は、可変オブジェクトを使う
際の扱い方の問題であって、参照渡し/値渡しとは違う話だ。
Image src = getImage("doc:///demo/images/duke/T1.gif");
ImageFilter colorfilter = new RedBlueSwapFilter();
Image img = createImage(new FilteredImageSource(src.getSource(),
colorfilter));
ここで作成したimgをBufferedImage型に変換する方法、ありますか?
>>622 int[] buf = new int[img.getWidth(null) * img.getHeight(null)];
PixelGrabber grab = new PixelGrabber(img, 0, 0, img.getWidth(null), img.getHeight(null),
buf, 0, img.getWidth(null));
try {
grab.grabPixels();
} catch (InterruptedException e) {
}
BufferedImage bg = new BufferedImage(img.getWidth(null), img.getHeight(null),
BufferedImage.TYPE_INT_ARGB);
bg.setRGB(0, 0, bg.getWidth(), bg.getHeight(), buf, 0, bg.getWidth());
でOK (img → bg)
624 :
デフォルトの名無しさん:04/12/16 09:06:31
どうすればJavaの寿命が延びますか
あと10年位は、新しい言語を勉強したくないんですが
布教しろ
626 :
デフォルトの名無しさん:04/12/16 09:07:56
Javaはもう終わりかけてるのでムリです。
Javaを学ぶのをやめて、他の言語を学ぶべきでしょう。
627 :
デフォルトの名無しさん:04/12/16 09:11:24
>>623 早い回答ありがとうございました。やってみます。
629 :
デフォルトの名無しさん:04/12/16 09:32:35
>>627 特に間違ってないですが・・・
画像ファイルの置き場所を確認してください。
>>624 > あと10年位は、新しい言語を勉強したくないんですが
Javaの心配するよか、自分の心配したほうが良くないか?
>>627 スルーされる理由を考えてみてください
お願いします
javaでexeファイルを作るのは、Jビルダーを使うしかないんですか?
>>632 これ1つのスレで何回くらい出る質問だろう
635 :
デフォルトの名無しさん:04/12/16 14:55:21
配列
int[] a = {1, 2, 3};
に、新しい要素「10」を加えて
a[0]=1
a[1]=2
a[2]=3
a[3]=10
とするために、一番簡単な方法を教えて下さい。
私はVecterに変換してaddを使って要素を加えた後にまた戻す、
という方法しか知らないんですが、他にどんなのがありますか?
>>635 あきらめてArrayList使え
もしくは初めから十分な配列を確保しておけ
IBMのJDKってどこから入手できるんでしょうか。
とりあえず、My IBMのアカウントは取得して、IBM Development Package for Eclipseのダウンロードページは見つけたのですが、
JDKだけのダウンロードページが見つからないのです。
Windows版だとJDKだけの配布はずいぶん前からやってないぞ。
なんと。
ThinkPadを購入するとIBM JDKがインストールされた状態で来るので、JDKの配布も行ってるのかと思ってました。
ところで、Linux版はどうでしょう。
Windows版より、Linux版のJDKがほしいんです。
特定の部分の速度がほしいならIBMのでもいいけど
1.4以上ならSunのとどっこいどっこい
こっちは早いけど、こっちが遅いとかあるし
Sunのほうがバグとか含めて情報おおいからなぁ
>>639 Sunとのライセンスの関係でJDK単体は駄目らしい
#JRE1.4.2は単体で配布している。
だから昔はWebServiceToolkitと抱き合わせで配布
したし、今はEclipseと抱き合わせしてる。
CNetあたりの一部報道でIBMがNetBeansに対抗するために
EclipseとJDKをセットで...っていわれたけど、
ちゃんとしたインストーラをつけてないとこからみて、
そういう戦略的な意図はないきがする。
Linux版含めて基本的にどのプラットフォーム向けも
http://www.ibm.com/developerworks/java/jdk/ あたりからリンクが貼られているはず。
644 :
デフォルトの名無しさん:04/12/16 16:06:28
あのJavaでメモリの容量、CPUのクロック、CPUの種類、
とかって知ることはできますか?おしえてください orz
超初心者ですが解決できません。どなたかたすけてください!!
//ランダムアクセスで文字データの書込み
RandomAccessFile a1 = new RandomAccessFile("test.dat", "rw");
a1.seek(5);
byte[ ] arraybytes = ss.getBytes( );
a1.write(arraybytes);
a1.close( );
} catch (IOException e1) {
}
の全く逆で、ランダムアクセスでファイルの指定位置から
指定文字数の文字列データの読み、
String変数SSにその文字列を入れる方法を教えてください!!
>>646 よんでませんでした。
いまのぞいてみましたが、
よくわかりません・・・
>>647 わかるまで読み返せ。
頑張れ、君ならできる。
Math.randomメソッドの中身?を見たいんです
どんなフィールドなのかとかです
どうやったら見れますか?
srcを解凍しろ
>>650 JDK付属の src.zip とか src.jar に入ってるだろ。
まぁ、普通に java.util.Random#nextDouble() だけどね。
static で宣言されてるRandomクラス型の変数があって、
初回呼び出しの時にインスタンス生成して return Random#nextDouble();
TabStopを使ってもJTextPaneのタブサイズが変えられないです。どうやるんですか?
ALIGN_LEFTで設定して一番左のタブサイズは変えれたんだけどそれ以降は無理でした
appletのほうには、低レベルの描画関数がいろいろと
ありますが、
applicationのほうには、そういうのはないんですか?
アプレットのほうが画面周り弱いだろ
どっちも変わらんと思うが。
658 :
デフォルトの名無しさん:04/12/17 00:14:15
ちょっと質問
親コンポーネント上(e.getDot()が100として)その次に子コンポーネントを置いて、
子コンポーネント上のキャレットの位置がe.getDot()が0の時に
さらに左←を押したとき親にキャレットを移す方法を調べているのですがご存じないですか?
早い話がコンポーネント間でキャレットを渡したり渡されたりしたいだけなのです。
たとえば、JTextPaneを継承してHogeTextPaneでも作ってその中で実装させると
するとどういう風になるのでしょうか?
キャレットの位置とKeyCodeはわかるように実装しているのですが、
受け渡しの方法がいまいちわからなくて困っています。
どなたかご存知の方おしえてください。
なんか、さっぱりわからない質問で申し訳ないです。
659 :
デフォルトの名無しさん:04/12/17 00:31:35
requestFocus()を使うとか・・・
アプリならフルスクリーンとかページフリップとか動くしな
661 :
デフォルトの名無しさん:04/12/17 01:22:13
>659
ありがとうございます。
requestFocus()
transferFocus()
で、なんとかなりそうです。
APIを読んでいても探しかたがまずいとどうしても引っかからなくて・・・
ずっとget系のメソッドだと思って探していました。
662 :
デフォルトの名無しさん:04/12/17 01:30:07
たびたびすいません。
transferFocus() は次のコンポーネントに移るとあるのですが、
前のコンポーネントに移るメソッドもどこかにあるのでしょうか?
ただ、transferFocus() にある次のコンポーネントという意味も
いまいち抽象的過ぎて理解に時間がかかりそうですが・・・
663 :
デフォルトの名無しさん:04/12/17 01:42:04
そのコンポーネントの親コンテナが所持する次のインデックスの
コンポーネントに移ると言う事でしょう。
簡単に言えばボタンがFlowLayoutで二つ並んでたら左から右に移るとの
事でしょう。
並び方にもよりますが、親コンポーネントの参照を保持して
requestFocut()の方がいいと思いますが・・・
>>662 transferFocusBackward (1.4から)
>ただ、transferFocus() にある次のコンポーネントという意味も
>いまいち抽象的過ぎて理解に時間がかかりそうですが・・・
これは次のコンポーネントにフォーカスを入れるためではなく、
どちらかというと今フォーカスが入っているコンポーネントから
フォーカスを外すために使うのだとおもう。
「今どこにフォーカスあるかあるか知らんけど、お前に入れ」→requestFocus
「お前から次へフォーカスを移せ」→transferFocus
順番を制御したいならFocusTraversalPolicyも見とけ
665 :
デフォルトの名無しさん:04/12/17 15:44:30
struts & jspで<logic:iterate>を使用するのに、以下のように<% 〜 %>スクリプトレットで取得する方法はできたのですが、
<% 〜 %>を使わないでstruts-config.xmlを利用して取得するにはどうせれば良いのでしょうか?
---jspコード---
<ul>
<%-- ↓これを埋め込みたく無い --%>
<% request.setAttribute("bean",new bunsyo.SampleBean()); %>
<logic:iterate id="seihin" name="bean" property="list">
<li><bean:write name="seihin" property="process"/></li>
</logic:iterate>
</ul>
--jspコードココまで---
---SampleBean.java---
public class SampleBean {
public java.util.List getList(){
java.util.List list = new java.util.LinkedList();
return(list);
}
}
---SampleBean.javaここまで---
666 :
デフォルトの名無しさん:04/12/17 18:12:35
Java を ecpliseで開発しているんですが、appletを作ったときに自動的にhtmlを生成してくれるような
設定はできないんでしょうか?
あとecpliseの正式な読み方を教えてください。 エクプライズ?
エクリプスっぽいな
俺は昔から蝕はイクリプスって言う癖が・・・
671 :
デフォルトの名無しさん:04/12/17 19:01:43
教えてください。JAVA 又はJAVASCRIPTでもいいのですが
ネットワークドライブを割り当てる
ネットワークリソースを確保する等の方法ありますでしょうか?
ない
abstractクラスにしても、コンストラクタをprotectedにしても、
「インスタンスを作る場合は子クラスから作る」ことを強制できるわけだが
どっちがお勧め?
abstractメソッドは使わない予定。
クラスはpublicです。
>>673 サブクラスが前提ならabstractにするのが設計思想にかなっているような気がする
676 :
デフォルトの名無しさん:04/12/17 19:43:04
>>672 では質問の角度を変えてみます。
ADSLモデム、ルータ等で設定時に\\192.168.1.1
に繋いで設定変更等しますよね?
その際にネットワークリソースのパスワード照合ダイアログが表示されるのですが
あれはどのように表示しているのでしょうか?
678 :
デフォルトの名無しさん:04/12/17 19:50:17
なぜJavaスレなんだろ
>>676 ごめん、爆笑した。
Javaでそういうパスワードがかかったサーバープログラムを作りたいという話か?
ちなみにそのパスワード入力ダイアログが表示される仕組みを簡単に説明すると
1、IEが192.168.1.1(ルーターのIPアドレス)にアクセスしようとする
2、モデムがIEに対して「パスワードを言え」とか言ってくる
3、IEがダイアログを出してユーザに入力させる
4、IEがもう一度ルーターにアクセスする(今度はパスワードも送信)
5、パスワードが正しければルーターがIEにページの情報を送信する
ここまで親切に書いてやったんだから間違ってても知らん。
681 :
デフォルトの名無しさん:04/12/17 20:34:44
やはり無理ですか。仕組みを分かり易くおしえて頂いて
ありがとうございます。
ダイアログは表示されなくてもいいのですが、
APIで云うWNetAddConnection2のような関数が
JAVAに存在するのであれば参考にしたいとおもいました。
要はhtmlブラウザよりサーバーへのリンクにはられたパスを
クリックした時にサーバーへのネットワークリソースが確保できたら
楽だなと考えたのです。今だとリンクに飛ぶ前に
ネットワークドライブの割り当て等でサーバーのネットワークリソースを
取得していないとエラーになってしまうのです。
ちなみにサーバーはUNIXとかじゃなくて只のServer2003です。
>>681 何やりたいのかわからん
Server2003にTomcatとかのサーバプログラムを起動させて、それを介してどうにかならん?
Windowsのマイネットワークみたいな参照をやりたいのか?\\nurupoみたいな
あれはプロトコルが違うからなぁ
683 :
デフォルトの名無しさん:04/12/17 21:19:50
>>682 その通りです。VBやVCで接続確保のプログラムを作成すれば
それで問題ないのですが、ランタイムやら各端末の環境不一致で
エラーになったり動かなかったりは辛いので
HTML内にて何か有効な方法があれば知りたかったのです。
>JAVA 又はJAVASCRIPTでもいいのですが
この辺で既にスレor板違いか勉強不足か認識不足の匂いがプンプンするのに
みんな親切やね
>HTML内にて何か有効な方法があれば知りたかったのです。
>>1を読んでから出直そうね
>>684 皮肉言う暇があるなら、アナタこそ礼儀を勉強し直してください。
はっきり言って無駄レス、ウザいです。
>>684の言っていることのどこに誤りがあるというのだろう。
>>685は
>>1すらも読んでない、いやタイトルすら読んでないことに
1ルピー。
こういうのをきっと逆切れっていうんだな
うん
なんだかここには自作の専門用語を連発してるSヨがいますね。
専門用語=「ルピー」
なんだ
インドの通貨も知らんのか
692 :
デフォルトの名無しさん:04/12/17 23:41:25
dir1\dir2\test.java
dir1\a.java
このようなディレクトリ構造のときに、
test.javaからa.javaをimportするにはどうしたら良いのでしょうか?
a.javaには
package dir1\dir2;
と宣言しています。
>692
--dir1\dir2\a.java--
package dir1.dir2;
public class a {
void foo() {
695 :
692:04/12/17 23:49:10
間違えました
a.javaでは、
package dir1;
と宣言しています。
だー、途中で送信してもうたorz
後は、というかちゃんとした回答、誰か頼む。
>>692 import dir1.a;
もしくは
import dir.*;
importで指定するパスは、クラスパスで指定してるディレクトリからのパスで
あって、importするクラスからの相対パスじゃない。だから常に一定になる。
どっからimportしようが、クラスパスがdir1の親ディレクトリなら、常に
import dir1.a; となる。
698 :
692:04/12/18 00:00:27
697さんありがとうございます。
相対パスではないと。
つまり、クラスパスを指定する方法があるということですね。
調べてみます。
クラスパスの理解をするためにはNetBeans3.6までが原始的でよかったんだけどねぇ
4.0からプロジェクトベースになっちまった
>>700 あれはあれで、「マウント」って概念よりは分かりやすいと思う >4.0
プロジェクトのプロパティで明確にクラスパスを指定するわけだから。
java で applet を制作するとしたら、awt、swing あなたはどちら派?
SWT
マジレスしとくと、今後いろいろ作っていきたいorきっちり設計されてる
オブジェクト指向フレームワークに触れておきたい、という希望があるなら、
Swingだな。
どうせSwing使う時にAWTにも関わるんだし。
705 :
671 :04/12/18 00:47:59
671ですが、確かにJAVAに関するプロジェクトには参加した事がありません
別にその手に拘らなくても方法はあるのですが
WEB系に有効な言語で使える機能はいろいろ駆使してみたかったのです。
ここまでの流れで対応できない事は理解しました。
ありがとうございました。
つーか釣りじゃねーのか
2回目と質問まったくちがてたし
708 :
692:04/12/18 00:50:09
709 :
デフォルトの名無しさん:04/12/18 00:52:14
>>706 一度目と二度目の質問は私の中では同じです。
たとえばどう違うように思われますか?
つりではなく、実際に職場からのレスでした。
>>708 たしかにメンドイ。なので、
・自分がよく使うプログラムなら、環境変数CLASSPATHをセットする
・人に使ってもらうなら、Jarファイルに固めて、jar内にMANIFEST.MFを入れる。もしくはバッチファイルを書く。
・javacする時はAntを使うか、Eclipse/NetbeansのようなIDEを使う。
・AntもIDEも使わないなら、コンパイル時にはクラスパスに指定する位置まで移動してからやる。
くらいか。
でも実行するときのjavaコマンドについては、-classpathじゃなくて、-cpで十分だということは
覚えておいて損はないな。
>>709 板違いなので一言だけ。ベーシック認証でぐぐれ
712 :
692:04/12/18 01:24:56
>>710 ありがとうございます。
とりあえず、しばらくは-classpathもしくはバッチファイルで済ませ、
他のに目を向ける余裕ができたらAntなりIDEを試してみます。
「C:\java」なんてディレクトリ記述をみて、お前にはこれがUNIXかLinuxに見えるのかと。
Cygwinがあるじゃないか
初心者大歓迎スレで「Cygwin入れてシェルにしちゃえよ」「Windows Scripting Host使えよ」
とか言ってもさ...
>715
javac走らせるのならバッチで充分だと思うが……
wshのスクリプト書く手間考えたらいっそbuild.xml手書きでも大して変わらんような。
>716
Cygwinだと/cygdrive/c/java……になるわけだが。
primitive型の配列を Objectとして扱っていて元の配列の型が分からない場合に
配列のlengthを取得する方法はありますか。
reflection を使って length フィールドを参照しようとすると
NoSuchFieldになりました。
720 :
デフォルトの名無しさん :04/12/18 07:52:31
はじめまして先輩が他動か私にご教授ください。
実はJARファイルを謝って消してしまってjarコマンドがつかえなくなってしまいました。
OSはWINのSP2でコントロールパネルからパーフォーマンストメンテナンスへいってそこから左上の
ファイルの種類へ行ってフォルダオプションへいってファイルの種類タグを選択した際に誤ってjarファイルを消してしまいました.
そのせいかコマンドプロンプトでjarコマンドを打っても認識されません。
どういう解決方法があるかどうかご教授ください
>>719 java.lang.reflect.Array#getLength(Object)
配列のlengthフィールドは特別扱いされてるので
java.lang.reflect.Field経由では取れない。
同様に配列のclone()も java.lang.reflect.Method経由では呼べない。
>>720 よくわかんないけど、JDK入れなおせばいいんでないの?
>>718 ふむぅ、もう少しUNIX勉強しようぜ
めっちゃ便利やもん
/cygdrive/c/java を /java って出来るし。
Windows上のコマンドプロンプトからだって使えるんだぜ
その場合はC:\javaなわけで
724 :
デフォルトの名無しさん:04/12/18 08:42:30
>>722
やったんですけど
'Jar'は内部コマンドまたは外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されてません
というえらーがでます(TT;)
>>724 javac とか java は出来るの?
もし出来なかったら環境変数のPATHが通ってないかも
>>724 Jar じゃなくて jar だよ!!そんなこともわからないの!!?君って凄いはげちゃびんだね!!
>>724 java.exeはwindowsのシステムディレクトリにもインストールされるが、jar,javacはJDKのディレクトリ\binにインストールされるだけで
PATHも設定されないからそのままでは起動できない。
たとえばC:\j2sdk1.4.2にインストールされている場合は
> c:\j2sdk1.4.2\bin\jar
とするか、環境変数PATHにj2sdk1.4.2\binを追加しないといけない。
今まで追加せずに使えていたのならだれかがパスの通った所にコピーを入れていたはず。
728 :
デフォルトの名無しさん:04/12/18 09:04:46
皆様ご返事ありがとうございますm( )m
どういたちまして(><)
730 :
デフォルトの名無しさん:04/12/18 09:08:04
環境変数PATHにj2sdk1.4.2\bin葉設定してあります
731 :
デフォルトの名無しさん:04/12/18 09:09:59
724ですがjavacもjavaコマンドも通ります。
732 :
デフォルトの名無しさん:04/12/18 09:14:02
いま.jar拡張子にava(TM) 2 Platform Standard Edition binaryを関連ずけて見たのですがやっぱりうまく行きませんでした
>>732 なんで関連付けの話がでてきたんだろう。
あと、送信する前に文章読み直してから押して。
typo多すぎ。
ってか、「Javaとは関係ない話だろ、それ」に100ペソ。
>>720 まさかと思うが.jarファイルをダブルクリックしても動作しない->コマンドプロンプトでjarと打っても
な脳内変換してないだろうな?
735 :
デフォルトの名無しさん:04/12/18 12:35:03
>>734 おっしゃる意味がよくわからないんですが、コマンドプロンプトでjarコマンドつかえないということです。
jarファイルを生成できないということです。
736 :
デフォルトの名無しさん:04/12/18 12:55:10
結局フォルダオプションで解凍ツールに,.jarという拡張子を関連づけてしまったせいでじゃrコマンドが実行できなくなってしなったようです。
それを元の戻したいんですがどうすればいいのでしょうかということです。
738 :
デフォルトの名無しさん:04/12/18 13:05:51
>>736 >じゃrコマンド
jarコマンドのまちがいでした
どなたか上級者の方よきアドバイスをお願いしますm( )m
>>738 Windowsの初心者スレに池。
ここには二度と来るな。ウザ委。
741 :
デフォルトの名無しさん:04/12/18 13:12:18
>>739 >Windowsの初心者スレに池。
逝けのまちがいでした
>ここには二度と来るな。ウザ委。
ウザいのまちがいでした
742 :
デフォルトの名無しさん:04/12/18 13:14:37
>>739 わかりました。いってきます。
別にここはあなたの板ではないんで2度とくるなといわれる筋合いはありません。
あまりいい気にならないでください。
>結局フォルダオプションで解凍ツールに,.jarという拡張子を関連づけてしまったせいでじゃrコマンドが実行できなくなってしなったようです。
>それを元の戻したいんですがどうすればいいのでしょうかということです。
jarコマンドとjarの関連付けにどういう関係があるんだ?
と思ったのは俺だけか?
どうでもいいけどさ!!jarのパスはとおったの?ねぇ!!?どうなんだよぉぉぉあおウェfじゃ歩いウェrjg歩!??wr;尾wじぇg;おあ
745 :
デフォルトの名無しさん:04/12/18 13:33:48
馬鹿を召喚しようとするな。
しつも〜ん!
AMD64マシン使ってる自分は、J2SDK使うなってことでしょうか?
>>746 いや、AMD用にコンパイルしたバイナリが配布されていたはずだ!!!
>>742 じゃあ、俺からも言っておく。
二度と来るな
>>748 わかりました。いってきます。
別にここはあなたの板ではないんで2度とくるなといわれる筋合いはありません。
あまりいい気にならないでください。
>>749 >>739は親切にもWindows初心者スレ池って教えてるジャマイカ
2度とくるなと言ってるからと言って悪いやつだとは限らないぞ
文体と本心は必ずしも一致しない
2ch初心者板池。市ね。
>>750 わかりました。いってきます。
別にここはあなたの板ではないんで2度とくるなといわれる筋合いはありません。
あまりいい気にならないでください。
>>749 >>739は、
「Windows初心者スレに行け。確かな技術を身につけて、二度とこのスレに迷い込むなよ。」
と言ってくれてるんだ。
なんで
>>739の優しさが分からないんだ。
>>752 わかりました。いってきます。
別にここはあなたの板ではないんで2度とくるなといわれる筋合いはありません。
あまりいい気にならないでください。
ひまそうな自作自演だな
>>754 わかりました。いってきます。
別にここはあなたの板ではないんで2度とくるなといわれる筋合いはありません。
あまりいい気にならないでください。
それ、流行ってるの?
例の初心者はsageしらなかったようだから
ここんところの流れは釣り師
758 :
デフォルトの名無しさん:04/12/18 16:03:01
わかりました。ageます。
別にここはあなたの板ではないんで2度とくるなといわれる筋合いはありません。
あまりいい気にならないでください。
759 :
デフォルトの名無しさん:04/12/18 16:03:22
>>757 わかりました。いってきます。
別にここはあなたの板ではないんで2度とくるなといわれる筋合いはありません。
あまりいい気にならないでください。
760 :
asdf:04/12/18 16:17:28
>>757 僕が今回のことになったの、みんなにも原因あるんだから、
そこのことかんがえてよね
761 :
デフォルトの名無しさん:04/12/18 16:21:37
業務でJAVAをやることになりました。
Cしか経験ないのですが、JAVA使えるように
なるまで何時間くらいの勉強量必要でしょうか?
>>761 使えるって言っても色々な意味があるだろ?
単語覚えるにしても、調べりゃ一瞬で済むことだし
ある意味オブジェクト指向理解してりゃ1日でバリバリやれる気すらする。
はっきり言って、少なくともCよりJAVAの方がはるかにに簡単だった。
>>761 お前なら半年頑張ってもアプレットのアニメーション止まり。
オブジェクト指向にさえ、慣れればおk
@
C→C++→Java
A↓ ↑
HTML−ー
Aのコースが理想
>>761 すぐに勉強始めないで下らない質問するのに時間使ってるし、
C言語でどの程度の事が出来るのかも全く書かないって事は
C言語でも何が出来て何が出来ないのかすら自分で判断できない程度の初心者だろう。
数年は必要だと思われ。
767 :
デフォルトの名無しさん:04/12/18 16:38:15
>>764 半年でそこまでできるようになりますか!
さいのうあるんでしょうか?
”業務”でって書いているところが微妙にSEとかを匂わせてはいるが
文章から想像する限りでは、どう見ても素人
まだ”HTMLしか経験ないのですが”の方が良かった。
「わかりました。いってきます。」の人はどーなったんだろ?
つまんなくなったから止めたのかな
いちいち釣られてるおまえらの方がよほど莫迦に見える
親切なんだよ(゚Д゚*)ゴルァ
772 :
sage:04/12/18 17:44:49
javaのアプリケーションでActiveXを操作する方法を教えてください。
検索で探しましたが見つける事ができませんでした。
ラグナロックオンラインのBotのつくりかた教えてください
>>772 「Java ActiveX」でぐぐればそれっぽいのが出てくると思うが。
775 :
sage:04/12/18 18:38:00
>>774 有難うございます。
「Javaで Comを操作」「JavaでActiveX」その他いろいろで
検索しましたが、具体的に説明してあるのが見つかりませんでした。
>>775 単語の間にスペース入れるとアンド検索できるのは知ってる?
Googleを知らない子供たちさ〜♪
InputStream xml = new FileInputStream("data.xml");
InputStream xsl = new FileInputStream("template.xml");
OutputStream html = new FileOutputStream("data.html");
XML + XSL で HTML を出力したいんだけどこの続きが分からない…
>>778 この続きがというが、
XML + XSL → HTMLがやりたいなら
そこらへんは全然本質とは関係ないような・・・
780 :
デフォルトの名無しさん:04/12/18 19:56:39
sock = new Socket(ホスト名,ポート名);
sockin = new BufferedReader(
new InputStreamReader(sock.getInputStream(), "8859_1"));
(中略)
//レスポンス受信
int c;
while ((c = sockin.read()) != -1) {
System.out.write(c);
}
現在上記のようにして、Socketから受信データの終了を
判断しています。1文字ずつの受信では扱いづらいので、
String型で受信したいと思いますが、BufferedReader#readLine()
を使用した場合、受信データの終了の判断方法がわかりません。。。
どなたかreadLine()メソッドを使用した場合の、受信データの
終了判断方法を教えてください。
while( (s = br.readLine()) != null ){
}
>>782 頭が悪いですね。
君には一生無理でしょうね。
>>782 出来る。方法は検索すりゃいくらでも見つかる
>>721 さんくす。Arrayクラスは見ていたのだけど見落としていました。
786 :
デフォルトの名無しさん:04/12/18 21:06:39
ご存知の方がいましたらぜひアドバイスをお願いします。
現在、Java の SWTにてActiveX(OLE?)の使用を試みています。
org.eclipse.swt.ole.win32.OleAutomationクラスのinvokeメソッドで
APIの呼び出し自体は成功しています。
しかし、引数に値をセットして渡すのはOKなのですが
引数に値をセットしてもらい、受け取るような場合に値が取得できていません。
戻り値の受け取りはOKなのですが...。
IBMのサイトのサンプルも見ましたが、引数は渡す(in)だけで
受け取る(out)例は見つかりませんでした。
他のサイトも探しましたが、同様でした。
力を貸してください。よろしくお願いします。
>>786 > rgvarg - an array of arguments for the method.
> All arguments are considered to be read only unless the Variant is a By Reference Variant type.
って書いてあるけど?
788 :
sage:04/12/18 21:26:47
789 :
デフォルトの名無しさん:04/12/18 21:28:50
さっそくありがとうございます。
すいません、英語苦手なもので(汗)。
「read only」=読み込みのみ?
これって受け取れないってことでしょうか??
たった二行なんだから全部読めよ……
たった二行なんだから全部読めよ……
792 :
デフォルトの名無しさん:04/12/18 21:41:29
すいません頭悪くて。読んだ上で聞いてます。
ひとつひとつの単語は訳してみたのですが...。
もし(in)のみで(out)は受け取れない(書き換えられない)のだとしたら
代替の手段とかありそうなものですが??
すいませんが、もう少しアドバイスをお願いします。
JAVA 3Dってのは、結局はOpenGL,Direct3D使ってるんですよね?
じゃあ、なにかメリットはあるのでしょうか?
おそらく、OpenGL,Direc3Dの機能全部使えないだろうし。
読んでたら分かりそうなもんだが。
> unless the Variant is a By Reference Variant type.
って書いてあるし。
>>793 そんなに全機能使いたいならDirectXもOpenGLも使わずにビデオカードのデバイスドライバ叩けば?
もしくは自力でハードウェアにアクセスするとか。
796 :
デフォルトの名無しさん:04/12/18 22:00:48
> read only unless the Variant is a By Reference Variant type
直訳だと、Variantは参照Variant型を除いては読み込みのみ??
...合ってるかすらわかりません(汗)。
う〜ん。英語、難しいです...orz。
798 :
デフォルトの名無しさん:04/12/18 22:38:50
合ってるんですか??書いてはみたものの全く自信ありませんでした。
ありがとうございます。コンストラクタ眺めました(すでに何度か見たことはあったのですが)。
「参照Variant型」にすれば書き込めるってことになるのでしょうか。
Variant(int ptr, short byRefType)で生成して
invoke後にgetByRefを呼び出す??
的ハズレだったらすいません(汗)。
万が一合ってたとして、でも今度は返却されたint値(ポインタ?)をどう扱ったらよいものやら...。
すいません、わからないことだらけで。
もう少しお付き合いください、よろしくお願いします。
>>798 org.eclipse.swt.internal.win32.OS.HeapAlloc とかでメモリ確保して ptr に渡す、ってのは良いとして。
今ちょっと調べた感じでは org.eclipse.swt.internal.win32.OS.MoveMemory(byte[], int, int) とかで
ネイティブからJavaで扱える領域にデータコピーするとか。
ちゃんと調べれば他にもやり方があるのかもしれんが。
あとは自分で頑張ってくれ。AllocしたらFreeは忘れるなよ。
801 :
デフォルトの名無しさん:04/12/18 23:09:56
ありがとうございます!!すごいですね。
いただいた情報で、ひとまず頑張ってみます。
(見当もつきませんでした...orz。)
調べたときに参照したサイトとかがもしあったらですが、URL教えていただけると助かります(汗)。
とにかくここまでお付き合いありがとうございました。感謝してす^^;。
Java を Cのように exe で実行できるようにできないんですかね?
>>802 できるよ。大抵の奴は VM をキックするだけの exe だけどね。
そーでない場合はVM一式込みのでかい exe になったり
DLL とかで外部にVM一式丸ごと必要になったりするんけど。
eclipseではできますか?
808 :
デフォルトの名無しさん:04/12/18 23:43:47
>1票vote
バグ扱いで報告するってことでしょうか??^^;
そもそもなぜexeにしたいのかじっくり考えたほうがいいんじゃないか。
ただ単にアプリっぽく見せたいだけなら、バッチファイル+ショートカットで
十分なんだし。
JREインストールしたくないから
なんか同一人物だとしたら失礼極まりないやつが居るな。
数人が回答してくれてるのに礼の一つもなしで。
単純にexeにしたいって質問したら、単にexeを作る方法を教えられるだけ。
そしてJREは必要。
>>812 数人で質問して、数人で答えているわけだが
Map を key や value でソートしたいのですが、
上手いやり方を教えてください。
>>808 すでにbugとして報告されていてeclipse.orgの連中は直すつもりが
ないから、投票してこいってこと。