★★Java質問・相談スレッド133★★at TECH
★★Java質問・相談スレッド133★★ - 暇つぶし2ch554:デフォルトの名無しさん
09/11/05 00:52:11
>>553
URLリンク(stackoverflow.com)

555:デフォルトの名無しさん
09/11/05 03:21:51
>>554
レスどうもです。

556:デフォルトの名無しさん
09/11/05 04:36:58
人の話も聞かず全部丸投げしてるのは喧嘩売ってるのか?
exeにjarが埋め込まれてるならバイナリエディタでjarのヘッダ読んでjarの部分だけ切り出せばいいだろ。

557:デフォルトの名無しさん
09/11/05 10:58:08
半透明って言われてそのまま50%にするのはどうかな。
見栄えとか印刷具合も考えて調整したほうがいい。70%ぐらいは無いと透かしが綺麗に読めないと思うよ。

単なる言われた通りに動く実装者じゃなくて、社内の人間の本当に要求してるものを実現するのがSEで生き残る分かれ目。社内の人間からあいつ使えないなって言われてリストラされない様になw

558:デフォルトの名無しさん
09/11/05 11:03:17
思うだけじゃ話にならないので,実際にやってみないとな!
って感じじゃねーの

559:デフォルトの名無しさん
09/11/05 11:03:52
お説教かよ( ・ω・)y─┛~~

560:デフォルトの名無しさん
09/11/05 11:04:05
何言ってんだこいつ

561:デフォルトの名無しさん
09/11/05 11:05:22
語りたい、お年頃なのさ

確かに現場の意見は大切だと思うよ?
言われた通り動く実装者云々と何の関連もないけど

562:デフォルトの名無しさん
09/11/05 11:05:45
少なくとも言われたとおりに動かないのはそもそも駄目だろ
その上で何か提案するなら分かるが

563:デフォルトの名無しさん
09/11/05 11:14:29
25歳と見た

564:デフォルトの名無しさん
09/11/05 11:38:55
>>557
なにこの糞SEが言いそうなテンプレその1は。

PGの仕事じゃないし。

565:デフォルトの名無しさん
09/11/05 11:45:55
仕様にないコード書いたら火の付いた煙草を押し付けられるのが基本

566:デフォルトの名無しさん
09/11/05 11:49:11
過去にコメントアウトした行を全部消して、新しく書き直しさせてくださいよ。・゚・(ノД`)・゚・。

567:デフォルトの名無しさん
09/11/05 11:55:04
履歴管理に使ってるんだからダメだ

568:デフォルトの名無しさん
09/11/05 11:58:24
規制解除されてやっと書き込みが戻ってきた
このスレ死んでるのかと思ったよ

569:545
09/11/05 12:30:29
なんか呼ばれた気がする

>>548
アルファブレンド値ですね。
ちょっと調べてみてますが、現状まだうまくいって無いです

>>557
50%も何も現状は透明化できてないんですよ…
なにかいい案出してくれませんかね?

>単なる言われた通りに動く実装者じゃなくて、社内の人間の本当に要求してるものを実現するのがSEで生き残る分かれ目。
>社内の人間からあいつ使えないなって言われてリストラされない様になw
自称給料泥棒の俺に抜かりは無かった

570:デフォルトの名無しさん
09/11/05 12:31:29
最低q

571:デフォルトの名無しさん
09/11/05 13:02:58
下の式を実行するとokが表示せず、boの結果はfalseになるんですが、
理由がわかりません。
下のif文はまず、括弧のboにtrueが代入され、
次に&&と|ですが、
|が優先順位が高い為、先に実行。
最後はif(false && true){~という形になり最終的にはfalse。
結果if内のokは表示されないが、
その下のboはtrueが出力と考えたんですが、
間違ってますでしょうか?
すいませんがアドバイスよろしくお願いします。

boolean bo = false;
if(false && (bo=true) | true ){System.out.println("ok");}
System.out.println(bo);

572:デフォルトの名無しさん
09/11/05 14:36:54
よーわからんけど

&&、||と&、|の違い
&&、|| と&、|において演算子が意味するところは同じですが、
その振る舞いには明確な違いがあります。
& &と&は左オペランドと右オペランドのいずれもがtrueの場合trueを返します。
このことは左オペランドがfalseの場合は右オペランドがtrue、falseにかかわらずfalseを返すとも言えます。
&&は左オペランドがfalseの場合右オペランドを実行せずにfalseを返します。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&は左オペランドがfalseの場合右オペランドを実行した後、falseを返します。

573:デフォルトの名無しさん
09/11/05 15:59:57
>>569
URLリンク(www.ujihara.jp)

574:デフォルトの名無しさん
09/11/05 16:27:20
>>573
できたできた。

575:デフォルトの名無しさん
09/11/05 18:08:10
>>549
私もそんなポインがある人とお知り合いになりたいです。
ぜひ紹介してください。お願いします。

576:デフォルトの名無しさん
09/11/05 18:15:12
ポインは~
赤ちゃんが吸うためにあるんやでぇ~

577:デフォルトの名無しさん
09/11/05 20:19:56
俺が吸うためにあるんだ!

578:デフォルトの名無しさん
09/11/06 10:44:39
ポインタは馬鹿には無理。

何か現場の人間に虐げられてる糞PG多そうだなw

579:デフォルトの名無しさん
09/11/06 14:58:33
質問させてください。
今JavaでのGUI開発について勉強するために計算機アプリケーションを
構築中なのですが、テキストフィールドにWindowsのデフォルトで
表示されるポップアップ(コンテキスト)メニューが表示されてしまい、
意図しない動作をさせることができるようになってしまっています。
そのテキストフィールドのポップアップメニューにnullを当ててしまうと
例外が発生してしまい、removeメソッドでポップアップメニューを消去しようとしても
デフォルトのMenuComponentをどう指定していいのか解らず、
メニュー項目を定義していないポップアップメニューをテキストフィールドに設定しても
RuntimeExceptionが発生してしまいます。
今回はGUI構築に初めて手を付けるということで、敢えてAWTのみで構築しています。
Swingで構築すればこの辺りは気にしなくても良い様なのですが・・・
AWTでポップアップメニューが表示されないようにすることはできないのでしょうか?

長文駄文失礼しました。

580:デフォルトの名無しさん
09/11/06 16:10:58
>>177
プレーンテキストでもダメだった…
そこでは無いみたい

581:デフォルトの名無しさん
09/11/06 16:14:34
誤爆乙

582:デフォルトの名無しさん
09/11/06 18:37:48
JFS+Faceletsで

<my:getUrl urlVal="url" />
<h:outputLink value="#{url}">文字列</h:outputLink>

のところ、urlが空の場合には<h:outputLink>をはずすような処理をするにはどうすればよいでしょうか?
getUrlはカスタムタグハンドラでurlをセットする処理を行います。

普通はJSTLを使うのでしょうか?

583:582
09/11/06 18:45:01
el式とh:outputLinkのdisabled属性を使いできました。すみません。

584:デフォルトの名無しさん
09/11/06 21:42:53
FLASHのおかげでJAVAを使う機会が大幅に減った

585:デフォルトの名無しさん
09/11/06 22:01:31
Flashって言語でないから習得むずかしそう

586:デフォルトの名無しさん
09/11/06 22:04:12
FlashにもActionSciptがあるジャマイカ

587:デフォルトの名無しさん
09/11/06 22:50:37
よく知らないんだけど、Actionscriptだけじゃ完結しないんじゃない
それともFlashがRAD的位置づけになるの

588:デフォルトの名無しさん
09/11/06 22:51:20
Flashとjavaてどう被るんだ?
アプレットの頃は激重になるってかなり嫌われてすぐに廃れたが。
flashてそのあとだろ。

589:デフォルトの名無しさん
09/11/07 00:10:30
test

590:デフォルトの名無しさん
09/11/07 02:23:35
フラッシュはなんか違う。後頻繁にバージョン上がるので後の手間もかかるよ。企業だとフラッシュ無効にしてる所も有る。
アプレットはブラウザの制約受けるからな。ちゃんとjavaアプリ配布した方が自由度高い。

591:デフォルトの名無しさん
09/11/07 05:52:28
jnlpですな

592:デフォルトの名無しさん
09/11/07 08:29:47
jwsだろ。どっちかというと

593:デフォルトの名無しさん
09/11/07 12:52:26
JAVAで結果を返して、Flashで表示がカコイイわぁ

594:デフォルトの名無しさん
09/11/07 13:24:33
com.sun.facelets.tag.TagHandler#applyでServletContext#getRealPath
の様にファイルの絶対パスを取得するスマートな方法はなんですか?

海外のWEBページなどでは

FacesContext fctx = ctx.getFacesContext();
ServletContext sctx = (ServletContext)fctx.getExternalContext().getContext();
String rpath = sctx.getRealPath(path);

のようにやってますけど。

595:デフォルトの名無しさん
09/11/07 14:39:32
質問です

javaプログラムを起動してから1日ぐらい放置して、急に付加が高い処理を始めると処理が急に遅くなるんですけど、
どういう原理でそうなるんでしょうか?

596:595
09/11/07 14:58:02
解決しました。

詳しいことは書けませんがGCが悪さしているようです。

597:デフォルトの名無しさん
09/11/07 14:58:05
>>595
不可が高いからじゃね?

598:デフォルトの名無しさん
09/11/07 14:58:47
(;´∀`) おういえ

599:595
09/11/07 15:00:13
しかし、GCの挙動を意図的に制御しようとするとコードが煩雑になりますねぇ・・・
JavaやめてC#で行くことにします;;

600:デフォルトの名無しさん
09/11/07 15:00:53
JVMの実装依存だけど
起動時のコマンドラインオプションでGCの処理をかえられます
どれがいいとはいえないけど,試してみたら?

601:595
09/11/07 15:06:55
>>600
検討済みです。
しかし、どれも適切ではありませんでした。

602:デフォルトの名無しさん
09/11/07 15:10:22
えっ検討してたのに再確認した・・の・・・?

とりあえず打つ手が無いのならしかたがない

603:デフォルトの名無しさん
09/11/07 16:39:31
Cでも負荷高いのは変わらないと思うなw

604:デフォルトの名無しさん
09/11/07 16:46:06
1日放置後に発現する問題をどうやって20分足らずで解決したのかを知りたい

605:デフォルトの名無しさん
09/11/07 17:28:35
gc問題をこの短時間で解決し、さらにC#へ移植(?)をあっさり決断、スーパーPGすぐるwww

606:デフォルトの名無しさん
09/11/07 17:34:17
俺GC問題だったら原因究明に1週間~3ヶ月の工数必要だわ

607:595
09/11/07 18:31:36
1日放置って書きましたけど、実際には5分で起きました。

608:デフォルトの名無しさん
09/11/07 18:43:48
5分でパフォーマンス悪化する糞コード書いたのか。
一般的にJITが働けば最終的に速度は安定するんだが5分後から1日後でパフォーマンス変わらんとは・・・。

609:デフォルトの名無しさん
09/11/07 18:47:27
>>69606
今すぐ辞表を書いてくれ

610:デフォルトの名無しさん
09/11/07 18:56:16
>>69606
お前はクビだ



611:595
09/11/07 18:57:09
ん・・・勘違いされてるけど面倒くさいからもういいですよ。
すでに解決したことだし、ここで質問して解決できる程度の問題でもなかったですし。
おそらく詳細を書けば分かる人もいるかもしれないけど、急いでいるのでそこまでしません。
質問してごめんなさい。

612:デフォルトの名無しさん
09/11/07 18:58:51
ソースの先頭のライセンス表記を編集したいのですが、一括で自動編集してくれるようなものはないでしょうか?

613:デフォルトの名無しさん
09/11/07 19:12:59
プログラマならそんなもん作れよw

614:デフォルトの名無しさん
09/11/07 19:24:46
作らんでもgrepで一発だろw

615:デフォルトの名無しさん
09/11/07 19:25:47
1ヶ月もありゃ余裕で作れるだろう

616:デフォルトの名無しさん
09/11/07 19:30:57
悪いがWindowsなんでgrepなんぞ使えない

617:デフォルトの名無しさん
09/11/07 19:33:51
>>615
いいからおまえは辞表書けw

618:デフォルトの名無しさん
09/11/07 19:41:24
正規表現でやっちゃうとか不安じゃないですか?
まぁそれなら作ることにします。
失礼しました。

619:デフォルトの名無しさん
09/11/07 20:01:44
EJBの質問です。

session beanをtransfer objectに積んで
ネットワーク越に他のEJBサーバに転送しても大丈夫ですかね?

remote・local・statefull・statelessによって違う場合は
そのへんもよろしくお願いします

620:デフォルトの名無しさん
09/11/07 20:20:05
面倒なことをすれば大丈夫です

621:デフォルトの名無しさん
09/11/07 23:11:00
普通やらないってことだな

622:デフォルトの名無しさん
09/11/07 23:17:18
EJBは糞

623:デフォルトの名無しさん
09/11/08 00:10:26
あの、質問なんですけど、grepでどうやって置換するんですか?

624:デフォルトの名無しさん
09/11/08 00:16:19
grepじゃ無理だろ>>614の勘違いだろ
edやsedやawkとかならできそう
windows用もネットに転がってる

625:デフォルトの名無しさん
09/11/08 00:20:21
grepして置換するテキストエディタなんて五万とあるだろ

626:デフォルトの名無しさん
09/11/08 00:24:31
説教くさいおっさんに聞こえるかもしれんが
まじに後方参照程度までの正規表現は使えるようになっておいたほうがいいぞ。
そういったテクニックに救われる場面が必ず出てくる。

627:デフォルトの名無しさん
09/11/08 00:25:37
grepして置換する機能を持ったテキストエディタのことを、普通grepとは呼ばない。

628:デフォルトの名無しさん
09/11/08 01:00:40
シンボルを見つけられませんというエラーが出ます
助けてください
// <applet code="RotateEx.class" width="900" height="600"></applet>

import java.awt.*;
import java.io.*;
import javax.swing.JApplet;
import javax.imageio.ImageIO;

public class RotateEx extends JApplet {Image kin, fu, sky;

public void init() {try {
kin = ImageIO.read(new File("images/kin.gif"));
fu = ImageIO.read(new File("images/fu.gif"));
sky = ImageIO.read(new File("images/sky.jpeg"));
} catch (IOException e) {throw new RuntimeException(e);}}
public void paint(Graphics g) {int x =270, y = 123;
Graphics2D g2 = (Graphics2D)g;

g2.drawImage(sky, 0, 0, 900, 600, this);
for (int i = 0; i < 4; i++) {g2.drawImage(kin, x-20, y, this);
g2.rotate(Math.PI/4, x, y);}}}



629:デフォルトの名無しさん
09/11/08 01:09:53
>>628
ふつーにうごいたぞい

630:デフォルトの名無しさん
09/11/08 01:18:34
何度コンパイルしても
Graphics2D g2 = (Graphics2D)g
のところでシンボルが見つけられません
というエラーが出るんです・・・

631:デフォルトの名無しさん
09/11/08 01:31:42
import java.awt.Graphics2D;
のように*使わず書いてみれ
それでダメならまずはJavaのバージョンを書け

632:デフォルトの名無しさん
09/11/08 01:33:33
ちょっとJavaファイルをコンパイルするときに
ちゃんと「書き直したJavaファイル」をコンパイルしているか確認してみなよ

633:デフォルトの名無しさん
09/11/08 02:28:46
5秒以上前に作ったjavaクラスファイルは実行せずにエラーになるランチャをjavaで作ればいいんじゃねw

634:デフォルトの名無しさん
09/11/08 02:29:13
どれも確認しましたがコンパイルできませんでした

バージョンは大学のPCなので新しいと思います
(今年入れ替えたばかりのPCです)


635:デフォルトの名無しさん
09/11/08 02:36:10
悩んでないでeclipseダウンロードしとけw

636:デフォルトの名無しさん
09/11/08 09:59:47
新しいpcなら動作実績無いからウマく逝かなくて当然だなw

637:デフォルトの名無しさん
09/11/08 11:17:18
>>628
それ以前に、swingでpublic void paint(){}をオーバーライドしちゃダメな気がするんですけど

638:デフォルトの名無しさん
09/11/08 12:06:51
正確にはオーバーライドしたら super.paint(g) だっけ。

639:デフォルトの名無しさん
09/11/08 12:44:28
>>638
swingはpaint()をオーバーライドするんじゃなくて、
paintcomponent()するべきだと思うんだけど

640:デフォルトの名無しさん
09/11/08 13:01:28
HTMLに独自のタグを追加して表示したいのですが、何かいい方法はありませんか?
ひとまず、JEditorPaneを使ってパースしようとしましたが遅くて遅くて
今は、javax.swing.text.Document辺りを調べています

641:デフォルトの名無しさん
09/11/08 13:26:55
なにそのw3cに真っ向から対決する姿勢
cssでやりなさいよ

642:デフォルトの名無しさん
09/11/08 13:33:29
>>640
xmlなら可能

643:628
09/11/08 14:01:58
すみません、解決しました
どうやら同じディレクトリに
Graphics.java
Graphics.class
というファイルがあったのが原因のようです

644:628
09/11/08 14:03:49
訂正
Graphics→Graphics2D

645:デフォルトの名無しさん
09/11/08 14:15:14
>>643
開発環境使ってない人にはよくある間違い(ファイル名≠ファイルパス が理解できない)だから
もし周りにも同じような人いたら注意してあげなよ・・・

646:デフォルトの名無しさん
09/11/08 17:21:50
俺の耳の裏、オマンコのにおいがする

647:デフォルトの名無しさん
09/11/08 18:46:32
>setFocusCycleRoot(boolean focusCycleRoot)
>このコンテナがフォーカストラバーサルサイクルのルートであるかどうかを設定します。
java.awt.Containerのjavadocを読んでいて、この様な説明が書いてあったのですが
フォーカストラバサールサイクルとは何の事なのでしょうか
まったく意味がわかりません。教えてエロい人!!

648:デフォルトの名無しさん
09/11/08 19:15:04
TAB キーでフォーカスが移動するコンポーネントツリーのルート
例えば JDesktopPane を使った MDI なアプリケーションで、
JInternalFrame の中のコンポーネントにフォーカスがある場合、
TAB キーを押すとその JInternalFrame 内の別のコンポーネントにはフォーカスが移るけど、
別の JInternalFrame にまでフォーカスが移ったら不自然だろ
その場合 JInternalFrame がフォーカストラバーサルサイクルのルートになると、
TAB キーをいくら押してもそこから外へはフォーカスが出ない

649:デフォルトの名無しさん
09/11/08 19:15:44
英語分からんのか?

650:デフォルトの名無しさん
09/11/08 19:28:29
分からん人もいるだろう
辞書を引く努力すら放棄してる人が大半のような気はするけどな

651:647
09/11/08 20:31:26
>>648
なるほど、わかりました。ありがとうございます

>>649-650
一応、辞書を引きながら調べては居るものの、根本的に文法がわからないので
まったく意味が理解できず

652:デフォルトの名無しさん
09/11/08 21:23:35
これは文法関係ないぞ。
技術英語なんざカタカナ英語に訳してそのまま繋げれば読める

653:デフォルトの名無しさん
09/11/08 21:41:00
読むのと理解するのは違うけどなっ
フォーカストラバーサルサイクルなんて繋いで呼んだだけだ^p^;

654:デフォルトの名無しさん
09/11/08 22:02:26
Even English speakers won't understand jargon without proper background knowledge.

655:デフォルトの名無しさん
09/11/08 22:16:27
質問です。

Double-Checked LockingはJavaではちゃんと動かない、という話は理解しているのですが、
例えば、以下のようなコードならば意図どおりに動作するでしょうか?

class X {
 private Y instance = null;

 void method() {
  if (this.instance == null) {
   synchronized (this) {
    Y __instance = Y.getSingleton(); // インスタンス化されてるけど初期化されてないインスタンス
    if (this.instance == null) {
     __instance.init(); // Y固有の初期化処理
     this.instance = _instance;
    }
   }
  }
 }
}

656:デフォルトの名無しさん
09/11/08 22:18:43
EJBに関して質問です

リモートセッションビーンを呼び出したいのですが、lookupでこけてしまいます。

jndi-viewからセッションビーンを確認できないので、JNDIのどこかが誤っている
と思います。

JBoss4.2(EJB3.0)なので、ejb-jar.xmlやjboss.xmlは不可欠でないと思うのですが、
それは正しいでしょうか?

657:デフォルトの名無しさん
09/11/08 22:51:22
>>655
いいえ
__instance.init(); が this.instance = _instance; よりも後に実行されると
(メモリアクセスは様々な要因で勝手に並び替えられる)、
他のスレッドから未初期化のインスタンスが見えてしまう

658:デフォルトの名無しさん
09/11/09 00:22:19
JavaのStringは内部的にUnicodeでエンコードされていると聞いたのですが、
内部的にUTF-16になるのでしょうか?


659:デフォルトの名無しさん
09/11/09 00:27:41
はい

660:デフォルトの名無しさん
09/11/09 00:31:07
>>658
Unicodeであってるよ。
全ての文字を16ビット値で表現可能とするために、
UTF-16と呼ばれるエンコーディング形式を定義しているだけ。

UTF-16では0x0000~0xffffの間の値は直接Unicode文字に対応してる。

661:デフォルトの名無しさん
09/11/09 01:38:58
>>657
なるほど。

あと、もう一点伺いたいのですが、__instance.init(); を init(__instance); にしたり、
instanceフィールドをvolatileで宣言した場合でも同様になるでしょうか?

662:デフォルトの名無しさん
09/11/09 01:43:38
instanceがvolatileなら大丈夫
volatileには同期効果がある

663:デフォルトの名無しさん
09/11/09 01:51:55
>>662
私の理解では、volatileは「各スレッドから常にその変数の最新の値が見えるように強制する」もの
なのですが、最適化時に順序の入れ替えを禁止する効果もあるのでしょうか。

664:デフォルトの名無しさん
09/11/09 02:46:10
はい
えーと・・・・・・ここかな
URLリンク(java.sun.com)

抜粋で
> Synchronization actions induce the synchronized-with relation on actions, defined as follows:
> ・A write to a volatile variable (§8.3.1.4) v synchronizes-with all subsequent reads of v
>  by any thread (where subsequent is defined according to the synchronization order).
> If we have two actions x and y, we write hb(x, y) to indicate that x happens-before y.
> ・If x and y are actions of the same thread and x comes before y in program order, then hb(x, y).
> ・If an action x synchronizes-with a following action y, then we also have hb(x, y).

あるスレッド内でvolatileへの書き込みより前に起きることは、
別のスレッド内でそれを読み出した後に起きることよりも前に起きる

665:デフォルトの名無しさん
09/11/09 07:48:47
>>664
なるほど、ありがとうございました。

666:デフォルトの名無しさん
09/11/09 10:54:05
Webアプリを作っていて、JSFと普通のサーブレットを使っています。
/faces以下にアクセスしたらFacesServletで、それ以外にアクセスしたら自前のサーブレットで処理したいと思っているんですが、
それぞれのサーブレットのURLパターンを /faces/* と /* にしたところ、すべてのリクエストが自前のサーブレットに回ってきて、
/faces/index.jspのようなリクエストでもFacesServletで処理されなくなります。
どのようにすればこれを正しくわけることができるのでしょうか。

667:デフォルトの名無しさん
09/11/09 16:33:50
0~30の数字の中からランダムに5つ重複なしで選びたいんですが
どうやったらいいでしょうか?
もしそういう関数があれば教えてください

668:デフォルトの名無しさん
09/11/09 16:46:18
配列に0~30まで数字を入れる
乱数でかき混ぜる
前から取り出す

( ^ω^)おっ おっ おっ

669:デフォルトの名無しさん
09/11/09 16:47:53
宿題か何かかよ

670:デフォルトの名無しさん
09/11/09 16:54:06
そうです宿題です
すいません宿題スレっていうのがあるんですね
そちらに行きます
ありがとうございました

671:デフォルトの名無しさん
09/11/09 16:59:05
668で解決じゃないの

672:デフォルトの名無しさん
09/11/09 17:05:41
宿題は2ちゃんねらにやらせる時代

673:デフォルトの名無しさん
09/11/09 17:26:01
import java.util.Vector;
import java.util.Map;
import java.util.HashMap;

public class Main
{
public static final int MAX = 999;//初期値
public static final int SIZE = 5;//頂点の数
public static int path[][] =//隣接行列
{
{MAX, 50, 80, MAX, MAX},
{MAX, MAX, 20, 15, MAX},
{MAX, MAX, MAX, 10, 15},
{MAX, MAX, MAX, MAX, 30},
{MAX, MAX, MAX, MAX, MAX},
};

public static void dijkstra(int start, int end, Vector<Integer> allNode)
{
Map<Integer, Integer> root = new HashMap<Integer, Integer>();
int[] distance = new int[SIZE];
boolean[] kakutei = new boolean[SIZE];
for (int i = 0; i < SIZE; i++)
{
distance[i] = MAX;
kakutei[i] = false;
}

kakutei[start] = true;
distance[start] = 0;

for (int i = 0; i < allNode.size(); i++)

674:デフォルトの名無しさん
09/11/09 17:26:42
{
root.put(i, start);
if (kakutei[i] == true) continue;
if (path[start][i] != MAX) distance[i] = path[start][i];
}

while (kakutei[end] == false)
{
int kakuteiIndex = -1;
for (int i = 0; i < allNode.size(); i++)
{
if (kakutei[i] == true) continue;

if (kakuteiIndex == -1)
kakuteiIndex = i;
else if (distance[i] < distance[kakuteiIndex])
kakuteiIndex = i;
}
kakutei[kakuteiIndex] = true;

for (int i = 0; i < allNode.size(); i++)
{
if (kakutei[i] == true) continue;

if (distance[kakuteiIndex] + path[kakuteiIndex][i] < distance[i])
{
distance[i] = distance[kakuteiIndex] + path[kakuteiIndex][i];
root.put(i, kakuteiIndex);
}
}
}


675:デフォルトの名無しさん
09/11/09 17:27:09
なんなんですか

676:デフォルトの名無しさん
09/11/09 17:27:37
for (int i = 0; i < distance.length; i++)
{
System.out.println(i + " までの最短距離は " + distance[i]);
}

int r = root.get(end);
StringBuffer sb = new StringBuffer();
sb.append(end);
while (true)
{
sb.append(r);
if (r == 0) break;
r = root.get(r);
}
sb.reverse();
System.out.print(start + " から " + end + " までの最短ルートは");
for (int i = 0; i < sb.length(); i++)
{
System.out.print(" ==> " + sb.charAt(i));
}
}

public static void main(String[] args)
{
Vector<Integer> allNode = new Vector<Integer>();
for (int i = 0; i < SIZE; i++)
{
allNode.add(i);
}
dijkstra(0, allNode.size() - 1, allNode);
}
}

677:デフォルトの名無しさん
09/11/09 17:28:18
やっていることをコメントアウトで解説してくれませんか?

678:デフォルトの名無しさん
09/11/09 17:30:37
よく見てないけどダイクストラ法か何か?

679:673
09/11/09 17:32:23
はい、ダイクストラ法です

680:デフォルトの名無しさん
09/11/09 17:33:08
質問です。
ArrayList listに
list.add(new Integer(10))と追加してあるんですけど
このlistから元の数字の10を取り出すにはどうすればいいでしょうか?
(int)list.get(0)みたいなことをやりたいんですがキャストできませんと言われました。

681:デフォルトの名無しさん
09/11/09 17:33:43
Integerにキャストすればおk

682:デフォルトの名無しさん
09/11/09 17:40:03
>>681
The method Integer(Object) is undefined for the type ○○○(自分で作ったクラスの名前)
と言われました・・・

683:デフォルトの名無しさん
09/11/09 17:42:51
list.get(0).intValue()

684:デフォルトの名無しさん
09/11/09 17:43:29
あごめんなさい
キャストじゃなくてInteger(list.get(0))で新しく作ろうとしてました
キャストならできました!
ありがとうございます

685:デフォルトの名無しさん
09/11/09 17:45:23
>>683
これだとできませんでした

686:デフォルトの名無しさん
09/11/09 19:40:07
((Integer) list.get(0)).intValue()

687:デフォルトの名無しさん
09/11/09 22:06:48
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;;

public class renshu3 extends JApplet
{
private JLabel lb;
private JPanel pn;
private JRadioButton rb1,rb2,tmp;
private ButtonGroup bg;

public void init()
{
lb=new JLabel("いらっしゃいませ。");
pn=new JPanel();
rb1=new JRadioButton("白", true);
rb2=new JRadioButton("黒", false);
bg=new ButtonGroup();

bg.add(rb1);
bg.add(rb2);

pn.add(rb1);
pn.add(rb2);
add(lb, BorderLayout.NORTH);
add(pn, BorderLayout.SOUTH);

rb1.addActionListener(new SampleActionListener());
rb2.addActionListener(new SampleActionListener());

}

688:デフォルトの名無しさん
09/11/09 22:07:29
class SampleActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
tmp=(JRadioButton) e.getSource();
lb.setText(tmp.getText() + "を選びました。");
if(){
lb.setForeground(Color.white);
}
else{
lb.setForeground(Color.black);
}
}
}

質問です。ラジオボタンが2つあって、それぞれ押すと色が変わるようにしたいんですが
ifの括弧に何を入れればいいんでしょうか。

689:デフォルトの名無しさん
09/11/09 22:10:53
trueかfalseになる様な式を入れればいいんじゃないでしょうか

690:デフォルトの名無しさん
09/11/09 22:18:04
>>688
解らないならばAcionLisnerを2種類用意しろ

691:デフォルトの名無しさん
09/11/09 22:21:39
「~を選びました」って出せるのにif文の内容が判らないとは、これいかに?

692:デフォルトの名無しさん
09/11/09 22:25:12
その文は最初からありましたので

693:デフォルトの名無しさん
09/11/09 22:53:24
URLリンク(www.open-tec.info)
こちらのサイトのWindows版を入手したものの
使い方が分からずにいます。
java実行環境があれば実行できるようですが、
>>3のリンク先
URLリンク(www.java.com)
からjavaをインストールしましたが、どのように使うのか分かりません。
現在インストールしているのはJava Version6 Update 17です。

根本的なことが理解できていないような気がしますが
どなたかご教示下さい。

694:デフォルトの名無しさん
09/11/09 23:11:54
ここはプログラミングの板であってソフト板じゃない

695:687
09/11/09 23:14:32
括弧にtrueを入れてみたところ、白にはなりましたが黒にはなりませんでした。
URLリンク(www.dotup.org)
どうか教えてくださいませんか。

696:デフォルトの名無しさん
09/11/09 23:22:59
質問なのですが三つの座標が一直線に並んでいるか判定するにはどうすればよいでしょうか

697:デフォルトの名無しさん
09/11/09 23:26:57
面倒なら目視すればいいんじゃないんでしょうか?

698:デフォルトの名無しさん
09/11/09 23:37:05
>>696
点A,B,Cとして、二点間A-B,A-Cの傾斜を求めて一致するか判定。なお正負には注意。

699:デフォルトの名無しさん
09/11/09 23:39:27
>>695
>>690に書いてある通り、クラスを2つ作ればいいだけの話だと思うんだけど
IDEを使わないで書いたコードなので、たぶんタイプミスがあると思う↓

rb1.addActionListener(new RB1ActionListener());
rb2.addActionListener(new RB2ActionListener());

private class RB1ActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
/* 白の時したい処理を書く */
}}

private class RB2ActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
/* 黒の時したい処理を書く */
}}

700:デフォルトの名無しさん
09/11/09 23:54:58
教えていただいてて申し訳ないですが、さっぱり分からないのでtrueのまま提出することにします。

701:デフォルトの名無しさん
09/11/10 00:08:54
>>700

trueのかわりに「rb1.isSelected()」って書いとけ!

702:デフォルトの名無しさん
09/11/10 00:15:08
あきらめろ

703:デフォルトの名無しさん
09/11/10 01:16:14
理屈が分からなくても動きさえすれば無問題


そんなふうに考えていた時期が俺にもありました

704:デフォルトの名無しさん
09/11/10 03:41:49
>>701
激烈之謝謝!

705:デフォルトの名無しさん
09/11/10 10:16:20
JEditorPaneにHTMLを読み込んだ後に、HTMLを追加できないですかね?
<html><body>
<!-- HogeHogeな内容 -->
<!-- ここに新しく追加 -->
</body></html>

706:デフォルトの名無しさん
09/11/10 16:39:23
Faceltesのタグファイルについてです。

// タグファイル
<ui:composition><f:convertDateTime timeZone="JST"/></ui:composition>

// 使用側
...
<my:convertDateTime dateStyle="full" />
...

のように元のタグ(f:convertDateTime)を利用してカスタムタグ(my:convertDateTime)を作る場合、カスタムタグ
の属性値を委譲先のタグの属性に渡すにはどうやると良いでしょうか?


上の例ですと

<ui:composition><f:convertDateTime dateStyle=#{dateStyle} timeZone="JST"/></ui:composition>

とすれば可能ですが#{dateStyle}が空の場合に問題となります。

707:705
09/11/10 19:03:34
自分で解決してしまいました
HTMLEditorKitの使い方を間違えていたようですorz

708:デフォルトの名無しさん
09/11/11 01:32:05
コレクションワークフレームについて質問です。
現在「Javaの道」で勉強中なのですが、
URLリンク(www.javaroad.jp)
上記URLの例1の中で下記1.のような記述があります。
これは下記2.と同じ意味なのでしょうか。
2.でもエラーはでませんでした。
addメソッドの中に new ** というように記述するのを初めてみたもので。
メモリ確保やニュアンスがちがうのでしょうか。

1.(Javaの道 記載コード
void addhead(List exList) {
for (int i = 0; i < 10000; i++) {
exList.add(0, new Integer(i));
}
}

2.(自分で書き換えたコード
void addhead(List exList) {
for (int i = 0; i < 10000; i++) {
Integer it = new Integer(i);
exList.add(0, it);
}
}

709:デフォルトの名無しさん
09/11/11 10:44:54
一緒です
System.out.println(123 + 456);

int x = 123 + 456;
System.out.println(x);
が一緒なのと同じ理屈

710:デフォルトの名無しさん
09/11/11 22:03:58
>>708
こっちは同じコードだけど

>>709
こっちは最適化で変わるんじゃ・・

711:デフォルトの名無しさん
09/11/12 00:59:15
>>708
一旦変数に参照させてから使わないといけない、という決まりは無い。
String s = new SimpleDateFormat("yyyy/MM/dd").format(new Date());
こういうのもあり。

712:デフォルトの名無しさん
09/11/12 07:08:19
ダブルバッファリングのことについて質問です
「Swing ではJRootPaneとそのコンテンツペインそれからJPanelクラスがダブルバッファリングを有効にしています」
というような記述を見つけたのですが、JPanel上に描画を行うならダブルバッファリングを行う必要はないのでしょうか

一般公開されてるソースを参考にJAVAでゲーム作成の勉強をしているのですが、
JPanelを使っているのにダブルバッファリングを使っていてちょっと混乱しています。

713:デフォルトの名無しさん
09/11/12 10:14:57
そのソースとやらがアクティブレンダリングやってるなら必要。やってないなら不要。

714:デフォルトの名無しさん
09/11/12 19:39:25
自分で図形が動いていくプログラムを書いて、表示が乱れるかどうかやってみりゃいいんじゃね。

715:デフォルトの名無しさん
09/11/12 19:46:47
C++ 使いです、C++ では、コンストラクタで例外を投げないというのがセオリーなのですが
java も同様に考えていいでしょうか?

716:712
09/11/12 20:04:39
>>713
返答ありがとうございます。
アクティブレンダリング(自前の描画メソッド?)が必須なときがいまいち分かってないのですが、もう少し調べてみます。
>>714
返答ありがとうございます。
自分でも色々実験して検証してみます。

717:デフォルトの名無しさん
09/11/12 20:14:52
>>715
Java では普通に例外を投げる。

718:デフォルトの名無しさん
09/11/12 20:47:27
そもそもリークするからとか言い出すC++厨が頭沸いてる。
コンストラクタで引っかかるようなモン、処理継続させたって無駄じゃね?

719:デフォルトの名無しさん
09/11/12 21:12:54
>>715 です
>>717
郷に入らずんば、郷に従え として、例外を投げても後始末してくれるという具合に考えます。
>>718
あまりにも思考が短絡的ですね。

720:デフォルトの名無しさん
09/11/12 22:03:04
ふーん、
・コンストラクタに置くしかなくて、
・でもエラーが起きても処理を継続させないといけない
って状況って何?

721:デフォルトの名無しさん
09/11/12 22:51:00
好きにしろよ
同意を求める為だけに質問するフリをするな

722:デフォルトの名無しさん
09/11/12 23:19:34
質問じゃねーよ、当てこすってるんだよ。
C++のローカル神話持ち込んできた癖に、そっちこそ好きにしろやww

723:デフォルトの名無しさん
09/11/12 23:37:33
分かると思って安価入れなかったんだけど、勘違い君に噛み付かれてるなあ
721は719向けね

724:デフォルトの名無しさん
09/11/12 23:39:59
相手が何でも察すると思うな。
きちんとドキュメントにしたまえ。

725:708
09/11/12 23:55:00
>>709, >>710, >>711
ご回答ありがとうございます。

>>711 これはすごいw。なんて複雑怪奇なんだ。
でも、行数減らしてかけるからスッキリしますね。


726:デフォルトの名無しさん
09/11/12 23:59:39
どこかのコンストラクタでエラーが起きただけでプログラム停止できれば楽だろうねぇ。

727:デフォルトの名無しさん
09/11/13 00:03:10
止めたくなければ上位のメソッドでキャッチすりゃいいだけだよ
どこまで頭悪いんだ

728:デフォルトの名無しさん
09/11/13 00:04:46
むしろなんでC++はコンストラクタで例外投げないの?
コレクションからコレクション作るときnull許可しないなら普通に投げないか?

729:デフォルトの名無しさん
09/11/13 00:08:42
C++ コンストラクタ 例外でググるとそんなのは迷信だってサイトが大量に出てきて笑えるよ
時代遅れの妄言だな

730:デフォルトの名無しさん
09/11/13 00:35:35
>>727
>>720


731:デフォルトの名無しさん
09/11/13 00:41:16
>>725
え゛? 複雑? あー、でもJavaじゃメソッドチェインはあんまやらないから、見慣れない人がいるのもしゃーないのか。
ライブラリが「void返すくらいならthis返せ」って思想だったらよかったのに。

732:デフォルトの名無しさん
09/11/13 02:07:25
>>727
たぶん、new した所が普通に上位のメソッドだという考えになっていないんだろうね。
C++ だとローカル変数を置くだけでオブジェクトが生成されちゃうこともあって。


733:質問者
09/11/13 08:48:30
1. Java1.6の、型を限定したListの作り方を教えてください。
2. inport java.util.List;として、他の場所ではList型が使えているのに、
 new List(); が、「型Listのインスタンスを生成できません。」とコンパイルエラーになります。
理由に心当たりがありましたらご教授ください。

734:デフォルトの名無しさん
09/11/13 09:17:02
Listは実装じゃなくてインタフェースだから
List型の変数は宣言できても実体は作れない
実体はLinkedList<T>やArrayList<T>や自分で作った実装のあるクラスでないといけない
List<?> list = new ArrayList<?>();
とか

735:733
09/11/13 09:50:48
>>734
ありがとうございました。

736:デフォルトの名無しさん
09/11/13 10:34:51
エラーでてるのに処理続けてもなあ。
エラー出ない様に対処してから再試行するべき。

737:デフォルトの名無しさん
09/11/13 10:52:08
勘違い君は、>>727だけでなく>>732もなのか。
>>726では「キャッチしなくていいなら楽だ」って意味なのに、>>727で「キャッチすりゃいい」なんてレス
入れるのは勘違いも甚だしい。

また、>>718>>720の脈絡からすれば「コンストラクタでエラーならプロセス停止するべき」って言ってる
に等しい。
リークが問題になるのはプロセスを継続する場合なんだからな。
「処理」って「エラーになったクラスの処理」だったなんて寝ぼけたこと言うのかもしれんが。


738:デフォルトの名無しさん
09/11/13 12:20:09
578 名前: デフォルトの名無しさん [sage] 投稿日: 2009/11/13(金) 12:00:40
HTTPは無理しすぎだからな。
本来は閲覧専用のプロトコルだったはずだ。

いつの間にか書き込みができるようになったり、
個人識別ができるようになったり、
pushもできるようになったり。

739:732
09/11/13 12:22:46
>>737
>>737 は、>>727 がどのレスに対するレスなのかを勘違いしていると思われる。

740:デフォルトの名無しさん
09/11/13 12:36:53
アンカー付けようねってことだねwww

741:デフォルトの名無しさん
09/11/13 13:33:09
Javaで正規表現を使うにはどうしたらいいでしょうか?
また、Javaの文字(char)のユニコード値を得る(int)コードはどうしたらいいでしょうか?

742:デフォルトの名無しさん
09/11/13 13:33:50
間違えてsageてしまったのでageます

743:デフォルトの名無しさん
09/11/13 13:37:26
正規表現はPatternクラス
charはキャストすればintに入る

744:デフォルトの名無しさん
09/11/13 13:39:48
間違えた
「キャストしなくても」

745:デフォルトの名無しさん
09/11/13 13:44:32
>>743(名無しさん)
ありがとう

746:デフォルトの名無しさん
09/11/13 19:49:29
Hibernateについて質問させてください。

複数クラスとテーブルのマッピングSQLを作成するにあたり、
以下の方法では取得できています。

@itより抜粋
Query sqlQuery = session.createSQLQuery(
" select {mem.*},{wg.*} from member {mem} join workgroup {wg} “ +
“ on {mem}.groupno = {wg}.groupno", new String[] { "mem","wg"},
new Class[] {Member.class,WorkGroup.class});
List list =sqlQuery.list();
for (int i = 0; i < list.size(); i++) {
Object[] items = (Object[]) list.get(i);
Member member = (Member)items[0];
WorkGroup group = (WorkGroup)items[1];
System.out.println(
member.getNo() + ":"
+ member.getName() + ";group:"
+ group.getGroupname()
);
}
session.close();

質問に入りますが、全列を使用するわけではないので、取得列名を絞り込むこと
は可能でしょうか。絞込みによる性能向上を期待しています。

どなたかお分かりになる方の助言をお待ちしています。
よろしくお願いいたします。

747:デフォルトの名無しさん
09/11/13 20:01:07
質問します。
java で、ファイルに書き込まれている内容の比較をしたいのですが、そのようなメッソッドは無いでしょうか?

748:デフォルトの名無しさん
09/11/13 20:11:55
Javaでやる必要があんのけ?

749:デフォルトの名無しさん
09/11/13 20:14:29
javaでやれといわれたので。

750:デフォルトの名無しさん
09/11/13 20:23:00
そのようなメッソッドはありません
普通にファイルを読み込んでから普通に内容を比較してください

751:デフォルトの名無しさん
09/11/13 20:27:47
黒魔法メッソッド!!!

752:デフォルトの名無しさん
09/11/13 20:38:16
>>747
MappedByteBuffer#equals()でも使うのがお手軽じゃない?
使ったこと無いけど。

753:デフォルトの名無しさん
09/11/13 23:34:26
スレリンク(tech板)
★★ Java の宿題ここで答えます Part 68 ★★

754:デフォルトの名無しさん
09/11/13 23:51:03
質問させてください。

現在Swingで、コンボボックスを画像表示にし、
そこで選択された画像を、フレーム中央に表示させるプログラムを作っています。
ところが、getSelectedItemの設定で行き詰ってしまいました。
どなたかアイディアをお貸しいただければ幸いです。

ちなみに現在のソースは以下のようになっています。
色々いじくったので可笑しなことになっているかもしれません。
URLリンク(rg550.hp.infoseek.co.jp)

どうぞよろしくお願いします。

755:デフォルトの名無しさん
09/11/14 00:51:34
>>754
combo.setRenderer(new JLabel());
になってないか?

756:デフォルトの名無しさん
09/11/14 00:54:35
>>754 JavaDocではこうなっている。
void setRenderer(ListCellRenderer aRenderer)

757:755-756
09/11/14 01:08:46
間違えた。すまん

758:754
09/11/14 01:16:20
>>755-756
いえ、非常にありがたいです。
他にも何かお気づきの点があれば、よろしくお願いします。

759:755-756
09/11/14 01:31:36
class ComboLabelにtextとicon保存
public Component getListCellRendererComponent内で上で保存したtextとiconをJLabelにセットしなければならないから、

class ComboLabel{
にtext追加。
public Component getListCellRendererComponent(
にsetText追加。

すればいいんじゃないかと……

760:デフォルトの名無しさん
09/11/14 02:04:27
>>754
これで普通に画像の切り替えできてるよ。
変数が見えてなかったりLabelが表示されてなかったりしたのも直したけど。

MyCellRenderer renderer = new MyCellRenderer();
combo.setRenderer(renderer);
combo.addItemListener(renderer);//追加


class MyCellRenderer extends JLabel implements ItemListener, /*追加*/ ListCellRenderer {
..... //省略
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED){
lb.setIcon(((ComboLabel)model.getSelectedItem()).getIcon());
}
}

761:754
09/11/14 02:39:10
皆さんどうもありがとうございます。
早速教えていただいたように直してみました。

ところが、
lb.setIcon(((ComboLabel)model.getSelectedItem()).getIcon());
の箇所で、lb、modelを解決できませんというエラーが表示されてしまいます。

どこが間違っているのか、自分ではどうしても解決できませんでした。
もう一度教えていただいてもよろしいでしょうか。
お願いします。

ちなみに現在のソースです。
URLリンク(rg550.hp.infoseek.co.jp)

762:デフォルトの名無しさん
09/11/14 02:46:43
>>761
こっちに変えてみな。

public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED){
ComboLabel lbl = (ComboLabel)((JComboBox)e.getSource()).getSelectedItem();
lb.setIcon(lbl.getIcon());
//lb.setText(lbl.getText()); Textが必要ならComboLabelにgetText()を追加する
}
}

763:デフォルトの名無しさん
09/11/14 02:49:14
あと以下の2行を修正

public class Combobox extends JFrame{
private JLabel lb; //追加


//JLabel lb = new JLabel(("ここに画像が表示されます")); この行コメントアウトして下のように変更
lb = new JLabel(("ここに画像が表示されます"));;


764:754
09/11/14 03:01:24
迅速なお返事をどうもありがとうございます。
教えていただいたことを元に、もう少し自分で考えてみようと思います。

こんなに遅い時間まで、本当にどうもありがとうございました。

765:デフォルトの名無しさん
09/11/14 03:05:30
>>764
適当に動くようにしたソースはっとくよ。

URLリンク(rg550.hp.infoseek.co.jp)

766:754
09/11/14 03:12:17
わざわざソースまで!
自分の求めていたとおりに動かすことができました。
本当にありがとうございます。
自分ももっと勉強します。

767:デフォルトの名無しさん
09/11/14 03:35:46
MyCellRenderer extends JLabel implements ListCellRenderer
よりも
MyCellRenderer extends DefaultListCellRenderer
にするといいよ。
getListCellRendererComponent() の最初で
super.getListCellRendererComponent(); を呼んで、
アイコンをセットして、
最後に return this; とすればいい。

768:デフォルトの名無しさん
09/11/14 07:53:25
java でC/C++ でいうところの、関数ポインタのような振る舞いをさせるには
どのようなデザインパターンを用いればいいでしょうか?
2つのboolean 値があって、その値の内容の組み合わせパターン(2^2)によって、呼び出すメソッドを変えたいのですが
if ~else if 構文や、switch 文はかっこ悪いので使いたくありません、よろしくお願いします。

769:732
09/11/14 08:59:26
>>768
Java では関数ボインタを変数に持ったり、関数ポインタを使って多相化することはない。
そういうことをしたい時は、オブジェクトを変数に持って、パターンによって、
共通のインタフェースを実装した異なるオブジェクトを呼ぶことになる。
関数テーブルの代わりにはオブジェクトテーブルということになるが、
オブジェクトテーブル以外にも、4つのパターンを表現した enum クラスを作って、
各 enum 定数の中に実装を書くなどの作戦もある。

770:デフォルトの名無しさん
09/11/14 09:17:34
>>769
Thx

771:デフォルトの名無しさん
09/11/14 09:28:13
>>769
それ、なんてStrategyパターン?

772:768
09/11/14 09:41:43
>>771
外していたらごめんなさい、多分State パターンではないでしょうか?

773:デフォルトの名無しさん
09/11/14 14:23:46
総称型の配列が作れません。
以下のような場合どうすればいいのでしょうか?

public T[] getSpecifiedElements(T[] allElements) {
   //allElementの一部要素をT配列で返したい。
}

ArrayList<T> temp = new ArrayList<T>(); に必要な分をつめこんで、
temp.toArray(new T[temp.size()]); ってしたいのですが無理なようです。
(T) temp.toArray(); もクラスキャストエクセプションになってしまいした。。。

774:デフォルトの名無しさん
09/11/14 14:38:55
>>772
お前がやりたいのは、ちょっとした計算ロジックを切りかえたい
ということに見えるが、それだとしたらStrategyパターンであってる


775:デフォルトの名無しさん
09/11/14 14:56:35
>>773
無理。
代替案としては Class<T> を引数で指定してもらうか、
配列使わずList<T>で受け渡しするか。
<T> T[] getSpecifiedElements (T[] allElements, Class<T> clazz) {
 List<T> temp = new ArrayList<T>();
 //tempに必要な要素をつめる。
 return temp.toArray((T[])Array.newInstance(clazz, temp.size()));
}

List<T> getSpecifiedElements (List<T> allElements) {
 List<T> temp = new ArrayList<T>();
 //tempに必要な要素をつめる。
 return temp;
}

776:デフォルトの名無しさん
09/11/14 14:57:52
>>773
総称型の配列をnewすることは、Javaの言語仕様上できない。
多少強引だがこれでOK。

@SuppressWarnings("unchecked")
T[] subElements = (T[]) java.lang.reflect.Array.newInstance(
allElements.getClass().getComponentType(), temp.size());

return temp.toArray(subElements);

つーか、そもそも配列使うのやめればいいだけなんだけどな。


777:デフォルトの名無しさん
09/11/14 15:25:04
>>775
>>776
引数でクラス指定すると総称型の意味がないし、
ワーニング潰すのも気持ち悪いので、
諦めてList<T>を返すことにしました。

しかし勉強になりました。ありがとうございます。

778:デフォルトの名無しさん
09/11/14 16:01:01
ストラッツの質問はここでも大丈夫でしょうか?jsp にアクセス(リロード)した際、自動的にActionクラスを実行するプログラムを組みたいのですが、どうすれば良いでしょうか?



779:デフォルトの名無しさん
09/11/14 16:01:46
>>776
jdk7だと[]とListの区別がなくなるのかも。

780:デフォルトの名無しさん
09/11/14 16:58:38
URLリンク(www.tomicom.ac.jp)
ここを参考に,特定の文字列をAESで暗号化するiアプリを作成してみたのだけど,例外が出てしまう…
どなたか,原因が分かる方ご教授お願いします.

例外
Main :java.lang.IllegalArgumentException: Can't use the sessionkey or the iv with the algorithm keyTest
java.lang.IllegalArgumentException: Can't use the sessionkey or the iv with the algorithm
at com.nttdocomo.security.CipherSessionKey.createSymmetricCipher(+71)
at cryptionClass.encryption(+72)
at keyTest.start(+14)
com.nttdocomo.security.CipherSessionKey: Can't use the sessionkey or the iv with the algorithm

ソースコード
URLリンク(www.cms-e.net)

781:デフォルトの名無しさん
09/11/14 17:24:28
"Can't use the sessionkey or the iv with the algorithm"
って書いてあるけど?


782:780
09/11/14 17:33:11
>>781
まぁ,そのエラーメッセージの意味は分かるのだけど,解決策が分からない….
参考URLではプログラム解説のためにDESアルゴリズムを用いているけどできればAESを使いたいので.


783:デフォルトの名無しさん
09/11/14 17:36:00
>>781
いや,ごめん.意味も分かってないかも.

アルゴリズムのあるセッション鍵かIVを使用できません.

という文章的な意味は分かるのだけど,そのトラブルシューティングが分からない

784:デフォルトの名無しさん
09/11/14 17:49:27
>>778
jspがAction経由で表示されたなら、リロードしてもActionが再実行されると思うけど。

785:デフォルトの名無しさん
09/11/14 21:55:10
>>783
その訳はたぶん
そのセッション鍵またはそのIVをそのアルゴリズムと共に使うことはできません
ではないか?
ちょっと調べたらAESはブロックサイズが128ビットらしいので、IVのサイズをそれに合わせて長くしてみるとか

786:デフォルトの名無しさん
09/11/14 22:56:31
ジャバってランタイムがないと動かないの?
RPGツクールみたいなもん?
単体で動くexeとか作れないの?

787:デフォルトの名無しさん
09/11/14 22:57:45
POJOって一体何なの?
どういう風に便利なのかとか、どうすれば使えるのかとかがよく分からない。

788:デフォルトの名無しさん
09/11/14 22:58:29
そうです

強引な方法も無くはないが
素人には10年早い

789:デフォルトの名無しさん
09/11/14 23:08:27
788さん、それボク786に対する答えですか。

790:デフォルトの名無しさん
09/11/14 23:43:23
>>786
うん
でもC++とかでもランタイム必要なものもあるよ

791:デフォルトの名無しさん
09/11/14 23:56:51
OS だってランタイムだ、という考え方をすれば、単に OS 標準でどこまで付いて来るかという問題でしか無いとも言えるな。

792:デフォルトの名無しさん
09/11/15 00:12:21
790さんありがとうございます
とりあえずいろいろいれずにWindowsでexeをクリックするだけで起動する感じが理想なので
別の言語あたってみます

793:デフォルトの名無しさん
09/11/15 04:55:26
アジャイル手法とかに詳しい人がいたら、ご意見をいただけないでしょうか。

最近、私が関わっているプロジェクトで、
「カバレッジ100%を達成するためにホワイトボックスな単体テストを書きまくった結果、
逆に、テストを書き直すコストが増大して大きなリファクタリングができなくなりつつある」
という本末転倒っぽい状態に陥りつつあるのですが、何か良い方法なり指針はないものでしょうか。

794:デフォルトの名無しさん
09/11/15 06:57:08
端的に言えばカバレッジ最優先なポリシはバランスが悪い。

リファクタリング前と後で、極端なまでにテスト再利用性が存在しないのは、
そもそも変化が許容される内容(つまりはリファクタリングによって改善した内部構造そのもの)
に対して過剰なテストが行われていることを意味している。

極端に言ってしまえば、テストは所詮バグが存在しないことの証明にはならないのだから、
あまり内部詳細に踏み込みすぎず、外部インタフェース越しに一般的なシナリオをテストするに
留めておくぐらいがちょうど良いと個人的には思う。

795:デフォルトの名無しさん
09/11/15 07:30:53
>>793
一律にテスト書かないで変更が多そうな部分と変更が少なそうな部分にわけて
変更が少なそうな部分を重点的にテストするとか

796:デフォルトの名無しさん
09/11/15 09:00:14
javamail-1.4.2 を使い、メール送信機能を付与した、プログラムを作成しました
送信テストも終わり、このプログラムを他人に配布したいのですが
通常のjava のアプリケーションが動くJava(TM) SE Runtime Environment (build 1.6.0_17-b04)
の環境であれば、別途に必要なランタイムやライブラリィはありませんか?

797:796
09/11/15 09:52:09
自己解決です
URLリンク(oshiete1.goo.ne.jp)
同じ方がいました、他人に配布するのは、ライセンス的には問題なさそうですが、
バッチでmail.jar を入れるとか、面倒な感じですね、実行するにも長たらしいコマンドを入れなければならないし
C で書いたDLL があるので、こいつを使った方が解決が早そうです。
java のインストローラが作れればいいんだが・・・・

798:デフォルトの名無しさん
09/11/15 10:28:08
izpackかは?
コマンドって、実行時のクラスパス指定のこと?
それならManifestに記述すればいいし最悪バッチファイルなりなんなり書けばいいし、他にもexeにラップしちゃうって手もあるし、あんまり問題にはならなくないかい?

799:796
09/11/15 10:45:00
>>798
ありがとうございます、java は最近はじめたばっかりなので詳しくく質問させてもらいました
Manifest とか、exe にラップする方法があるのですね知りませんでした、調べてみます。

800:デフォルトの名無しさん
09/11/15 13:28:58
>>785
ありがとうございました!
IVを128bitにしたら無事通りました!

801:793
09/11/15 13:50:12
>>794
なるほど。。
インタフェースごしのブラックボックステストと、ホワイトボックステストを分けるのも手かもしれませんね。

802:デフォルトの名無しさん
09/11/15 15:00:16
URLClassLoader#loadClass(null)で呼び出したクラスは、
このクラスローダがGCされると綺麗にメモリ上から消えますか?

public static void run(URL jarFile, String className) throws Exception {
    Class clazz = new URLClassLoader(new URL[]{jarFile}).loadClass(className);
    MyInterface obj = (MyInterface) clazz.newInstance();
    obj.run();
}

803:デフォルトの名無しさん
09/11/15 15:35:26
>>802
一緒にGCされると思うけど、仕様によって保証はされない。

あと、java.lang.Class や java.lang.reflect.Method なんかの
リフレクション用のオブジェクト握りっぱなしにしてると、
そもそもクラスローダがGCされない

804:デフォルトの名無しさん
09/11/15 17:05:11
JNIでCを呼び出すとき、System.loadLibraryでネイティブライブラリをロードしますが、
System.loadLibraryを書くのはコンストラクタがよいのか、staticイニシャライザが良いのかわかりません。
どちらの方がよいのでしょうか?

805:デフォルトの名無しさん
09/11/15 17:10:50
インスタンスをnewするまでstaticなネイティブメソッドが呼べないよ

806:デフォルトの名無しさん
09/11/15 18:21:36
携帯でMP3再生したい
オープンアプリでいっちょやってみるか
ハフマン符号????
File decode(File mp3File) {

// 誰かサンプル書いてみて
return decodeFile;
}

807:806
09/11/15 18:24:48
だめだ
メモリ足りなくなりそうなので
いちいち展開なんてしてられん・・・
void playMp3(File mp3File) {
//一時停止機能とかいらないから誰かサンプル書いて
}

808:デフォルトの名無しさん
09/11/15 19:28:40
別スレッドがSystem.out.print..などで、標準出力にメッセージを出すようになっていて、
それをInputStreamなどで拾いたいのだけど、どうしたら良いですか?

809:デフォルトの名無しさん
09/11/15 19:54:06
java mediaとかかな
特許がらみが多い分野だからほとんどの形式がクローズドだけど。

810:デフォルトの名無しさん
09/11/15 20:01:17
>>808
System.setOutで出力先をPipedOutputStreamか何かに変え、PipedInputStreamか何かで読み出す

811:デフォルトの名無しさん
09/11/15 22:24:08
>>810
ありがとう!解決した!

812:デフォルトの名無しさん
09/11/15 22:35:18
どうしてクラスローダが1つのVMに複数あるのでしょうか?

813:デフォルトの名無しさん
09/11/15 22:49:06
URLから取ってくるクラスローダとか色々あるから。で回答としてはいいのかな?

814:デフォルトの名無しさん
09/11/15 22:49:48
たとえば同一の外部ライブラリで複数バージョンを使い分けたい場合などがあったとする。
唯一のクラスローダしか存在しない場合、FQNが同一のクラスは、一つしか存在することができない。

815:デフォルトの名無しさん
09/11/15 23:08:02
まて、FQNが同一のクラスが同時に複数存在できたりするのか?
ウィザードじゃないから知らないだけかもしれないけど、static変数とか矛盾
してしまうと思うんだが。

816:デフォルトの名無しさん
09/11/15 23:28:29
できる。そもそも同じFQNであれ、ロードされているクラスローダが違えば同じクラスと扱われない。

J2EEやっていれば同一のコンテナ(単一JavaVM)に複数のWebアプリケーションをデプロイして、
それぞれのWebアプリが独自のライブラリ(WEB-INF/lib)を利用する状況を考えて欲しい。
たとえばAアプリはlog4j1.2で、Bアプリはlog4j1.1というのは普通に可能。

それらはThreadに割りつくContextClassLoaderが入れ替わることで(実装者が意識しないかたちで)実現されている。

817:デフォルトの名無しさん
09/11/15 23:29:07
>>815
できるよ
異なるクラスローダがロードしたクラスは、同じFQNであっても別々
static変数も別々
Classオブジェクトを比較しても一致しない

818:デフォルトの名無しさん
09/11/15 23:31:11
あとたしかinstanceofもキャストも失敗するっけか
あらゆる意味で異なるクラス扱いだったはず

819:デフォルトの名無しさん
09/11/15 23:36:33
Seasarという有名な国産DIコンテナがあって、
それはsmart deployという仕組みで、開発時にhot deployが可能なんだけど、
そのやり方は結構単純で、クラスローダをRequestを受け取るごとに生成・廃棄して、
新規にコンパイルされたClassを都度読み込みさせている。
そのようなやり方をすれば、一度読み込まれたClassでも即時反映が実現できる。

820:デフォルトの名無しさん
09/11/15 23:40:34
なるほど。
URLリンク(d.hatena.ne.jp)
とそのリンク先を見てみた。
システムクラスローダは差し替え可能なわけか。知らなかった。

821:デフォルトの名無しさん
09/11/16 00:06:47
複雑な管理処理を行うベースウェアにはGUIや集中管理する画面って必須かな?
それとも管理するためのAPIだけを提供すれば皆安心?

822:デフォルトの名無しさん
09/11/16 00:20:52
せめて参考GUI実装をソースつきで。凝る必要は一切無し。
あれば使ってもらえるし、出来が気に入らなかったら改造するだろうし。
ソース無くてもjadで見ちゃうけど。

823:デフォルトの名無しさん
09/11/16 00:58:42
なるほどruby的なのか
そりゃそうか

824:デフォルトの名無しさん
09/11/16 02:05:38
初めましてm(_ _)m
JAVA初心者なのですが
JAVA2のSEとMEをインストールしようと思い一通りダウンロードしたんですが、
java_ee_sdk-5_08-jdk-6u17-windows-ml.exe
これ以外はインストール出来ませんでした。
EEに当たるようなんですが、サイトを見直すとSEに該当しているようにもみえます。
しかし次にMEをインストールしようとすると「SEがインストールされていない」とでてMEがインストールされません。

MEがSE1.4?のみに対応している可能性もあるのでダウンロードしようとしたんですが見当たりません。

ですがそれ以前から教則本の付録でついてたj2sdk1.4.1_01(ランタイム?)を使用してます。


パソコンは2000年発売VAIOのXPです。SPをインストールしていません。
(すでにSP1がダウンロード不可のため)

どなたかアドバイス下さい。よろしくお願いします。m(_ _)m

825:デフォルトの名無しさん
09/11/16 02:46:23
こっから落とせば?
URLリンク(java.sun.com)

J2ME時代で環境作りたい場合はこっちから落とす
URLリンク(java.sun.com)


826:デフォルトの名無しさん
09/11/16 02:55:54
>>825解答ありがとうございます。後日、ダウンロード試みてみます。


827:デフォルトの名無しさん
09/11/16 15:12:06
SaxParser#parse(File, dh)は内部でファイルのロック取ってるんでしょうかね?
プロセス間のは(共有ロック)取ってくれてると思って使ってるけど。

スレッド間の排他はユーザがやる必要があるのでしょうか?

828:デフォルトの名無しさん
09/11/16 16:20:57
基本的な質問ですいません。
C言語ソースの移植作業しているのですが・・・。
int a(short b)
{
return b+5;
}

a(50);のように定数を引数にしてコンパイルすると
「a(short) は (int) に適用できません」
とエラーが出てしまいます。
a(50);をa((short)50);のようにキャストすればエラーは無くなりますが、
定数をいちいちキャストするのが面倒です。
キャスト以外に良い方法は無いでしょうか?


829:デフォルトの名無しさん
09/11/16 17:38:52
int型の引数を受け取れる同名のメソッドを作ればよい
int a(int b) { return a((short)b); }
みたいな

830:デフォルトの名無しさん
09/11/16 19:47:26
EJBってどうなの?業務で使ってる?

831:デフォルトの名無しさん
09/11/17 01:06:24
test

832:デフォルトの名無しさん
09/11/17 01:48:17
業務意外じゃEJBを使っているのみたことないな

833:デフォルトの名無しさん
09/11/17 07:46:28
なんか業務でもあえてEJB避けてきたんで...
メッセージングとか一部機能のつまみ食い程度しか使ったことないから、
3.0はいい感じなのか実際に採用してる人たちの実感を聞きたいなと。

834:デフォルトの名無しさん
09/11/17 10:18:39
業務システムでも短納期・低コストが求められているのだから、わざわざEJBでコストをあげる必要はないだろ

835:デフォルトの名無しさん
09/11/17 10:25:03
EJBなんて学者のオナニーだから使わないほうがいい

836:デフォルトの名無しさん
09/11/17 15:36:51
はじめまして、こんにちは
現在塗りつぶしを行うアプレットをアプリに書き換えています
が、なかなか上手くいきません
アプレット/アプリケーション共通プログラムという
URLリンク(www.asahi-net.or.jp)
このサイトの通りに行っているはずなのですが、、、

間違っているところがあれば、アドバイスをお願いします

以下が私のソースです
URLリンク(kansai2channeler.hp.infoseek.co.jp)
サイトの通りに、ExitWhenWindowClosingクラスとAppletFrameクラスは別に作ってあります

837:デフォルトの名無しさん
09/11/17 15:47:43
単純なキーボード入力を出力するプログラムを作成したのですが、特定の文字列を入れると文字化けして出力されてしまいます。
この問題の原因、または解決方法をご存知の方みえましたら教えていただけないでしょうか。

実行環境:windows vista / Eclipse 3.5.1 Galileo Windows 32bit ベース / Pleiades All in One 3.5.1.20090930

コード:
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println(br.readLine());
} catch (IOException e1) {
// TODO 自動生成された catch ブロック
e1.printStackTrace();
}
}
入力:

出力:
�?

838:デフォルトの名無しさん
09/11/17 16:46:00
>>837
キーボードが日本語106キーで認識されて無いのかな。
「む」「ろ」「BackSpace」キー等には気をつけて。

解決策は・・・ドライバがどうなっているかくらいか・・・わかんね。
見当違いかもしれんが参考に。

839:デフォルトの名無しさん
09/11/17 17:05:10
>>838
おお!ありがとうございます。
ドライバ確認してみます。


840:デフォルトの名無しさん
09/11/17 21:53:16
将来的にはEJBが(実質的な意味で)本命のような気がするんだよね。
現状はまだ様子見しつつって感じのようですね。

841:デフォルトの名無しさん
09/11/17 21:56:48
現状で既に活用できるってばさ。
Apache+Tomcatの時代なんて今は昔。
まあ私の周りの話だから他は知らんけど。

842:デフォルトの名無しさん
09/11/17 22:09:55
EJB なんて 10 年前の流行キーワード。今も今後も誰も注目しねぇって。
使えるところで淡々と使われるだけ。

843:デフォルトの名無しさん
09/11/17 22:14:40
うちの周りはTomcat(というかサーブレットコンテナメイン)ばかり。
分散+フェイルオーバーで高可用構成とかでも
業務フレームワーク作りこみで対応してるケースが多い。

EJB3.0はコンフィグ地獄じゃなくてよさそうなんだよね。
軽量コンテナとの境界もあいまいになってるわけで、
そうなると標準化プロセスを経ているEJBのメリットが生きてくるような気がする。

844:デフォルトの名無しさん
09/11/17 22:19:52
スタンダードに載っとかないと保守で首を絞める。
HibernateよりJPAやiBatisを選択するのがいい。

845:デフォルトの名無しさん
09/11/17 22:26:28
だよね。保守はともかく、いまさら新規でHibernateはありえない。
JPAは意識してるけど、使いやすさとパフォーマンスの点でS2JDBCに浮気してたりして。

846:デフォルトの名無しさん
09/11/17 23:06:12
質問させてください
配列名を引数で与えるにはどうしたらいいのでしょうか。

static int[] mkArr(String arrName, int itemNum){
int[] arrName = new int[itemNum];
//このあとはarrName[0]~[itemNum-1]の値をキーボードから
//入力させます
}
この段階で
重複ローカル変数 arrName,
と警告がでます(Eclipse使用です)。

型が String だとまずいのかもしれないかとも思いますが、見当もつきません。

※このメソッドはメインクラスに書く予定です。

レベルが低すぎて申し訳ありませんがよろしくご教示ください。
お願いいたします。

847:デフォルトの名無しさん
09/11/17 23:17:10
引数でString arrNameを宣言してるのに
最初のステートメントでint[] arrNameを宣言してるやん。
質問のわかりにくさからして始めたばかりなんだろうけど。

848:846
09/11/17 23:54:30
>>847
お答えありがとうございます。
お察しのとおり始めたばかりです。

↓こんな感じで呼び出すと

mkArr("arr1",3)
int[] arr1 = new int[3];

となって配列arr1が生成されるのかと思っているのですが
違うんですよね。。
ずっと考えてるのですがわかりません。
ここ読んどけっていうところがあったら、教えていただければ助かります。
よろしくおねがいします。

849:デフォルトの名無しさん
09/11/18 00:03:09
酷すぎる

850:デフォルトの名無しさん
09/11/18 00:03:38
宿題スレをおすすめする。
まず何をするプログラムなのかが分からない。

851:846
09/11/18 00:06:42
>>849-850
スレ汚しすみませんでした。
宿題ではないので、もう少し考えてみます。

申し訳ありませんでした。

852:デフォルトの名無しさん
09/11/18 00:08:32
お前ら厳しいなw

853:デフォルトの名無しさん
09/11/18 00:09:49
プログラムの素人であるのは構わない。そういうスレだ。
だが質問の素人であってはいけない。

854:デフォルトの名無しさん
09/11/18 00:13:18
分かりやすく伝えるって結構高度だと思うが

855:デフォルトの名無しさん
09/11/18 00:17:34
>>846
自分も初心者なんですが、
static int[] mkArr(int itemNum){
int[] arr = new int[itemNum];
//入力
return arr;
}
メソッドをこんな感じにして

int[] arrName = mkArr(itemNum);
呼び出し側で、受け取ればいいのでは?
arrNameは受け取りたい配列名で。

たとえば、
String str = "arr";
int[] str = new int[5];
とやっても、arrという名前のint型の配列は
出来ないかとw

856:デフォルトの名無しさん
09/11/18 00:19:25
ああ、呼び出し方がおかしいですね。
すいません。

857:デフォルトの名無しさん
09/11/18 00:35:34
>>846
なかなか独創的なコードだけど、以前はどの言語をやってたの?

858:デフォルトの名無しさん
09/11/18 01:27:56
識別子に表情以上の物を求めるのが素人
識別子に_だけでプログラムするのが変態
識別子にg,o,t,oしか使わないでコーディングするのも変態

859:デフォルトの名無しさん
09/11/18 01:58:04
識別子に$とか付けるのは宗教

860:デフォルトの名無しさん
09/11/18 02:35:54
>>845が「新規でHibernateはありえない」って言ってるけど、なんで?
JPAやiBatisと比べてどの辺がありえないの?

861:デフォルトの名無しさん
09/11/18 03:47:43
標準技術じゃないわりに複雑だからだろ。
JPAとの対比で語ってるからNativeAPIやらHQLでの話なんだろうけど。

862:デフォルトの名無しさん
09/11/18 11:50:27
>>848
Javaとか初心者とか言って質問する前に、変数と関数というプログラムの基礎概念を勉強してこい

863:デフォルトの名無しさん
09/11/18 22:25:58
JWebPaneっていつから使えるようになるんだろう

864:デフォルトの名無しさん
09/11/18 22:50:16
JPAは当然ながらORM標準であることが利点。
ORMの業務適用要件は2.0の悲観的ロックサポートで満たしたと言ってよい。

iBatisはSQLをガリガリかけて、かつマッピングも楽ちんだから、
Java屋ではない外様がORMのメリットをすぐに享受できるところが良い。

本格的なORMは真の習得に三ヶ月かかると言われてるから、
標準 or 即効性の保守要件にHibernateは引っかからない。

865:デフォルトの名無しさん
09/11/19 01:41:20
JSFを勉強し始めて半年ぐらいの若造です。
■.jspの記述

<h:dataTable var="list" value="#{bean.dataModel}">
<h:column>
<h:inputText value="#{list.text}"/>
</h:column>
 ・・・
</h:dataTable>

みたいなテーブルを表示して入力部を設け、ボタンを押したら値をテーブルの型式で取得したいのです。
bean.dataModelはListDataModelを返します。

beanのスコープはrequestです。
どのように値を取得するのが賢いのか教えて下さい。



866:デフォルトの名無しさん
09/11/19 09:59:11
JAXBでのバインディングって、setとget以外のメソッドが混ざっている
JavaBeans形式以外のオブジェクトでは出来ないのでしょうか?


867:デフォルトの名無しさん
09/11/19 12:36:47
getter と聞くと、手がドリルの青い合体ロボットを想像してしまう僕は異常でしょうか?

868:デフォルトの名無しさん
09/11/19 16:24:49
配列([])の中身を調べる文字知りませんか?

例えばstring[1]だとしたら1と読み取ってくれるやつです

869:デフォルトの名無しさん
09/11/19 16:26:27
ねぇよ

870:デフォルトの名無しさん
09/11/19 18:12:31
文字ってなんだよ

>string[1]だとしたら1
も曖昧で分からん。

871:デフォルトの名無しさん
09/11/19 18:59:39
>>866
@XmlTransientでOK

@XmlAccessorType(XmlAccessType.FIELD)なら
マーシャリングしたくないフィールド(メンバ変数)を
transientにしとけばOK

872:デフォルトの名無しさん
09/11/19 19:08:06
というか、JAVAで配列使うな

873:デフォルトの名無しさん
09/11/19 20:01:30
>>872
なんで?

874:デフォルトの名無しさん
09/11/19 20:11:04
List使った方がいろいろ操作出来る

875:806
09/11/19 20:13:27
806のことも思い出してあげてください

>>873
javaには優秀なコレクションフレームワークが標準で装備されているので、配列ではなくそっち使おうぜ。
>>872はそういいたいのだと思う。
配列で十分だと思ったら、何でもかんでもコレクション使うことは推奨しない。


876:デフォルトの名無しさん
09/11/19 20:14:14
配列は使うな云々って本があったなぁ

877:デフォルトの名無しさん
09/11/19 20:15:11
配列を使うメリットはあまりない

878:806
09/11/19 20:19:30
配列を使うメリットは、高速かつメモリ消費が最小であること。

ローカルなメソッドの内部処理に用いる場合は、配列もありだと俺は思う。

おさらいだけど
配列:速度良 メモリ小 操作ミス多
コレクション:速度どうかな メモリ最小とはいかない 操作簡単安全

879:デフォルトの名無しさん
09/11/19 20:27:45
速度とかメモリとかにこだわる層はわざわざそういうこと言われなくてもわかってるはずだから、
とりあえず「ArrayList使っとけ」でおk

880:デフォルトの名無しさん
09/11/19 20:32:08
質問です。
HttpURLConnectionを使ってhttp通信を行います。
yahoo!などのサイトで接続した結果、問題なく接続し、情報を取得する事が出来ましたが、
問題のサイトに接続したところjava.io.FileNotFoundExceptionで弾かれてしまいました。
該当URLはブラウザでアクセスしたところ問題なく表示出来ます。
(パスワードやログインを要求するようなサイトではありません)
恐らくサーバー側で何かを見ているのではないかと思うのですが、
サーバーがチェックしてそうな項目を教えては頂けないでしょうか。

現在設定しているRequestPropertyは
Host、User-Agent、Accept、Accept-Language、
Accept-Encoding、Accept-Charset、Keep-Alive、Connection
で、値はブラウザで該当URLの確認ができた時と同じ値をセットしています。

881:デフォルトの名無しさん
09/11/19 20:33:56
LinkedListのメリットがよく分からない。
リストの半ばの挿入削除が速いって理屈は分かるが、
その場所に辿り付くまでは結局イテレートしてるわけで。

882:デフォルトの名無しさん
09/11/19 20:36:40
404 や 503 じゃないのならプログラム上のミスで、相手サーバーじゃないんだろうな。

883:デフォルトの名無しさん
09/11/19 20:42:19
>>880
お前モペ吉か?

884:デフォルトの名無しさん
09/11/19 20:45:43
>>881
メリットはあんたが言ってる通りじゃねーかw

885:デフォルトの名無しさん
09/11/19 20:46:44
ポインタ辿るだけだしなぁ。System.arraycopyで後ろ詰めるよりは速い。
でもgetFirstなどからして、stackとかqueueに特化した使い道が一番。

886:デフォルトの名無しさん
09/11/19 20:58:49
LinkedListは参照の数珠繋ぎだから、要素の最初から最後まで順番にアクセスするなら
ArrayListよりも速いはず。逆に、要素の~番目みたいなアクセスは破滅的に遅いと思う。
ランダムアクセスしない&削除と挿入が頻繁、ならむしろLinkeListの方が良いと思います。

ところで質問なのですが、
Javaで参照カウンタみたいな仕組みを実現したいのですが、なにか良い方法はないでしょうか。

887:デフォルトの名無しさん
09/11/19 21:01:58
さっきから「メモリ効率」「速いだろう」「思います」とかばっかりだけど、それじゃいつまでも上達しないだろうな。

888:デフォルトの名無しさん
09/11/19 21:03:54
>>886
staticな変数を持って、
コンストラクタ内でインクリメント
ファイナライズ内でデクリメント

いい方法ではないが、これしか思いつかなかった。

889:デフォルトの名無しさん
09/11/19 21:04:08
>>882
404や503にはならないのですが
そのサイトではRequestPropertyを全て外すと403になります
またyahoo!などのサイトで接続した結果、問題なく接続し、情報を取得する事が出来ました

890:デフォルトの名無しさん
09/11/19 21:04:17
>>886
でも実際試してみると ArrayList は LinkedList より結構速い

891:デフォルトの名無しさん
09/11/19 21:08:10
>>887
メモリ効率は上達にはかかせないだろ。

892:デフォルトの名無しさん
09/11/19 21:08:21
ArrayDequeueやConcurrentLinkedQueueがあるから尚更使い道が少なくなってきた。

893:デフォルトの名無しさん
09/11/19 21:12:27
うお。なんだ。
Java1.4時代に迷い込んじまったw

894:デフォルトの名無しさん
09/11/19 21:14:09
メ…メモリ効率だってよっwww

895:デフォルトの名無しさん
09/11/19 21:14:38
Dequeueは6から、Queueは5からなんだが。

896:デフォルトの名無しさん
09/11/19 21:23:08
>>894
おかしいと思う理由を書けよw
荒らしか?

897:デフォルトの名無しさん
09/11/19 21:28:54
メモリ効率とか無駄のないアルゴリズムを考えられない奴っているんだよ。
コーディングする楽しみなんてないんだろうな。

898:デフォルトの名無しさん
09/11/19 21:33:20
てかオブジェクト指向ってそういうもんだから構わんよ。
パフォーマンスの80%はソースコードの20%に依存するって奴だ。
裏を返せばソースコードの80%は保守性のが大事ってこと。

899:886
09/11/19 21:43:11
>>888
レスありがとうございます。
その方法だと、そのクラスのインスタンスがいくつ存在するか、
ということがわかりますね。参照カウンタと近い気がするので参考にさせていただきます。

900:デフォルトの名無しさん
09/11/19 21:50:44
メモリ効率を考えてコード書いて
数ヵ月後に、俺なんでこんなややこしいコード書いてんだ?
もっとeasyでいいやんって書き直している途中で
そういうコード書いてた理由を思い出す

revert

901:デフォルトの名無しさん
09/11/19 21:54:04
>>896
荒らすな鼻糞

902:デフォルトの名無しさん
09/11/19 22:02:42
複雑なモデルを複雑なコードで実装してるうちは素人

903:デフォルトの名無しさん
09/11/19 22:48:25
早く仕上げてボトルネックをテストしようぜ

904:806
09/11/19 22:51:41
>>886 何するのかわからないけど、ウィークリファレンス(弱参照)とかの機能もあるんだぜ。

俺の質問って場違いなの?()涙

905:デフォルトの名無しさん
09/11/19 22:55:29
JLayerMEでも使ったら>MP3

906:デフォルトの名無しさん
09/11/19 22:56:02
俺も興味あるな。Javaで参照カウンタが必要ってどんな処理?

907:デフォルトの名無しさん
09/11/19 23:30:01
>>904
弱参照と参照カウンタは関係ないだろ。

908:デフォルトの名無しさん
09/11/19 23:31:52
おまえらって普通のプログラミングはちょっとはわかってるっぽいけどdrawLineとかdrawOvalはわかるか?

909:デフォルトの名無しさん
09/11/19 23:34:23
>>908
知らないなら知らないって言えよw

910:886
09/11/20 00:06:24
>>906
長い上に上手く説明できませんが、
あるサイトを参考に、IDなどを通じてグローバルに参照できるオブジェクト群を管理するクラスを作ろうとしています。
このクラスは、外部からの要求に応じてオブジェクトを生成し譲渡するのですが、その生成したオブジェクトは自身のフィールドに保持します。
そして次に同じ要求があった場合は、新たに生成せずに保持していた同じオブジェクトを渡します。
一つのオブジェクトを不特定多数の外部で共有するためです。
問題は、保持しているオブジェクトが管理クラス以外のどこからも参照されなくなった時は、それを削除せねばなりません。
そのタイミングを知るために参照カウンタが必要なのです。

>>904
弱参照は使ったことないのですが、上記のような場合でもGCしてくれるものなのでしょうか。
Reference関連は勉強不足で何もわかりません。その辺も調べてみます。

911:デフォルトの名無しさん
09/11/20 00:15:02
ある書籍のwait/notifyのメカニズムの問題で
正解が下記のようになってるんですが、
consumerメソッドでwaitの下の
isFlag=falseがどうしても理解できません。
ここでfalseを代入してしまうと
上のproduceでisFlag=trueでnotifyを呼びだし
waitを呼び起こしてもすぐにまたfalseになり
いつまで経ってもwhileから抜け出せないと思うんですが・・・
私の見解が間違っているんでしょうか?

class MySync{
boolean isFlag = false;
public synchronized void produce(){
isFlag = true;
notify();
}
public synchronized void consumer(){
while(!isFlag){
try{
wait();
isFlag = false;
}catch(Exception e){}
}
}
}


912:デフォルトの名無しさん
09/11/20 00:19:13
>>910
昔、そういうの使ったことあるよ。

FacesContext.getCurrentInstace().getExternalContext()

の下にあるメソッドだったと思う。任意のクラスに対する、別クラスからのバインディングを取り扱う道具があるはず。

913:デフォルトの名無しさん
09/11/20 00:20:05
>>910
なるほど・・・
シングルトンを強制しつつも、参照されなくなったらGCに回収させるのですね。

914:デフォルトの名無しさん
09/11/20 00:22:24
なるほど。要はキャッシュの仕組みが作りたいわけね。

その用途ならソフト参照がいいかもね。
実際のところ弱参照は相応のライフサイクルが期待される
オブジェクトのキャッシュ方法としては適していない場合が多い。

URLリンク(www.ibm.com)
あたりを読んでみるとわかりやすいよ。

915:デフォルトの名無しさん
09/11/20 00:25:57
ウィークもいいけど、参照カウンタなんかCOMっぽくていいかもw
ほっといた方がよさそうだww

916:デフォルトの名無しさん
09/11/20 02:35:06
いちいちaddRefとかもういやだお

917:デフォルトの名無しさん
09/11/20 02:41:51
>>916
もしc/c++でもjvmでも、gcとかautoリソース解法とかの概念を使えるならそれをデストラクタに入れとくといいよw

918:デフォルトの名無しさん
09/11/20 06:37:05
項目と値があるTableをjavaで扱う時、
CollectionInterfaceか配列どのような方法を使うのがいいのでしょうか?

Tableからの情報を使って、別のTableの中から同じ文字列を持つものを検索したいと考えています。
ArrayListの二次元配列で作っていたのですが、
うまくピンポイントの情報が取得できません。
Array.get(int )はObjectのため、ArrayListのように指定しての取得ができないように思われます。

まだまだ勉強不足で見当違いの事を書いているのかもしれませんが、
それも含めてご指摘ご意見頂ければと思います。

よろしくお願いします。

919:デフォルトの名無しさん
09/11/20 08:37:57
>>918
HashMap を使わない理由は?

920:デフォルトの名無しさん
09/11/20 08:45:52
なにこのデジャブ

921:デフォルトの名無しさん
09/11/20 11:47:18
>>911
お前が正しい
そんな本は窓から投げ捨てろ

922:デフォルトの名無しさん
09/11/20 14:09:16
なんか、Javaの技術で面白ものってないですか?

面白いサイトとか本とか教えてくれるとありがたいっす。
今、経理やってるんだけど、2年くらいJavaやってました。

久しぶりにJavaやりたくなったんです。

よろしく><;

923:デフォルトの名無しさん
09/11/20 14:10:24
iTextとかおすすめ
PDF作れる
WebならApache

924:922
09/11/20 14:21:01
>>923
ありがとう。もう両方やったんです><;

J2EEの青い分厚い本でも今からかってこよっと・・あれなら、新しいEJBとか載ってそうだ。

925:デフォルトの名無しさん
09/11/20 17:10:57
Web系ならWicketとか

926:886
09/11/20 20:01:26
>>914
リンク先参考になりました。
有難うございます。

>>922
JOGLかProcessingはいかがでしょうか。
ゲームやプログラミングアートに興味があれば是非。

927:デフォルトの名無しさん
09/11/20 20:06:54
Javaの長所と短所を教えてください。

928:デフォルトの名無しさん
09/11/20 20:20:50
長所:Write Once, Run Anyware.
短所:リッチクライアント周りでは↑が嘘になる

929:デフォルトの名無しさん
09/11/20 20:21:37
Anywhere.だた。恥ずかし-

930:デフォルトの名無しさん
09/11/20 20:33:18
長所
 ともかく色々なプラットフォームで動く
 マニアックでない素直なOO言語
 強い型付け
短所
 玉虫色器用貧乏GUI、SWTなんてネイティブ移植しなけりゃ動かないし
 強い型付け


931:デフォルトの名無しさん
09/11/20 20:39:31
Map<String, ? extends MyInterface> map = new HashMap<String, ? extends MyInterface>();
これには閉口する。

var map = new HashMap<String, ? extends MyInterface>();
ってならんかな。提案レベルならすでにJSRにあるんだとは思うが。

932:デフォルトの名無しさん
09/11/20 20:40:55
そんなあなたに、はいScala

933:デフォルトの名無しさん
09/11/20 20:47:47
>>931
逆はjdk7からできるようになる予定だよ。

Map<String, ? extends MyInterface> map = new HashMap<>();

934:デフォルトの名無しさん
09/11/20 20:51:21
>>933
なるほど。IDEとの連携を考えてもそっちのが柔軟か。

935:806
09/11/20 22:06:28
>>905
ソースさっくりみたけど DLLたたいてるね。
携帯でMP3って意外と敷居高いな・・・

936:デフォルトの名無しさん
09/11/20 22:12:47
最新のJAVA2EEをインストールして暫くしたらパソコン起動するたびにコマンドプロンプトが起動しSUNのフォルダのdomain01内にログを作り出します。
サーバー?なのか不明なんですが、これ止めるには何処をどうしたら良いでしょうか。
よろしくお願いします。

937:806
09/11/20 22:13:08
>>886
RMIとか使ってプロセス間通信でもしてるわけじゃないのかな?
単独の仮想マシン上で動いてる場合、参照されなくなったらGC対象になるのはご承知だろうし。

弱参照しているばあい、他の参照がないとGC対象になるってだけなので、今回の件には使うところはないかも。
ちょっと違うことを想定してしまったので、わすれてOK(弱参照


938:806
09/11/20 22:26:26
長所と短所の話は 俺の好きな話題だったので・・・

長所
メモリ開放処理が自動なので簡単である。
そのためソースコードはCなどと比べると、とてもシンプルになり可読性がよい。
java専用高性能エディタが存在するため、生産性は高い(キリ
標準のライブラリがこれでもかってくらいそろってる。

短所
メモリ開放処理は自動だが、オブジェクトの開放契機などに注意を払わなくなるため。
イージーミスでメモリリークが発生する。
javaSE javaEE と javaMEは別物過ぎる、携帯電話などの端末でもSEで書いたものが動くことを期待する。



939:デフォルトの名無しさん
09/11/20 22:52:32
JLayerMEがDLL叩く?
そんなもん叩いてないがMMAPIのフルセットが実装されてないとJLayerMEは動かないからMIDPベースでは無理。


940:デフォルトの名無しさん
09/11/20 22:55:54
>>938
>>短所
>>メモリ開放処理は自動だが、オブジェクトの開放契機などに注意を払わなくなるため。
>>イージーミスでメモリリークが発生する。
あんまり見たことないけどね・・・
どんなの?

941:デフォルトの名無しさん
09/11/20 23:04:30
独自に配列スタックを作ろうとして、popされた時にnullで掃除しない場合とかか?
しかしArrayDequeueとか適切なクラスがあるしなぁ。

942:918
09/11/20 23:24:26
>>919
ありがとうございます。
ArrayListにHashMapを格納することで、解決できました。

943:デフォルトの名無しさん
09/11/20 23:28:20
>>941
うん。そういう教科書とかに載ってそうなのはわかるんだが、
実装レベルのイージーミスで起こるメモリリークってどんなの?


944:デフォルトの名無しさん
09/11/21 01:17:22
ライブラリにポインタ渡す時はライブラリを信頼しきってるから
あとでしっぺ返しされると超こまる

945:デフォルトの名無しさん
09/11/21 01:23:54
>>943
staticな変数にデカいコレクション突っ込んだまま放置してメモリを馬鹿食いするとか?
メモリリークというのは正しくないけど、症状はメモリリークに近いな。

946:デフォルトの名無しさん
09/11/21 01:53:48
Tomcatのコネクタか何かがログをそんな感じでほったらかしにしてたってのがあったな

947:806
09/11/21 14:30:28
イージーミスの話だけど
コレクションにぶち込みっぱなしで放置とか、そんなレベルの実装ね。
現実あったはなしだから、ソースレビューとかちゃんとやろうね


948:デフォルトの名無しさん
09/11/21 16:49:58
JTableがクリックされた時に、選択されている行の情報を取得するにはどうすればいいのでしょうか?

949:デフォルトの名無しさん
09/11/21 17:20:07
すみません、コンパイルできるんですが何も表示されません、助けてください
見にくいかと思いますが、お願いします
//<applet code="SnakeProg2.class" width="300" height="300"></applet>
import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class SnakeProg2 extends JApplet implements KeyListener { int actiontype = 0, count = 0; int x[] = new int[99]; int y[] = new int[99];
public void init()
this.addKeyListener(this); this.setFocusable(true);
}
public void paint(Graphics g) {
super.paint(g);
x[count] = 0; y[count] = 0;
for (count = 1; count <= x.length; count++) {
switch (actiontype) { case 0: count--; break; case 1: x[count] = x[count-1] + 10; g.drawPolyline(x, y, count); break;
case 2: y[count] = y[count-1] + 10; g.drawPolyline(x, y, count); break;
case 3: x[count] = x[count-1] - 10; g.drawPolyline(x, y, count); break;
case 4: y[count] = y[count-1] - 10; g.drawPolyline(x, y, count); break; } } }
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_RIGHT) {
if(x[count] == 300 || count == 100) {
actiontype = 0; } else {actiontype = 1;}
} else if(keyCode == KeyEvent.VK_DOWN) { if(y[count] == 300 || count == 100) { actiontype = 0; } else { actiontype = 2; }
} else if(keyCode == KeyEvent.VK_LEFT) { if(x[count] == 0 || count == 100) { actiontype = 0; } else { actiontype = 3; }
else if(keyCode == KeyEvent.VK_UP) { if(y[count] == 0 || count == 100) { actiontype = 0; } else { actiontype = 4; } } repaint(); }
public void keyTyped(KeyEvent e) {
public void keyReleased(KeyEvent e) { }}

950:デフォルトの名無しさん
09/11/21 17:33:59
>>948
public void mouseClicked(MouseEvent e) {
int idx = tbl.rowAtPoint(e.getPoint());
}
あとはお好きに。

951:デフォルトの名無しさん
09/11/21 17:49:53
>>948
JTableで文字列をクリックした場合だけセルを選択状態にする
URLリンク(terai.xrea.jp)

MouseInputAdapter ma = new MouseInputAdapter() {
public void mousePressed(MouseEvent e) {
Point pt = e.getPoint();
int row = table.rowAtPoint(pt);

952:デフォルトの名無しさん
09/11/21 17:53:13
>>949
不味い点が多すぎて。
とりあえず初期状態でpaint()が動くと、countでのforループの中でcount--して無限ループ。

953:デフォルトの名無しさん
09/11/21 17:57:00
ん、踏んだか。次立ててくるね。スレ立てるのひさびさだな。

954:デフォルトの名無しさん
09/11/21 18:00:17
次は

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


955:デフォルトの名無しさん
09/11/21 18:01:20


956:デフォルトの名無しさん
09/11/21 18:05:44


957:デフォルトの名無しさん
09/11/21 18:18:26
>>949
わからん

958:デフォルトの名無しさん
09/11/21 18:20:52
>>950-951
とんくす

959:デフォルトの名無しさん
09/11/21 18:27:50
誰か2chにソース貼るとき整形するツール作れよ


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