★★Java質問・相談スレッド134★★at TECH
★★Java質問・相談スレッド134★★ - 暇つぶし2ch650:デフォルトの名無しさん
09/12/19 15:36:17
職業マなら開発環境くらい自作しろよ

651:デフォルトの名無しさん
09/12/19 15:37:39
>>646
NetBeansですね
今やこれ以外の選択肢は無いでしょう

652:デフォルトの名無しさん
09/12/19 16:48:15
>>651
NetBeans の検索結果 約 5,540,000 件中 1 - 100 件目 (0.66 秒)
Eclipse Java の検索結果 約 17,000,000 件中 1 - 100 件目 (0.63 秒)

検索件数が倍になったら教えてね。

653:デフォルトの名無しさん
09/12/19 16:51:41
NetBeans +開発 +Java -JavaScript -C -PHP -Ruby -SVN -CVS の検索結果 約 122,000 件中 1 - 10 件目 (0.28 秒) 
Eclipse +開発 +Java -JavaScript -C -PHP -Ruby -SVN -CVS の検索結果 約 903,000 件中 1 - 10 件目 (0.29 秒) 

ああ

654:デフォルトの名無しさん
09/12/19 16:59:48
NetBeansって名前がダメだよね
豆だもん、豆。

655:デフォルトの名無しさん
09/12/19 17:04:53
JavaBeansさんをdisってんの?

disられてもしょうがないと思うけど

656:デフォルトの名無しさん
09/12/19 17:05:24
>>654
Javaェ...

657:デフォルトの名無しさん
09/12/19 17:08:39
......

658:デフォルトの名無しさん
09/12/19 20:38:23
日曜プログラマーはふつうにC#やれよ。
なんでこのスレに来るんだ?

659:デフォルトの名無しさん
09/12/19 21:21:55
クラスローダを明示的に呼び出している操作の事を、リフレクションと読んでいるのですか?
リフレクションする時は、*.getClass();ってやっているじゃないですか

660:デフォルトの名無しさん
09/12/19 21:46:45
>>659
違います。getClasはクラスローダの呼び出しでもありません。


661:デフォルトの名無しさん
09/12/19 22:47:40
>>660
わかりました
ありがとうございます

662:デフォルトの名無しさん
09/12/19 23:03:16
SwingUtilities#paintComponent(Graphics g, Component c, Container p, int x, int y, int w, int h)
p - 中間 Container

javadocを見てもパラメータpの意味がわかりません
どなたか教えてください

663:デフォルトの名無しさん
09/12/20 05:24:26
>>662
教える人を呼んできますね。

664:デフォルトの名無しさん
09/12/20 10:03:33
pっていうのは、最終的なcの描画対象コンポーネントだと思っていいみたい。
pがCellRendererPaneならばそれがそのまま使われるし、そうじゃなかったら、CellRendererPaneを新たに作成して、それにpを乗せる感じ。

665:デフォルトの名無しさん
09/12/20 11:00:43
>>664
thx

666:デフォルトの名無しさん
09/12/20 11:47:08
JNIを多用し、システムに負荷をかけると性能があまり出なくなりました。
先輩にJNIでC言語のプログラムをよんだとき、C言語のプログラムが確保したメモリって
Full GCでしか開放されないからだといわれたのですが、Full GCはあまりはしっていません。
JNIを使用すると、Full GCを意図的に誘発するようにしなければならないのでしょうか?

667:デフォルトの名無しさん
09/12/20 11:53:58
いや、単にJNIが遅いだけ
最近はJITコンパイルの性能も高いから、Javaだけで書ける処理ならJavaだけで書いた方が大抵の場合速い
JNIは、どうしてもCでしか出来ない場合 (OSのAPI呼び出し等) や、
JNIのオーバーヘッドを無視できるような場合 (1回の呼び出しで大量のデータを処理する等) でないと、無意味
あと、Cで確保したメモリはGCは面倒見てくれないから自分で解放しなければならない

668:デフォルトの名無しさん
09/12/20 12:24:54
>>664
呼んでからどれだけ待たせるんだw

669:デフォルトの名無しさん
09/12/20 12:49:08
「15歳からはじめるJavaオンラインゲームプログラミング教室」という本を書店で見つけて、
ステップアップのための本として読みやすそうだと思いましたが、その本について調べてみると
子ども向けということで一歩踏み込んだ説明が省かれてしまっているとのことでした。

ゲームプログラミングのようなとっつき易い内容で、もう少し詳しい説明が書かれた良書は
何かないでしょうか?ご存知の方、どうぞご教示ください。

670:デフォルトの名無しさん
09/12/20 12:53:58
>>667
出番だよ
さっさと回答してやれ

671:667
09/12/20 12:57:53
本の善し悪しはわからん
誰か回答してやってくれ

672:デフォルトの名無しさん
09/12/20 13:00:23
本読まないで始めた奴の方が多いだろうしな

673:デフォルトの名無しさん
09/12/20 13:26:51
スレチしてしまったのでここで改めて質問します。

Canvas3Dをフレームの領域指定して貼り付けたいのですがどうすればいいでしょうか?
例えばフレームサイズが(500,400)として,Rect(10, 10, 390, 390)くらいの領域だけで3D描画を行わせたり等がしたいです。

674:デフォルトの名無しさん
09/12/20 13:33:42
オフスクリーンに描画して切り取ったのをコピーすればいいんじゃね?

675:デフォルトの名無しさん
09/12/20 13:39:29
>669
細かい説明なんて2冊目で読めばいいから、
1冊目は立ち読みしてみてわかりやすい本でいいと思う

まさか1冊で終わるわけないし。

676:デフォルトの名無しさん
09/12/20 13:44:56
Java3Dやらんから的外れかもしれないけど、普通にコンポーネント化して
フレームに貼り付けるんじゃね?

677:デフォルトの名無しさん
09/12/20 14:03:03
Javaの入門書について質問です。

多言語で実務経験があるものがJavaを学習するのにオススメの入門書ってありますか?

今のところ独習Javaの購入を検討しています。

実務経験はC:4年、VB5.0:1.5年、VB2005:1年、VC6.0:0.5年といったところです。


678:673
09/12/20 14:07:10
>>674
>>676
ありがとうございます。これから本・ネットで調べてその方法で出来るか試してみます。
ただ出来れば具体的な解決策を例示してくれるとありがたいです。

679:669
09/12/20 14:19:34
>>672
本を読まずに覚えた人は代わりにどうやって勉強したんでしょうか・・・?

>>675
1冊目はもうすぐ読み終わりそうです。
実用的なスキルが身についていないので、ゲーム等を実際に作って覚えるための
2冊目の本を探してます。

680:デフォルトの名無しさん
09/12/20 14:23:05
>>678
おいおい、ヒントだけじゃ出来ませんってか?
例えば URLリンク(www7.plala.or.jp) とか。
これにしたって、AppletはPanelなんだからFrameとかに貼り付けられる立派なコンポーネントだぜ。

681:デフォルトの名無しさん
09/12/20 14:32:08
>>679
>本を読まずに覚えた人
JDKを読む。
sunのチュートリアルを読む。
samplesを読む。
src.zipを読む。
Jakartaなどオープンソースのコードを読む。

682:デフォルトの名無しさん
09/12/20 14:55:57
>JDKを読む。

| % od -h java_xx_sdk-x_xx-jdk-xuxx-xxxl.bin
|
| フムフム、なるほど・・・・

   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄
          /つ_∧!
    ∧_∧ 〈(゚д゚ )
   ( ・∀・) ヽ ⊂ニ)
   (つ/ ̄ ̄ ̄/  |
   ̄\/___/ ̄ ̄ ̄


683:デフォルトの名無しさん
09/12/20 15:37:11
Javaはサンプルソースがてんこ盛りだから本なんかいらない

684:デフォルトの名無しさん
09/12/20 15:50:49
Java 本 に一致する日本語のページ 約 2,610,000 件中 1 - 10 件目 (0.20 秒)
C++ 本 に一致する日本語のページ 約 1,490,000 件中 1 - 10 件目 (0.26 秒)
JavaScript 本 に一致する日本語のページ 約 12,600,000 件中 1 - 10 件目 (0.09 秒)
PHP 本 に一致する日本語のページ 約 15,200,000 件中 1 - 10 件目 (0.37 秒)
C 本 に一致する日本語のページ 約 35,100,000 件中 1 - 10 件目 (0.15 秒)

685:デフォルトの名無しさん
09/12/20 15:57:58
サンプルは基本がわかった上で参考にするものだろ

686:デフォルトの名無しさん
09/12/20 16:05:44
>>684
本だけとか、Cだけとか、JavaよりC!、みたいな検索結果も混じってるんでない?

687:デフォルトの名無しさん
09/12/20 16:11:47
>>683
てことは、このスレもいらないわけだね。

688:デフォルトの名無しさん
09/12/20 16:18:13
>>685
sunのサイトにあるSwingのチュートリアル読んで来い。
それにしかかいてない大事なことがいくつかある。

689:デフォルトの名無しさん
09/12/20 16:20:20
チュートリアル ≠ サンプル

690:デフォルトの名無しさん
09/12/20 16:31:12
>>688
これ?
URLリンク(java.sun.com)

691:デフォルトの名無しさん
09/12/20 16:33:26
まあ、プログラミングの基本がある程度しっかりできてれば、
ソースだけみてもかなりのことがわかるだろう。
プログラミングの基本を知らない人間は、本かなんかで勉強しないと、
いきなりソースコードだけみてもわからんかもしれない。

692:デフォルトの名無しさん
09/12/20 16:41:35
Cヒープとは何をする領域なのでしょうか?
こちらは開発上、意識する領域なのですか?

693:デフォルトの名無しさん
09/12/20 16:46:20
誤爆やスレ違いでなかったら、javaのヒープと同じものと言えば分かるかな?
newは無いからmallocなどで確保する。

694:デフォルトの名無しさん
09/12/20 17:05:56
ん?

695:デフォルトの名無しさん
09/12/20 17:34:35
Class.forNameでロードしたクラスはシステムクラスローダにロードされるのでしょうか?
それともVM次第なのでしょうか?

696:デフォルトの名無しさん
09/12/20 17:36:43
javadocに書いてあるけど

> Class.forName("Foo")
> これは、次と同じです
> Class.forName("Foo", true, this.getClass().getClassLoader())

697:デフォルトの名無しさん
09/12/20 17:37:43
>>695
URLリンク(java.sun.com)(java.lang.String)
> 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、
> Class オブジェクトを返します。このメソッドを呼び出すことは、次の記述に相当します。
>
>   Class.forName(className, true, currentLoader)
>
> ここで、currentLoader は、現在のクラスを定義するクラスローダを示します。

698:669
09/12/20 17:50:03
>>681
なるほど、他人のソースを読むということですね。

でも私はまだそのレベルに達してないと思いますし、
移動中に読みたいので、やはり本がいいと思っています。
どうぞよろしくお願いします。

699:デフォルトの名無しさん
09/12/20 18:08:13
オブジェクトをインスタンス化すると確保されるメモリ領域には変数以外何があるんですか?
メソッドについては参照が保持されるのですか?

700:デフォルトの名無しさん
09/12/20 18:48:43
>>698
URLリンク(www.amazon.co.jp)
ぶっちゃけ、Java(やC#)でゲーム作ってるひとって、C/C++でのゲーム作成経験者が大半じゃない?


701:デフォルトの名無しさん
09/12/20 19:10:24
ワタシイングリッシュヨメマセーン

702:デフォルトの名無しさん
09/12/20 19:47:45
>>699
まずは人に聞く前に質問できるくらいの勉強はしてこようね

703:デフォルトの名無しさん
09/12/20 20:25:29
現在自作のクラスのclone()を実装しようと思って色々やっているのですが、
フィールドにjava.awt.Shape型の変数があり、これのclone()を呼び出したいのですが、
if( shape instanceof RectangularShape ){
  ((RectangularShape)shape).clone();
}else
if( shape instanceof ~ ){
  ~
}
て感じでif-elseをつなげていくしかないんでしょうか?リフレクション辺りで色々やってみたんですが
コンパイルすら通りません。ちょっとお手上げです・・・

704:デフォルトの名無しさん
09/12/20 20:48:30
HashMapや自作のBeanを簡単にディープコピーする方法はあるのでしょうか?
新たにnewして、値を入れないとダメなのですか?

705:デフォルトの名無しさん
09/12/20 20:49:32
>>703
Cloneable だけテストすれば済むんじゃないの?

706:デフォルトの名無しさん
09/12/20 21:05:45
shape = new GeneralPath(shape); とか

707:デフォルトの名無しさん
09/12/20 21:09:42
>>703
いろいろあるけど直列化と逆直列化をしてコピーするとか?

708:デフォルトの名無しさん
09/12/20 21:17:29
>>700
ゲームが作りたいのではなくて、Javaが使えるようになるために
とっつき易いゲームを選ぼうとしているだけです。

アマゾンでは
>javaの本ではなくゲームプログラミングの本なのでこの本でjavaを勉強したいという人にはオススメできません
とコメントされているようです・・・。
一度立ち読みでもしてみます。

ありがとうございました。

709:デフォルトの名無しさん
09/12/20 22:11:25
Javaのシステムってスレッドを多重化することでパフォーマンスがあがるといいますが、
CPUは数個しかないと思うので、100スレッド多重としてもあまり意味がないと思います。
何多重にすればよいのかは、どういう計算で求めるとよいのですか?

710:デフォルトの名無しさん
09/12/20 22:11:31
>>677
それは他言語で実務経験があるとはいわない。
VB.netに手が馴染まなかったのなら、java,c#ともやっても馴染まないだろう。
どの実務があるか知らないけど、最新PCを買ってlinux(virtualpcとかでも)のcでopenglやgtk+をやるといいと思うよ。
javaなら英語のチュートリアルだけど、もし読めないなら5年以上この業界にいるのに英語も読めないのだからもうあきらめた方がいい。

711:デフォルトの名無しさん
09/12/20 22:16:46
ベンチマークして求めればいい

712:デフォルトの名無しさん
09/12/20 22:25:17
>>709
何かの本にはCPUの数+1くらいと書いてあった

713:デフォルトの名無しさん
09/12/20 22:29:36
javaでゲームとか言い出しても実際はjoglだしね。
c#だとdirectxでこれも使う言語に関係ないし。

714:デフォルトの名無しさん
09/12/20 22:48:00
>>710は何で偉そうなの?

715:デフォルトの名無しさん
09/12/20 22:59:27
>>703
JavaのCloneableは失敗作
コピーコンストラクタでおk
詳しくはEffective Javaを参照

716:デフォルトの名無しさん
09/12/20 23:04:06
英語すら読めないならjavaなんぞ無理だな

717:デフォルトの名無しさん
09/12/20 23:07:57
海外で暮らしてた俺ならJavaは余裕ってことか?

718:デフォルトの名無しさん
09/12/20 23:11:16
アフリカ辺りですか?

719:デフォルトの名無しさん
09/12/20 23:12:40
いや。韓国ですOrz

720:デフォルトの名無しさん
09/12/20 23:36:39
・・・

721:デフォルトの名無しさん
09/12/20 23:59:27
英語できるような賢い子がなんで底辺プログラマなんてやってんの?

722:デフォルトの名無しさん
09/12/21 00:02:59
でも辞書引きながらでも英語よまないと情報全然足りないじゃん

723:デフォルトの名無しさん
09/12/21 00:04:10
アメリカ行けば英語できるのに底辺の仕事やってる奴が掃いて捨てるほどいるぞ。

724:デフォルトの名無しさん
09/12/21 00:05:09
今時、英語も読めないんなら底辺プログラマーすらやってられないのよ。

725:デフォルトの名無しさん
09/12/21 00:06:12
その前に日本語勉強して下さい^^;

726:デフォルトの名無しさん
09/12/21 00:07:10
>>718
イギリスです

727:デフォルトの名無しさん
09/12/21 00:14:26
>>724
で、英語も出来て月給はいくらもらえるんですか?

728:デフォルトの名無しさん
09/12/21 00:25:53
>>699
メソッドはクラスがロードされる時だろうね。


729:デフォルトの名無しさん
09/12/21 00:46:37
>>708
ゲームって(もちろんものによるけど)結構特殊なので、Javaを学ぶ目的には
あまり適してないと思うんだけどね。

例えばゲームループって呼ばれる手法、WindowsSDKを生で使う場合には
普通にGUIのアプリを作るにも似たようなことするんだけど、
Javaで同じことする場合にはライブラリが隠蔽してくれてるので気にする必要なかったりとか。

で、入門書にはそういうゲームに特化したテクニックはあまり書いてないだろうし、
普通のJavaの使い方はそれとは別に覚える必要があると思うし。

730:デフォルトの名無しさん
09/12/21 00:54:40
>>704
CommonsのLangにそういうのあるみたいね。使った事ないけど。
URLリンク(commons.apache.org)(java.io.Serializable)

731:デフォルトの名無しさん
09/12/21 00:56:49
ゲームってのは、言語+英語+数学がある程度できないと無理。
javaとかc#とかライブラリ的なところはあまり重要でない。

732:デフォルトの名無しさん
09/12/21 00:58:29
何故英語?

733:デフォルトの名無しさん
09/12/21 01:02:53
英語英語言う奴とコミュ力コミュ力という奴の中身はだいたい同じ

734:デフォルトの名無しさん
09/12/21 01:02:56
ゲームのテクはほとんど英語で書いてある。
実際は、業務アプリの数十倍の努力が必要。

735:デフォルトの名無しさん
09/12/21 01:10:22
まあ、英語に比べれば Java なんて 1000倍易しいな。
で、Java に馴れるには、まずは List や Map をごちゃごちゃとこねくり回すような題材がいいな。


736:デフォルトの名無しさん
09/12/21 01:14:14
で、数十倍の努力してお幾ら稼いでるんですかね。

737:デフォルトの名無しさん
09/12/21 01:15:09
海外のサイトから情報が汲み取れないバカのためにここがある

738:デフォルトの名無しさん
09/12/21 01:15:15
Javaはチュートリアル(英語)で挫折するかどうかだろ。
それで挫折するようなら見込みないし素直にC#(かVB)にしろ。

739:デフォルトの名無しさん
09/12/21 01:18:08
英語英語言ってる奴が日本語読めない事はわかった

740:デフォルトの名無しさん
09/12/21 01:19:18
オブジェクト指向の本はJAVAの方が揃っているから
JAVAのほうがいいと思う

741:デフォルトの名無しさん
09/12/21 01:20:58
低学歴+底辺無能+日本人は、C#(マイクロソフト)を使ってIT土方として一生汗を流してればよろし。

742:デフォルトの名無しさん
09/12/21 01:22:36
僻みっぽいスレだな

743:デフォルトの名無しさん
09/12/21 01:30:13
>>741
在日乙

744:デフォルトの名無しさん
09/12/21 01:37:11
>>741みたいな奴って、どの板にもいるね
ゴキブリみたいにいっぱい繁殖してるの?

745:デフォルトの名無しさん
09/12/21 02:08:16
>>705
すみません。よくわかりません。
Object型にキャストしたところでObject#cloneはprotectedだし、なんらかのcloneを呼べる型にしないとダメなのでは
>>707
それも同等の問題でできあませんね
>>706
Shapeならそれで済みますね。new Area(Shape型)で
>>715
失敗作ですか・・・今回のディープコピーでの手こずりでJavaをちょっと嫌いになりました。好きだったのに・・・

皆さんありがとうございました。
結局今回は、インスタンスの型がある程度絞られていたのでめんどかったけど、>>703の方法で実装しました。


746:デフォルトの名無しさん
09/12/21 02:11:09
>>744
ゴキブリにはコンバットがよく効く
コンバット置いてから俺の部屋でゴキブリを見たことがない

747:デフォルトの名無しさん
09/12/21 02:58:46
>>715見てEffectiveJava読み直したんだけど、コンパイル時に型が決まってないと駄目だとか
protectedだからリフレクションで云々とか、正に>>703が直面してる問題がそのものだね。

ちなみにリフレクション使うんだったらやりたいことはこうかな?

Method method = Object.class.getDeclaredMethod("clone", new Class[] {});
method.setAccessible(true);
Shape cloned = (Shape) method.invoke(shape, new Object[]{});

748:デフォルトの名無しさん
09/12/21 03:45:21
PHPでは
$className = "Foo";
$obj = new $className();

とするとFooインスタンスを作成することができるのですが
Javaで同じようなことをしたい場合どうしたらいいのでしょう?

String className = "Foo";
Foo obj = new className(); //これでは当然無理です

749:デフォルトの名無しさん
09/12/21 04:26:42
String className = "Foo";
でString型の"Foo"という文字列を持ったインスタンスが生成される

んだけどPHP知らないからすごい別次元臭がする

750:デフォルトの名無しさん
09/12/21 05:38:41
>>748
Class.forName("Foo").newInstance();

751:デフォルトの名無しさん
09/12/21 06:14:37
URLリンク(www.klab.ai.kyutech.ac.jp)
こっちのSunSpotの加速度センサのプログラムを少し変えたのですが、うまく動きません。
Stateクラス、
public class State {
int state = 5;

public void setState(int state){
this.state = state;
}

public void callState(){
//このstateが1と0になり続ける状態を作りたい…
System.out.println("come :"+state);
}
}

を作って、LEDが点灯している、していない状態を管理したいのです。

↑のWikiのLEDFlash.javaの
public void thresholdExceeded(IAccelerometer3D accel, int axis, double val, boolean relative) {
//閾値より高い値ならばLEDを青色に点滅させる
以降のif文の前者がLEDを点灯させる、else以降がLEDを消灯させるプログラムです。
これは閾値を超えた時だけ呼び出されます。

このifの点灯させる所にst.setState(1);消灯させる所にst.setState(0);を書いても、超えてる時はちゃんと1と0になってるんですが、
放置したら(閾値を超えてない状態)デフォルトの数値のままになってしまいます。(つまり5)
確認はAccelerometerTest.javaクラスの加速度の測定をしているスレッドでst.callState();をして確認をしています。
AccelerometerTest.java、LEDFlash.java、どちらのクラスでもState st = new State();
と書いてるのがマズいんでしょうか…だとしたらどうしたら良いんでしょうか?

752:デフォルトの名無しさん
09/12/21 07:04:47
2000年頃から英語やれって云う人はいた。
スレリンク(tech板:132番)

今は入門書もあり出版や校正する人以外はどうでもいいかな。 >>751 のような制御は知らん。

753:デフォルトの名無しさん
09/12/21 07:24:46
>>750
すげー

754:デフォルトの名無しさん
09/12/21 09:13:30
基本の演算処理ですけど
int a =5; int b =12が宣言されているのですが
(a<=b),(a<b)&(a>b),(b%a),(a!=b),(++a)*bの実行結果を求めたいのです。

755:デフォルトの名無しさん
09/12/21 09:50:29
勝手に求めてくださいよそのの程度

756:デフォルトの名無しさん
09/12/21 12:36:14
>>751
> 放置したら(閾値を超えてない状態)デフォルトの数値のままになってしまいます。(つまり5)
つまり放置しなければいい
もしくは放置したことを感知できればいい
やりかたはしらない

757:デフォルトの名無しさん
09/12/21 12:45:10
>>751
わかったかな?


758:デフォルトの名無しさん
09/12/21 13:21:14
>>751
wikiじゃなくて発売元に聞いてサポート受けたら?

759:デフォルトの名無しさん
09/12/21 13:55:00
>>751
コンストラクタで現在の状態(0か1)を初期値として与える必要があるんじゃないの?
言葉通りしきい値超えないとコールバックされないんでしょ

760:デフォルトの名無しさん
09/12/21 14:02:55
>>751
もしも~し

761:デフォルトの名無しさん
09/12/21 14:05:21
> thresholdExceededメソッド
> 加速度センサが閾値を超えたときに呼ばれるメソッド.
ってあるからStateの初期値は閾値を超えてない状態を与える必要があるのでは。
てか5って何か意味あるの?

762:デフォルトの名無しさん
09/12/21 18:43:44
>>751
どうなの?

763:デフォルトの名無しさん
09/12/21 18:56:53
ここってサーブレットの話題とかでもおkですか?

764:デフォルトの名無しさん
09/12/21 19:01:57
ばっちこーい

765:デフォルトの名無しさん
09/12/21 19:03:59
ぬふぅ

766:デフォルトの名無しさん
09/12/21 19:06:44
>>679
ほとんど英語のドキュメントとチュートリアルで覚えましたね

767:デフォルトの名無しさん
09/12/21 19:07:46
>>763
OK
専門分野にしてる人多いです

768:デフォルトの名無しさん
09/12/21 19:09:29
EE6のCDIについて草案ではなく、リリース状態の仕様でチュートリアルを書いてるサイトはないですか?

769:デフォルトの名無しさん
09/12/22 00:15:43
引数に「Hoge.class」とClassを渡す事がありますが
何に使っているんですかね?
型の比較?

770:デフォルトの名無しさん
09/12/22 00:32:00
>>769
・インスタンス化を遅延。(newInstance/getConstructor)
・リフレクションで動的にメソッドを呼び出し/フィールドアクセス。(getMethod/getField)
・クラスオブジェクトをキーにしてファクトリを選択。(Mapで対応付け)
・クラス名やパッケージ名を文字列でげっと。
とかかな。割と頻繁に使ってる。

771:デフォルトの名無しさん
09/12/22 01:58:09
>>746

772:769
09/12/22 09:59:47
>>770
thx

773:デフォルトの名無しさん
09/12/22 10:21:29
javax.accessibilityって何をやるクラスなんですかね?
javadocを読んでもパッと来ないんですが

774:デフォルトの名無しさん
09/12/22 11:17:19
目が見えない人用のスクリーンリ-ダーとか点字ディスプレイとか音声入力とかなんかそういう類の
詳しくは知らん

775:172
09/12/22 11:35:57

>>773
私も初めて見たのですが。
普通アクセシビリティっていうと、障害者の操作補助とかそういうイメージ。
目の見えない人のための音声読み上げ機能とか。
普段画面で行う入出力(テキストを読む、リンクをクリックする、みたいな)を
別の手段で提供するための標準化インタフェースだったりヘルパクラスだったりする、のかな?


URLリンク(mediacast.sun.com)
に日本語の資料ありますね。

776:773
09/12/22 12:04:26
AccessibleContextってクラスがあるんですが、このクラスが属しているパッケージなので気になりました
JLabel#setText()を読んでいたらAccessibleContextが出てきたのですが、さっぱりわかりませんでした
このインスタンスはJComponentのフィールドにprotectedで宣言されています

777:デフォルトの名無しさん
09/12/22 14:18:10
障害者用の補助装置をjavaから制御する場合の話だからそういう開発者以外関係ない。
AWTに口だけ公開しときますよって話だと思えばいい。

778:デフォルトの名無しさん
09/12/22 15:37:36
>>746

779:デフォルトの名無しさん
09/12/23 00:46:54
java.awt.DesktopでDesktop.getDesktop().browse(homePageUrl);を使いたいのですが、
java.netURIにおいて、String型のテキストをURL型もしくはURI型に
追加するには何を使えばいいのでしょうか?

URLリンク(homepage.jp)
というURI型のものに、
abcd
というString型の文字列を変換したものをくっつけて、
URLリンク(homepage.jp)
という表示をbrowse(homePageUrl)で行いたいのです。

そのString型→URI型の変換でつまづいています…。
よろしくお願いします。

780:デフォルトの名無しさん
09/12/23 00:58:26
普通に new URL(filename+"abcd"); でムリ?

781:デフォルトの名無しさん
09/12/23 02:39:06
URI クラスの resolve(String) を使うのかな?多分

782:デフォルトの名無しさん
09/12/23 09:36:34
URLリンク(terai.xrea.jp)
同じPCでこれが鳴る場合と鳴らない場合があるんですが...

783:デフォルトの名無しさん
09/12/23 10:05:50
>>780
ムリみたいです…。

>>781


784:デフォルトの名無しさん
09/12/23 10:56:57
>>779
URI a = new URI("URLリンク(www.google.co.jp)");
URI b = new URI(a + "search?q=java");
Desktop.getDesktop().browse(b);

ふつうにいけないか?

785:デフォルトの名無しさん
09/12/23 11:11:14
>>779
URI uri = new URI("URLリンク(homepage.jp)");
URI newuri = new URI(uri.getScheme(),uri.getHost(),"/abcd",uri.getFragment());
System.out.println(newuri.toString());
という意味?

786:デフォルトの名無しさん
09/12/23 12:12:14
( ^ω^)大量

787:デフォルトの名無しさん
09/12/23 16:38:55
>>779ですが、
お答えくださってありがとうございました。
>>781さんのヒントから色々探してみました。
URL型でURL取得するのでURL取得→.toURI→.resolve(string)で解決できました!
resolveだけに…w
どうもありがとうございました^^

788:デフォルトの名無しさん
09/12/23 23:20:55
いくつかの重い処理をするにあたって、割り込みするコードについて質問です。
現在では、Threadのrunメソッドで、
try{
 重い処理1
  if(interrupted())throw new InterruptedException();
 重い処理2
  if(interrupted())throw new InterruptedException();
 重い処理3
} catch (InterruptedException e){ }
という感じにしているんですが、結局ジャンプ処理なので汚いコードだと感じています。
こういう場合にはどうするべきでしょうか? よろしくお願いします。

789:デフォルトの名無しさん
09/12/23 23:59:05
JComponent#setOpaque()のソース
public void setOpaque(boolean isOpaque) {
 boolean oldValue = getFlag(IS_OPAQUE);
 setFlag(IS_OPAQUE, isOpaque);
 setFlag(OPAQUE_SET, true);
 firePropertyChange("opaque", oldValue, isOpaque);
}

なんで、firePropertyChange("opaque", oldValue, isOpaque);と書く必要があるのですか?
firePropetyChange()でイベントを発生させなくても、普通にメソッドを呼び出した方が楽じゃないですか

790:デフォルトの名無しさん
09/12/24 00:14:04
うん?
addPropertyChangeListenerで登録されたリスナ全員にプロパティの変化を伝えなきゃいけないからでは?
普通にって、何のメソッドを呼ぶの?

791:デフォルトの名無しさん
09/12/24 01:30:41

>>782
ローカルにjar保存してコマンドプロンプトから実行してみれば?
例外とか出てるの見れば理由わかるのでは。


>>788
自分だったらコマンドパターン適用するかも。
重い処理Xをそれぞれ別クラスにして、それらの共通スーパクラスで重い処理メソッド呼んでその後中断判定する。

792:デフォルトの名無しさん
09/12/24 02:27:31
アクセス修飾詞なんですけど、どういう状況で使い分けたらいいかわかりません
教えてください

793:デフォルトの名無しさん
09/12/24 02:43:40
アプレットのプログラムについて質問です。
内容はボールを反射させて動かす(ピンボールのような)プログラムです。

g.setColor(Color.red);
g.fillOval((int)(this.x2-3),(int)(this.y2-3),6,6);

このようなプログラムが組まれており意味してるものは動かすボールの色と大きさを指定しているのは理解できるのですがこれでなぜ色と大きさが指定できているのか細かい部分がよくわかりません。
なぜこれで色と大きさを指定できるのでしょうか?

794:デフォルトの名無しさん
09/12/24 02:57:21

まさにそういう用途のメソッドだと思うのだけれど。
URLリンク(java.sun.com)(java.awt.Color)
URLリンク(java.sun.com)(int, int, int, int)



795:デフォルトの名無しさん
09/12/24 03:08:15
このサイトに書いてあるアルゴリズムを教えていただけないでしょうか…?
お願いします

796:デフォルトの名無しさん
09/12/24 03:31:33
すいません、サイトを貼るの忘れてました
URLリンク(oraclesqlpuzzle.hp.infoseek.co.jp)
お願いしますm(_ _)m

797:デフォルトの名無しさん
09/12/24 03:48:41
>>793
gの色をセットします(赤色に)
ってのは理解できるべ?
g.fillOval(~,~,~,~)
ってのは
URLリンク(www.tohwa-u.ac.jp)
みてみよ。

というか、そういうものだ、ってここは思わないと進めないレベルだぞ。
とりあえず、.setColorで色決めて、.fillOvalで塗りつぶされた円を描くコマンドだと思いなさい。

798:デフォルトの名無しさん
09/12/24 04:30:27
>>795
ただの総当たりにみえますが。
2回目以降は前回の手数を
越えるものは総当たり条件から外してるみたいだけど
これで最適手順が見つかる保証は
無いでしょうね。

799:デフォルトの名無しさん
09/12/24 04:35:20
あ、最適解云々は勘違いしてたので忘れて

800:デフォルトの名無しさん
09/12/24 06:09:34
>>788
ジャンプするためだけに例外を投げるのが邪道ってこと?
try-catch の中身をメソッドとして独立させてみては

/**
* @return 中断されずに処理を終えたかどうか
*/
void process() {
  重い処理1
  if (interrupted()) return false;
  重い処理2
  if (interrupted()) return false;
  重い処理3
  return true;
}


801:800
09/12/24 06:13:33
>>788 を読み返してみたら
質問の意図と違ってたかもしれん
すまん


802:782
09/12/24 08:47:31
>>791
jarファイルをコマンドプロンプトから実行しても特に例外などは出ませんでした。
ちょっと>>782の説明が足りませんでしたので補足しますと
JREのインストールフォルダ内にある\lib\audioフォルダにsoundbank.gmがあると
音は鳴るんですが変な音質なんです。
逆にsoundbank.gmが無い場合は、正常な音質で鳴る場合と全く鳴らない場合がありますが、
確実に正常に鳴らす方法はありますでしょうか。

803:デフォルトの名無しさん
09/12/24 10:11:02
ありますとよいですね。

804:デフォルトの名無しさん
09/12/24 10:37:46
>>802
とりあえず MidiSystem#getMidiDeviceInfo() で取得できる
全 MidiDevice の名前を書いてくれ。

lib/sound.propertiesのコメントでない行も書いてくれ。

WindowsのJREなら少なくともシンセ2つが繋がっているはず。
(Java独自のシンセサイザとWindows内蔵のシンセサイザ)
どっちが使われてるかは把握してる?

何度読んでもMIDI関係のAPIは納得いかんとこが多いな…

805:782
09/12/24 10:51:48
>>804
MidiDeviceの一覧は下記の通りです
Microsoft MIDI ?}?b
Windows MIDI_MAPPER
false
Microsoft GS Wavetable SW Synth
Internal software synthesizer
false
Real Time Sequencer
Software sequencer
false
Java Sound Synthesizer
Software wavetable synthesizer and receiver
true

それぞれの3行目のtrue/falseは
System.out.println(MidiSystem.getMidiDevice(i) instanceof Synthesizer)
の実行結果で、一番最後の「Java Sound Synthesizer」がデフォルトと思います

また、lib/sound.propertiesは全てコメント「#」で始まっています

806:デフォルトの名無しさん
09/12/24 11:21:42
>>792
可能な限り狭いものを使っていれば問題ない。
まずprivateで済ませること。どうしてもダメならprotectedに拡張、そ
れでも足りないなら無指定、publicはfinal以外では使わない。


807:デフォルトの名無しさん
09/12/24 11:29:31
>>792
隠したいなら private
公開したいなら public
設計ミスの継ぎはぎには protected
サンプルプログラム用に字数減らしたい場合は無指定で package private

808:デフォルトの名無しさん
09/12/24 11:32:05
>>806
デフォルトアクセスとprotectedだとデフォルトアクセスの方が制限きつい。

809:804
09/12/24 12:05:04
>>805
あー…、MicrosoftGS音源のSynthesizerって出てこないんだ…
それどころか本物のMIDI音源実機(Roland)も出てこないよー。
Sequencer使わずに自前でReceiverにMIDI信号投げてたんで気づかなかった。すまん。

Sequencerの音色がSynthesizerに依存している以上、JavaSoundしか選べそうにないね。

soundbank.gmってのはJavaSoundのデフォルト音源だと思う。
消しちゃダメー。書き換えるのもたぶんダメー。
Synthesizer.loadAllInstruments()で別の音源と差し替えることは可能と思う。

810:デフォルトの名無しさん
09/12/24 12:23:31
javaで画像処理って定番は何になるのでしょうか?
CだとOpenCVやImageMagicがありますが

811:デフォルトの名無しさん
09/12/24 12:48:52
>>809
あまり関係ないとおもうけど、確か公式で高音質盤のサウンドバンクが提供されてたよ
デフォルトで含まれているの最低音質で、3段階くらいあったとおもう。

812:デフォルトの名無しさん
09/12/24 13:19:22
>>805
MidiSystem.getSequencer()で得られるシーケンサはデフォルトシーケンサだからデバイスの取得から自分でやってみれば?
プラットフォーム側で無効化されてるデバイスも叩き起こせる仕様だから自分でデバイス拾って開けばいい。

813:デフォルトの名無しさん
09/12/24 14:19:45
>>810
普通ならそれをjni,jna

814:782
09/12/24 14:58:33
>>812
「Real Time Sequencer」にしましたが
soundbank.gmがあっても音が全く鳴らなくなりました。
「Microsoft MIDI ?}?b」は認識されず
「Microsoft GS Wavetable SW Synth」
はClassCastExceptionが発生しました。

815:デフォルトの名無しさん
09/12/24 15:41:08
>>806
>publicはfinal以外では使わない

そういうものなんですか?
これって割と常識として知られてること?


816:デフォルトの名無しさん
09/12/24 15:42:22
メソッドの話?

817:782
09/12/24 15:52:15
別バージョンのJREを何回か再インストールしているうちに
いつの間にか正常に音が鳴るようになりました。
音が鳴らなかった真の原因は未だに分かりません...。

818:デフォルトの名無しさん
09/12/24 15:54:51
>>815
>>806 はでたらめなので心配御無用

819:デフォルトの名無しさん
09/12/24 16:22:17
java.util.prefs.Preferencesで、userNodeには問題なくキーとデータを登録できるのに、
systemNodeには登録できず警告が出る。OSはWin。

という症状が、特定マシン上だけで起きるのだけど、どんな原因が考えられますかね?
自分や知り合いのマシンでは問題無いのに、知らない人のマシンでは起きているのです。
それからJREを再インストールしてもこの問題は解決しない。

820:デフォルトの名無しさん
09/12/24 16:25:11
アクセス指定子はクラスの場合、メソッドの場合、フィールドの場合で
ずいぶん事情が違う。
>>806 はフィールドの場合に見える。


821:デフォルトの名無しさん
09/12/24 16:54:40
public fieldが許されるのは小学生までだよねー(AA略

822:デフォルトの名無しさん
09/12/24 16:59:27
>>810
JREにもれなく付いてくるJava2Dでは不足?

823:デフォルトの名無しさん
09/12/24 17:06:04
>>819
その方、レジストリの管理権限はあるのかしら。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs
に読み書き可能なのか、レジストリエディタかなんかで確認した方が

824:デフォルトの名無しさん
09/12/24 18:23:37
>>823
嫌です

825:デフォルトの名無しさん
09/12/24 18:36:28
>>817
シーケンサに命令溜めた後ちゃんとシンセサイザに送ってる?

826:デフォルトの名無しさん
09/12/24 19:30:07
>>823
アカウントの権限を確認してもらったけど、Adminとのことでした。

827:782
09/12/24 19:40:09
>>825
Javaのmidiに関しては殆ど詳しくないので
ソースを挙げて頂ければ有り難いです

828:デフォルトの名無しさん
09/12/24 19:50:38
>802
そもそも「変な音質」とか「正常な音質」ってどういう話なんだ。
たとえば拾い物のYAMAHA用MIDIファイルを別音源で聞いて、それが変か正常かは主観レベルの話なんだが。

829:782
09/12/24 20:50:05
>>828
「変な音質」というのは誤解を招く書き方でしたね、訂正いたします
他のプレイヤーで聞いた場合と同じかどうかということです

830:デフォルトの名無しさん
09/12/24 21:14:10
情報小出しウザイ
そろそろ失せろ

831:デフォルトの名無しさん
09/12/24 22:52:35
>>830
イブで女の子と一緒に過ごせないからってカッカすんなよwww

832:デフォルトの名無しさん
09/12/25 00:04:14
イブで女の子と一緒?
外国の宗教とはいえ神様に失礼すぎw

833:デフォルトの名無しさん
09/12/25 01:38:21
今年のクリスマスは中止になったって聞いてたけど

MIDIってのは環境とかプレイヤーによって音が変わるものじゃないのか。


834:デフォルトの名無しさん
09/12/25 01:39:53
変わるよ

835:デフォルトの名無しさん
09/12/25 01:50:19
昔のwin95の音源はひどかった
なつかしい

836:デフォルトの名無しさん
09/12/25 02:01:38
むしろFM音源のほうが好きだった

837:デフォルトの名無しさん
09/12/25 11:05:40
だな

838:デフォルトの名無しさん
09/12/25 13:34:19
MIDIはWindows98あたりから
Windows標準でサポートされたが
Windowsのがあまりに低音質だったので
避けられるようになったのは有名
それ以前からあったWinGrooveとかのほうがマシだった

839:デフォルトの名無しさん
09/12/25 14:03:48
打楽器やベースは結構使える音だと思うけどなー

840:デフォルトの名無しさん
09/12/25 14:28:42
あの楽器?

841:デフォルトの名無しさん
09/12/25 15:44:12
FM音源が好きなんだが

842:デフォルトの名無しさん
09/12/25 17:10:01
YAMAHA万歳

843:デフォルトの名無しさん
09/12/25 17:13:14
FM音源とかファミコン音源とかが好きなんだが

844:デフォルトの名無しさん
09/12/25 17:19:21
スーパーファンファジーゾーンは神

845:デフォルトの名無しさん
09/12/25 17:21:18
FM音源の楽器音声の再現度はほぼ無いから、再現という使い方は出来ないんだろうけど
FM音源の音が俺は好きだ

846:デフォルトの名無しさん
09/12/25 20:00:39
FM音源は確かに好きだけど、FM音源を流用したおざなりなMIDI再生はいただけない。
PC9801-86とSoundBlaster16の両方ともドライバの出来は良くなかったな。
ドライバでどうこうなる話でもないのかも知れないが。

847:デフォルトの名無しさん
09/12/25 20:05:01
javadocの特殊な文字化けについての質問です。
マルチバイト文字を値に持つ定数のjavadocに{@value}を使用したところ、
作成したjavadocのvalue部分がutfのコード表記に化けてしまいます。
-encoding -charsetの指定は効果なしでした。
解決策を御存じの方がいらっしゃいましたらご教示ください。


[ソース]
/** 定数 {@value} */
public static final String HOGE = "ほげ";

[javadocの表示例]
定数 ("/uaafd/u7ca2/u42ce")

[期待する出力]
定数 ("ほげ")

848:デフォルトの名無しさん
09/12/26 00:51:25
OpenTypeFontを読みたいのですが、うまくいかないので教えていただければ幸いです。
OpenTypeはTrueTypeの一部ということで次のようにしましたが例外がでます。
Font.createFont(Font.TRUETYPE_FONT, new File("***.otf"));
当然といえば当然なんですが。どうやって読み込めばいいんでしょう。

849:デフォルトの名無しさん
09/12/26 05:06:51
JAR内の /a/b/SapmleClass.class から
同じJAR内の /resources/image.gif にアクセスしたいのですが、
SapmleClass.class.getResource("../../resources/image.gif") だとnullが返ってきます。

取り方が間違っているでしょうか?

850:デフォルトの名無しさん
09/12/26 06:00:41
java soundもあるしアクセスは用意されてるよね。
それならOSSでプロジェクト組んで新音源を開発してもいいんじゃない?
いくらソフト音源だとしても、実装はsse,gpuとか使うからJavaにはあまり関係ないけど。
コーディック開発とはまた違った意味で面白いんじゃないか。

851:デフォルトの名無しさん
09/12/26 10:14:17
JARのルートからのパスでアクセスできました。
SapmleClass.class.getResource("/resources/image.gif")

852:デフォルトの名無しさん
09/12/26 12:32:11
いくつかのWindowsアプリケーションに、「右クリックメニュー」というものが
実装されていますが、あれはSwingでは(JMenuなどと違い)サポートされていないのでしょうか。

853:デフォルトの名無しさん
09/12/26 12:35:27
JComponent#setComponentPopupMenu

854:デフォルトの名無しさん
09/12/26 12:45:49
Adobeの次はJava。GENOウイルスの第二波が来るぞー(^o^)ノ
スレリンク(news板)

855:デフォルトの名無しさん
09/12/26 13:03:38
>>853
ありがとうございます。

856:デフォルトの名無しさん
09/12/26 13:05:17
>>855
俺へのお礼レスはいらない

857:デフォルトの名無しさん
09/12/26 13:14:49
>>842

858:デフォルトの名無しさん
09/12/26 13:30:09
>>851
よそ様のパッケージも使うつもりがあるなら/resourcesは使わない方がいいぞー。
/a/b/resourcesじゃだめ?

859:デフォルトの名無しさん
09/12/26 14:49:22
struts2のconventionプラグインって
import com.opensymphony.xwork2.ActionSupport;
ってやらなくても命名規約さえ○○Actionになって○○actionsっていうパッケージにはいってれば
見つけてくれるんだと認識してたけど実際はしてくれない
xwork2.ActionSupportをインポートしないと認識してくれない

conventionプラグインは結局これインポートしないといけないの?

860:デフォルトの名無しさん
09/12/26 15:18:26
>>859
△△もっとStruts2の良さを教えてくださいSsssion6
スレリンク(tech板)


861:849
09/12/26 20:55:35
>>858
アドバイスありがとうございます。
使ってる他のJARにも/resourcesがあると、どっちか特定できないということでしょうか?
/a/resourcesに変えることにします。

862:デフォルトの名無しさん
09/12/27 11:34:32
同名のリソースが複数あると最初に見つかったURLが返ってくるので、かぶりらないような名称にした方がいいよ

863:デフォルトの名無しさん
09/12/27 12:48:45
>>856
ケッ

864:デフォルトの名無しさん
09/12/27 14:39:01
以上、暇人でしたっ

865:デフォルトの名無しさん
09/12/27 15:17:50
まじなんかすごい時代だよな

色々と

天才達の手によってここまできたが
すごい話だぜ

866:デフォルトの名無しさん
09/12/27 16:14:17
>>865
まあ僕たち天才が行うべき使命ですので凄いとかはあまり意識していないのですが

867:デフォルトの名無しさん
09/12/27 16:15:46
何が凄くて何が時代の?
で、何の天才で例えば誰のこと?

868:デフォルトの名無しさん
09/12/27 16:30:28
そういう疲れる話し方やめてくれる?

869:デフォルトの名無しさん
09/12/27 16:33:07
>>865-868
年末だしとりあえず金くれ

870:デフォルトの名無しさん
09/12/27 16:34:43
俺にもおくれ

871:デフォルトの名無しさん
09/12/27 23:41:16
質問させてください。

JavaSE6のjavax.xml.bind.SchemaOutputResolverクラスの
Javadoc(下記URL参照)を読んでいたら、こんな記述を見つけました。
「互換性を損なうことなく将来のバージョンを発展させることができるようにするため、
これはインタフェースではなくクラスになっています。」

URLリンク(java.sun.com)

「互換性を(~中略~)にするため」とありますが、インターフェースを定義し、
将来のバージョンでも同インターフェースを必ず実装することにより
互換性が維持できると個人的に思い込んでいるため、納得できません。

クラスでなければならなかった理由をご教授ください。
よろしくお願いします。


872:デフォルトの名無しさん
09/12/27 23:43:42
将来的なバージョンでインターフェースにメソッドが増えた場合の事じゃない?
インターフェースだったら、自分で実装してるクラス全部書き換えるけど、
継承元がクラスだったら、自分で実装してるクラスは書き換えなくてもすむかもしれない。

873:デフォルトの名無しさん
09/12/27 23:45:58
最初のバージョンで次のようなインタフェースを定義しました
interface A {
void foo();
}
そこでとあるアプリケーションがこのインタフェースを実装して使うことにしました
class B implements A {
public void foo() { ほにゃらら }
}
新しいバージョンでインタフェースが拡張されメソッドが増えました
interface A {
void foo();
void bar();
}
先ほどのアプリケーションを新しいバージョンで実行すると bar() が定義されていないので NoSuchMethodError

874:デフォルトの名無しさん
09/12/28 00:11:56
wait と Thread.sleep ってどう違うの?

875:871
09/12/28 00:14:34
>>872-873
回答ありがとうございます。

将来のバージョンで新しい(非抽象)メソッドが追加された場合は、
追加実装が不要なため、インターフェースよりクラスの方がたしかに有利ですね。


以下、チラ裏

ただ、多重実装ができなくなるなど、
クラスで設計したことによるデメリットと比較すると微妙な気がします。

となると、どちらを選択するかはケースバイケースになるのでしょうか?
そうなると、今回の「ケース」は何と表現(説明)すればいいのでしょうか?


876:デフォルトの名無しさん
09/12/28 00:20:52
まだ完成度が低いなと思ったらクラス
既存のクラスに付け加える可能性が高いなと思ったらインターフェース

どっちもと思ったら、天秤にかけるしかないんじゃないかなあ

877:デフォルトの名無しさん
09/12/28 00:25:05
いや、使うときに、

TypeABC hoge;

この左側を、Interfaceで使う場合がおおいか、
実装クラス名で使う場合がおおいか、

じゃねーか?

878:デフォルトの名無しさん
09/12/28 00:25:42
本当は実装したいことがあるのでinterfaceじゃないんだけど、
時間がなくて実装できてません。
今の姿を見ればinterfaceで良いように見えるんだけど、真の姿はこんなんじゃないんです。

ということが言いたいんじゃ。

879:デフォルトの名無しさん
09/12/28 00:26:35

interface A { }

class A001 implements A { }

class B { }

class B001 extends B { }


A MyA として使うなら、Interface
B001 MyB として使うなら、クラス

じゃん

880:デフォルトの名無しさん
09/12/28 00:27:38
>>878

おお、それだ!
だから、本質はクラスなんだよって事だね。

881:デフォルトの名無しさん
09/12/28 00:28:11
リファクタリングしていって interface になる、ってことは結構あるけど、
リファクタリングしていくと interface がなくなるなんてことはあるんかしらん。

882:デフォルトの名無しさん
09/12/28 00:29:29
>>874
waitはnotifyで起こせる
sleepはnotifyで起こせない
interruptを使えばどちらも起こせるが、起こしたい対象のwait/sleep以外でも
ところ構わず起こしてしまうので使い方が難しい
ところ構わず起こしたい場合には便利
あとwaitはspurious wakeup してしまうことがある

883:デフォルトの名無しさん
09/12/28 00:44:15
>>874
Thread.sleepは、目覚まし時計を用意して、自分で寝て、自分で起きる。
基本的に自スレッドが時刻と同期するために使用する。

waitは、モーニングコールを依頼して、自分が寝て、他人(別スレッド)に起こしてもらう
(誰にも起こしてもらえなかった場合に、タイマーで自力で起きることも可能)。
基本的に自スレッドが別スレッドと同期するために使用する。


884:デフォルトの名無しさん
09/12/28 00:56:12
>>883
モーニングコールって、普通は時刻を指定して依頼するから、
目覚ましをセットするのと変わらないんじゃ。
「そっちの仕事が終わったら起こしてね」と伝えてから寝る、
といったたとえのほうが正確かも。
重箱の隅みたいですまんね。


885:デフォルトの名無しさん
09/12/28 01:32:28
>882-884
なるほど。
notifyを使う場合はwait Timerみたいな場合はThread.sleepって感じなんだな
ありがとう

886:デフォルトの名無しさん
09/12/28 01:58:58
>>885
俺へのお礼レスはいらないって…

887:デフォルトの名無しさん
09/12/28 02:05:38


888:デフォルトの名無しさん
09/12/28 03:38:25
使われ方を想定せずにインタフェースの粒度なんて決められるわけない。
ライブラリのインタフェースはエスパーと妥協の産物

889:デフォルトの名無しさん
09/12/28 07:55:07
>>873
というよりも、abstract class とか使ったことないでしょ。

890:デフォルトの名無しさん
09/12/28 08:01:30
>>883
You should wake up from your deely sleeping.

891:デフォルトの名無しさん
09/12/28 14:35:34


892:デフォルトの名無しさん
09/12/28 16:09:46
You have to shave up you are sheep or theaf

893:デフォルトの名無しさん
09/12/28 22:34:22
何語だ?米語?deely? theaf?
deeplyかなぁ?

894:デフォルトの名無しさん
09/12/29 07:39:51
>>893
それ、指摘するまでまったく気にしてないで読んでたw

895:デフォルトの名無しさん
09/12/29 08:33:31
$ appletveiwereer HalloJava &

そんなコマンドはありませんorz

896:デフォルトの名無しさん
09/12/29 08:55:35
なにそのイェェェェァァァ系コマンドw

897:デフォルトの名無しさん
09/12/29 09:00:00
根っからの江戸人ならやりそうw

898:デフォルトの名無しさん
09/12/29 10:11:23
explorereとかkonquaroroとかbashだとコマンドしにくいよね。

899:デフォルトの名無しさん
09/12/29 12:48:05
しにくいですね。

900:デフォルトの名無しさん
09/12/29 13:33:06
最近Javaの
Domain Driven Designってどのフレームワークが流行りなの?

901:デフォルトの名無しさん
09/12/29 15:02:45
.................

どのフレームワークが流行りなの!?

902:デフォルトの名無しさん
09/12/29 15:27:09
俺はドメインモデル懐疑論者だからシラネ

903:デフォルトの名無しさん
09/12/29 15:29:03
ドメインモデル VS トランザクションスクリプト
スレリンク(php板)
こっちへどうぞ。

904:デフォルトの名無しさん
09/12/29 16:30:21
【言語比較】2chではCとC++>>JAVAって人が多い。しかし本当にそうか?ちなみに2chはperlが使われてる
スレリンク(news板)

ニュース速報に立った

905:デフォルトの名無しさん
09/12/29 17:09:45
ん?昔はread.cだったと思ったが?

906:デフォルトの名無しさん
09/12/29 17:38:16
CとC++を別にしてデータとったらどうなんだろうな

907:デフォルトの名無しさん
09/12/29 21:11:30
>>746

908:デフォルトの名無しさん
09/12/30 00:11:17
【言語比較】2chではCとC++>>JAVAって人が多い。しかし本当にそうか?ちなみに2chはperlが使われてる
スレリンク(news板)

ニュース速報板です

909:デフォルトの名無しさん
09/12/30 01:00:00
アイちゃんは大丈夫か!?

【生物】ニホンザル謎の死、京大霊長研で相次ぎ15頭
スレリンク(scienceplus板)

910:デフォルトの名無しさん
09/12/30 01:36:23
      ┌─┐   ┌─┐
      │●│   │●│
      └─┤   └─┤
     ∧∧ ∩   ∧∧ ∩ Java!
    ( =゚-゚)彡  ( =゚-゚)彡  Java!
 ┌─┬⊂彡┌─┬⊂彡
 |●|    |●|
 └─┘    └─┘

911:デフォルトの名無しさん
09/12/30 13:26:22
整数値を読み込んで5で割れるか判定するコードなんですが
いろいろグダグダなんですが
bの代入のところでエラーになる理由がわからないです。
後半のifが変なのは無視してください。

// 整数値を読み込み5で割り切れるか判定する。正以外の数値にはコメントをだす。

import java.util.Scanner;

class En35 {

public static void main(String[] args) {

Scanner stdin = new Scanner(System.in);

System.out.print("正の整数値:");
int a = stdin.nextInt();

        int b = a % 5;

if (b == 0)
System.out.println("その値は5で割り切れます");

else if(b != 0)
System.out.println("その値は5で割り切れません");

else
System.out.println("正でない値が入力されました");

}
}
  

912:デフォルトの名無しさん
09/12/30 13:32:18
>>911
事故解決しました。
>>1にある全角スペース~ でした。

913:デフォルトの名無しさん
09/12/30 16:22:03
結局、JDK7ではクロージャーが導入されるみたいですが
クロージャーとラムダ式って何が違うんですかね?

914:デフォルトの名無しさん
09/12/30 18:01:55
>>913
俺も理解が乏しいんで一応書いてみたが、間違ってたら訂正してください

クロージャもラムダも関数を変数の値にできることを前提とした機能だけど

クロージャーは関数内で定義、生成するもので、定義、生成された関数内のローカル変数を参照できるって機能が強調されるイメージ
この参照できるっていうのは関数から抜けた後にもローカル変数のメモリが開放されないまま残り、実行時に参照できるってこと

ラムダ式は関数を値のように扱えて、例えば
関数の引数に関数を渡す
関数の引数を決めたものを変数の値にする
関数を合成したものを変数の値にする(関数a.bを合成すると実行時b(a())と実行したことになる)
みたいな機能があることが強調される

915:デフォルトの名無しさん
09/12/30 18:08:50
きもい

916:デフォルトの名無しさん
09/12/30 18:17:22
わからないからですね^^;
わかります^^;

917:デフォルトの名無しさん
09/12/30 18:22:51
違いは知っていましたが、面白そうだから質問してみました。
それでは皆様、また逢いましょう

918:デフォルトの名無しさん
09/12/30 20:21:11
もう来なくていいよ^^

919:デフォルトの名無しさん
09/12/30 20:22:14
>>910

>>909

920:デフォルトの名無しさん
09/12/30 22:38:51
クロージャはエンクロージングな関数で
ラムダは変数置換と関数定義をそれぞれ一つのみ持つ関数。ただし自分を含む関数を定義できない。

つまり両方あればY(F) = F(Y(F))が表現できる。
が、不完全性定理があるのでequals(lamda, lamda)は表せない。

921:デフォルトの名無しさん
09/12/30 22:40:21
CでできることはJAVAでもできるのですか。
友人が言うには、「劣化Cだからやんないほうがいい。ジャバでできる特徴的なことは風呂釜掃除くらい」
というのですが。

ポインタが参照になってる
メモリの開放と確保は言語レベルでよろしゅうやってくれる
Cに比べて実行速度が遅い

というのは
ググッて分かりました


しかしメモリいじりをしなければならないので、最低でもCのようにメモリをいじる必要があります

922:デフォルトの名無しさん
09/12/30 22:47:20
すなおにdotnet(C#)やれ

923:デフォルトの名無しさん
09/12/30 22:59:58
>>921
> しかしメモリいじりをしなければならないので、最低でもCのようにメモリをいじる必要があります
それなら C をやるしかない。

924:デフォルトの名無しさん
09/12/30 23:01:55
前半部分が大昔にあった改変コピペだぞ

925:デフォルトの名無しさん
09/12/30 23:04:22
アセンブラコードを別に用意してJavaから呼び出すことできなかったっけ?

926:デフォルトの名無しさん
09/12/30 23:07:28
Javaは情報工学やってた人へのプレゼントだな
こんなに手っ取り早く完璧な実装のライブラリを呼び出せる言語はない

927:デフォルトの名無しさん
09/12/30 23:17:07
>>925
JNIですね。C言語とJava に精通していないと使いこなすのは難しいです。
Microsoft の JavaVM はその点は簡単ですけどね。

928:デフォルトの名無しさん
09/12/30 23:18:33
>>927
JNA使えばいいじゃんPosix遵守だから
大抵動くぞ


929:デフォルトの名無しさん
09/12/30 23:19:18
JNAもJNIもよくわからんが一緒だろ

930:デフォルトの名無しさん
09/12/30 23:43:09
JNAはJNI使ってるっていうだけで一緒じゃないよ。
JNAだととてつもなく簡単にネイティブライブラリにアクセスできる。
型の変換もある程度してくれるし、結構事足りるよ

931:デフォルトの名無しさん
09/12/30 23:45:53
安全なスレッディング
メモリ操作

これが好きな奴が使う

932:デフォルトの名無しさん
09/12/30 23:50:08
ほとんどは、OSのAPI呼びたいとき使うんじゃないの?

933:デフォルトの名無しさん
09/12/31 00:36:04
え?

934:デフォルトの名無しさん
09/12/31 10:53:29
システムコール?

935:デフォルトの名無しさん
09/12/31 12:49:17
Java本体から呼んでないやつはJavaのスレッド管理外、メモリ管理外なので
自分でケアしないと痛い目を見る

ので、そういうことが好きな奴でないと扱えないと

936:デフォルトの名無しさん
09/12/31 13:00:31
禁忌事項も多いもんなぁ。
URLリンク(www.ibm.com)

937:デフォルトの名無しさん
09/12/31 13:08:54
>>935
そうでもないんじゃね??

938:デフォルトの名無しさん
09/12/31 13:20:11
>>935
そうでもないそうですよ

939:デフォルトの名無しさん
09/12/31 13:32:56
>>937-938
嘘つきはよくないなぁ

940:デフォルトの名無しさん
09/12/31 13:34:12
俺は全然ケアなんて考えずに使ってるぜ
裏でどうなってるか知らんが

941:デフォルトの名無しさん
09/12/31 14:00:35
jni,jnaを使うならjavaじゃなくてdotnet(VB)にしろ。
そもそもそのアプリは、PCしか考えてないんだろうからdotnetで十分。

942:デフォルトの名無しさん
09/12/31 14:29:34
なんで、javaはC++を敵視してるんだろ?
しかも、速度的な面で

943:デフォルトの名無しさん
09/12/31 14:36:02
それはお前の脳内設定。

944:デフォルトの名無しさん
09/12/31 15:11:26
linux使ってると分かるけど、monoがある程度実用的になってきたからdotnetでもある程度はいける。
MSとノベルはそれで提携したし。
ただPCだけじゃなくて携帯(グーグル)もいれるならjavaやっとくのをお奨めするが。

945:デフォルトの名無しさん
09/12/31 15:44:16
MSのOS依存の形態じゃやっぱ使い物になりませんよね

946:デフォルトの名無しさん
09/12/31 16:03:35
GoogleはGoogle依存の形態で全てやろうとしているからなあ。
オープンで囲い込みですが何か?って感じ。

947:デフォルトの名無しさん
09/12/31 17:29:34
>>946
gglは共産主義者だし
今EUとアメリカでほぼ黒確定の
独禁法違反になるから無視しておけ

948:デフォルトの名無しさん
09/12/31 17:58:30
Google 依存が強いところは、気をつけておいたほうがいいだろうな。

949:デフォルトの名無しさん
09/12/31 18:23:34
ニュースサイトにロボット埋め込んで、街は許可なく勝手に撮影、本は勝手にスキャン、コードは盗み放題。
それもただの商業利用でしょ。
国民から徴収してアンテナ立てたりコンテンツ作ってるのに、それを2次販売して商業的な利益を上げてるNTTやNHKみたいなもんじゃないの?

950:デフォルトの名無しさん
09/12/31 18:27:42
googleは検索以外だとgmail(hotmail)ぐらいしか思い浮かばないし依存になることもないと思うんだが、googleは依存になりそうなサービスを提供してたか?

951:デフォルトの名無しさん
09/12/31 18:32:18
アンドロイドは思ったほどでもないですしね

952:デフォルトの名無しさん
09/12/31 18:39:18
グーグルの、サンタクロース追跡に便乗した商売にはかなり引いた。
日本、中国(アジア)としてはそういう宗教的(伝説的)なところは理解できない。

953:デフォルトの名無しさん
09/12/31 20:37:46
enumってなんでfinalないの?設計ミスじゃね?

954:デフォルトの名無しさん
09/12/31 20:45:13
ミスかもね

955:デフォルトの名無しさん
09/12/31 20:45:53
>>953
enum のどの部分の事言ってるのかわからんが暗黙で final 扱いになってね?

956:デフォルトの名無しさん
09/12/31 20:57:04
ほんとだ・・・extendsって書いたときのコンパイルエラーが変だから継承できるかと思ってたすまぬ

957:デフォルトの名無しさん
09/12/31 21:25:41
謝ったから許してやる

958:デフォルトの名無しさん
09/12/31 21:27:10
ああもう年末だ・・・
いいから金くれ

959:デフォルトの名無しさん
09/12/31 23:26:41
enum enum 人間って enum

960:デフォルトの名無しさん
10/01/01 00:10:53
おっイーナムってよんでんのかー

961:デフォルトの名無しさん
10/01/01 00:12:20
なぜJDKドキュメントにはEnum#values()が載っていないのだ?

962:デフォルトの名無しさん
10/01/01 00:26:01
おっ新年だ
お年玉くれ
てかおみくじどうやるんだっけ?

963:デフォルトの名無しさん
10/01/01 00:28:16
>>961
ソース読んでご覧。valuesってメソッドないから。
自動生成されるんかねぇ

964: 【898円】 【大吉】
10/01/01 00:34:32
ナムナム
金くれ

965:デフォルトの名無しさん
10/01/02 19:05:37
高校の宿題で、サーバー役とクライアント役に分けて、プログラム作って、簡易チャットを作っているのですが、分からない点があります。

client1 とclient2が接続されてるとして、server側でclient1が発言したのを、client2側の画面に反映する方法がわからない。(client2の出力ストリームに流し込む方法が・・・分かりません)

よろしけれあ、ご教授願えないでしょうか?


966:デフォルトの名無しさん
10/01/02 19:13:18
何処の高校?

967:デフォルトの名無しさん
10/01/02 19:47:03
サーバプッシュでぐぐりなさい
最悪client2からのポーリングでもできるが

968:デフォルトの名無しさん
10/01/02 20:20:52
>>966
勘弁してくださいorz

>>967
軽く調べてみましたが、どちらも難しそうですね。。。
しかし、ポーリングのほうがそれでも簡単な気がするので、掘り進めてみます。

969:デフォルトの名無しさん
10/01/02 20:38:45
PHPの、PEAR::Net_UserAgent_Mobileに相当するライブラリなどはありますでしょうか?
まぁ、「大体振り分けられればOK」ならそれほど難しくもなくできるとは解っているのですが、もしメジャーなライブラリなどがあるのならそちらを使った方がいいかと思いまして・・・。
何かご存知の方がいらっしゃれば、情報をいただければ幸いです。よろしくお願いします。

970:965
10/01/03 10:24:24
なにやら、宿題関係の質問はスレ違だったことに気付いたので、java宿題スレに移動します。申し訳ありません。

971:デフォルトの名無しさん
10/01/03 15:27:15
hello,worldの次に何作れば良いですか?
ステップアップ式にお題出してるサイトとか無い?

972:デフォルトの名無しさん
10/01/03 15:37:45
1.とりあえず一冊買う
2.とほほのjava
3.javaの道

973:デフォルトの名無しさん
10/01/03 16:03:02
画像について質問です。
巨大なBufferedImageに図形などを描画してそれをImageIOでファイルに書き出したいんですが
画像サイズがデスクトップサイズを超え始めたぐらいからOutOfMemoryが出て生成に失敗してしまいます。
大きい画像を使いたい場合何か方法はありますか?
jdkは1.6です。

//そういえばImageIOでjpgを保存すると色にセピアみたいになる変換掛かりますよね?どうすれば治るんでしょうか・・・

974:デフォルトの名無しさん
10/01/03 16:14:43
>>973
VM引数に -Xmx512m とかつけて最大ヒープサイズを大きく取るとか。

975:デフォルトの名無しさん
10/01/03 16:36:56
デスクトップサイズって巨大かなぁ?
1920x1200x3[byte]として6,912,000[byte]。7MB弱だし。
どっかメモリリークしてないか?

976:デフォルトの名無しさん
10/01/03 17:01:27
public static void main(String[] args) throws Exception {
BufferedImage im = new BufferedImage(1920*2,1200*2,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = im.createGraphics();
for (int x=0; x<im.getWidth(); x+=10) {
for (int y=0; y<im.getHeight(); y+=10) {
Color c = new Color((int)(Math.random()*256)
,(int)(Math.random()*256)
,(int)(Math.random()*256));
g.setColor(c);
g.drawLine(0, 0, x, y);
}
}
g.dispose();
OutputStream out = new FileOutputStream("test.jpg");
ImageOutputStream ios =
ImageIO.createImageOutputStream(out);
ImageWriter iw = (ImageWriter)ImageIO
.getImageWritersByFormatName("jpeg").next();
iw.setOutput(ios);
iw.write(im);
out.close();
}

これとか問題出る?

977:デフォルトの名無しさん
10/01/03 17:20:08
>>976
大丈夫でした!
どうやら、画像以外にもいろいろやってるからそれらがメモリを圧迫しているようです。
ちなみに出力部分のところはImageIO.write(im,"jpeg","test.jpeg");と何か違うんでしょうか?

978:デフォルトの名無しさん
10/01/03 20:17:28
>>977
ImageIO.java見ると分かるけど、実はほぼ同じ。
ImageIO.getImageWritersByFormatName("jpeg") がサービスプロバイダの
イテレータなので複数の実装があったときに使い分けられる程度。

979: ◆QZaw55cn4c
10/01/03 21:42:10
java.text.SimpleDateFormat の質問です。
URLリンク(codepad.org)
のようなエラーが発生するのですが、何が悪いのでしょうか?

980:デフォルトの名無しさん
10/01/03 21:52:15
そのエラーメッセージが理解できないという事は、
Javaの言語仕様をきちんと読んでいないだろ。

981: ◆QZaw55cn4c
10/01/03 21:56:33
>>980
なにぶん初学者で、テキストの範囲をちょっと逸脱するとこうなってしまいます。
もうちょっと我慢して教科書を読んでいきます。

982:デフォルトの名無しさん
10/01/03 22:12:21
「スローするにはキャッチまたは、スロー宣言をしなければなりません。」
と丁寧に教えてくれてるもんな。頑張ってこの意味を理解しようね。




俺は面倒がってExceptionでスロー宣言しまくりだけどなー。(小言は聞こえない)

983:デフォルトの名無しさん
10/01/03 22:20:58
>俺は面倒がってExceptionでスロー宣言しまくりだけどなー。(小言は聞こえない)

catch して捨てるよりはまし。

>>979
みたいな、サンプルプログラムでは、 throw Exception しちゃうのが
結局、一番合理的な解じゃないかな。
catch しても printStackTrac()ぐらいしかできることないっしょ。
コードが読みにくくなるだけで、実用上のメリットがさしてない、

ただ、初心者が、「どこでも throw Exception すればいい」 と思い込んだらちょっとまずいってだけで、


984:デフォルトの名無しさん
10/01/03 22:30:44
一番正しいのは契約プログラミング的な考え方で、前提条件は全て事前チェック
しておいて、それに引っかからないモノはそれこそ例外として扱うことじゃないかと
思ってるんだがどうかな?

985:デフォルトの名無しさん
10/01/03 22:35:06
最初は、throw Exceptionされているメソッドを呼び出すときは、呼び出し元もthrow Exception定義しましょうでもかまわないと思う
だんだん勉強して、例外についての理解も進めば、throwかcatchかどっちがいいか分かるようになるでしょ

ところでそろそろ次スレたてるね

986:デフォルトの名無しさん
10/01/03 22:38:55

★★Java質問・相談スレッド135★★
スレリンク(tech板)

987:デフォルトの名無しさん
10/01/03 22:47:54
でも例外に関するエラーメッセージは解りづらい気がする
例外って常用的な日本語だから、慣れないうちはスペルミスでもあるのかと思ってしまう。
さらにExceptionがソースをいくら検索してもみつからないって混乱したり

988:デフォルトの名無しさん
10/01/03 23:03:13
JAVAをはじめてまだ1週間程の初心者なんですが、
URLリンク(kitten.ace.nitech.ac.jp)
ここで公開されているアプリと似たものを作りたいと思っています。
それでこのアプリのソースコードが見てみたいんですが、
ソースコードが公開されていないアプリのソースコードを見る方法ってありますか?

馬鹿な質問かもしれませんが教えていただきたいです。
よろしくお願いします。

989:デフォルトの名無しさん
10/01/03 23:19:06
>>988
>>91
これで一応見ることができる

990:デフォルトの名無しさん
10/01/03 23:36:33
>>989
ありがとうございます!
やってみます。

991:デフォルトの名無しさん
10/01/04 10:31:42
C/C++での「配列のある要素のポインタを関数に渡す」みたいな処理はどうやるのでしょうか?

void func(int n, int a[]);

int main(void){
  int a[] = {1,2,3,4,5};
  func(3, a+2); //これの「a+2」
}



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch