[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/30 12:48 / Filesize : 271 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:52:10 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド115【歓迎】
pc11.2ch.net/test/read.cgi/tech/1210529127/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

560 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:50:21 ]
>>85-105

なんか爆笑した。>>85の言動にw

>>109
そこにJavaの格言とJavaの鉄則が入ってるのが理解できない。
あの本はJava5以前の本だぞ。Java5が出てから役に立たなくなったテクニックやTipsが
けっこうあるので今ではおすすめしがたいな。鉄則のほうはそこそこ役に立つが、
それだったらEffective Javaのほうが全然役に立つ。

561 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:51:04 ]
そクマー

562 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:56:02 ]
>>121
Java+謎、落とし穴を書いた前橋 和弥よりはましではないかと。
あれは酷かった。本に愚痴ばかりかいて、今となっては解決済みの問題が
あたかも解決されていないかのような書き方が、初心者に誤解を与えかねない本だな。
アンチがあれを読んで昔飛びついていた記憶がある。

563 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:57:58 ]
>>134
> ただM$の都合で、変な改定されるのが怖いんです。(J++とかw)

そのくせ、こんなこと言ってるよな。VBにしておけよ電波。

> どうしてjavaは初心者にこうも厳しいんですか?
> 例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。
> VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。
> これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。
> とくかく情報の出し惜しみはやめてほしいな。
> なんで、java弄るひとって性格の悪い人がおおいんだろ。
> java関係の本でもろくなのないし。


564 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:00:22 ]
>>141
> LinuxではC#動かないでしょう?
Monoで動く。

> .NETははっきりいって糞くらえですよ。(食事中のかたすんません)
VB忠なのに。

565 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:01:37 ]
>>146
> ふりだしに戻る・・・
> ⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。
>
> 自分なりの分析ですが
> java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。
> もしくは、いま勉強中で資格とって就職しようとしている人々。
> したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。
> そんなエゴが見え隠れしている。

一昔前のC言語厨やUNIX屋じゃあるまいし。
このスレ見ればわかると思うが、素人がよく質問しに来ているが。

566 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:04:05 ]
>>154
たいした警鐘に感じないなあ。
Javaの情報は10年前に比べれば腐るほどあるし
ライブラリもたっぷりあるし書籍もネットも充実して情報には困らないんだよなあ


567 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:05:19 ]
この使い方の意義が分からん漏れはヴァカですか?
StringBuffer sb;
sb.append("Hello, ").append("world!!");


568 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:15:01 ]
>>567
意味じゃなくて意義となればワンライナーと呼ばれる人々が喜ぶ



569 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 19:08:36 ]
>>549
validateを交換可能にしたいんでしょ?
まあ2のTemplateMethodパターンかなあ

570 名前:デフォルトの名無しさん [2008/06/24(火) 19:09:11 ]
java.awt.FileDialog上のキー操作、マウス操作をフックしたいのですが、
実装方法を教えてください。

フックしたい目的は、右上の×ボタンとESCキーによるキャンセル抑止です。
processEventメソッドをオーバーライドしたり、
リスナを追加してもどうもフックされていないようです・・。

571 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 19:19:11 ]
>>567
それだったらStringBufferをStringBuilderに変えて
StringBuilder sb = new StringBuilder();
sb.append("Hello, world!!");
したkなる。

new忘れていたようなのでつけておいた。



"Hello, "と"world!!"が文字リテラルではなく変数や定数だったら
意義はある。

572 名前:デフォルトの名無しさん [2008/06/24(火) 19:45:18 ]
5万ぐらいの激安のノートパソコンで
勉強できる?

573 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:05:32 ]
>>569
ありがとうございました。
その方向で設計してみます。

574 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:42:39 ]
JMFを使ってキャプチャした画像→
 JNIを通してOpenCVに送り顔認識→
  認識した顔の中心座標を返す

といったプログラムを書こうとしていますが、そもそもこんなことは可能なのでしょうか。

別にJNIを使わなくても顔認識ができればいいのですが、
OpenCV程度の顔認識精度があるJAVA用ライブラリなどあれば教えて頂きたいです。

575 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:56:56 ]
>>572
何が?

576 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:59:29 ]
>>572
勉強するだけなら10年前のでもできるだろ
何を勉強するのかしらんけど

577 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:00:01 ]
4月からIT企業に入社したヒヨッコです。いろいろ勉強のために調べていたらどうしても理解できないソースを見つけたので質問に来ました。
インタフェースの中にある以下のようなソースなんですが

public interface IntComparator{
public static final IntComparator
NATURAL_COMPARATOR = new IntComparator(){
public int compare(int i1, int i2){
return
i1 < i2 ? -1 :
i1 > i2 ? 1 :
0 ;
}
};
}
出典:ttp://mitv2.net/algorithm/sort1.html#IntComparator

1.「new コンストラクタ{メソッド名(引数){メソッド定義}}」という書式はこの他にも見かけたのですが、
これはこれから生成するインスタンスに含まれるメソッドを定義する構文という理解で正しいのでしょうか?また、その場合このメソッド定義はどのインスタンスに対して有効なのでしょうか?
(クラス定義と同じでこれ以降同じクラスから生成するインスタンス全てに有効?それともここで生成するインスタンスのみに有効?)

2.メソッドを定義する構文であるとすれば、抽象メソッドしか持たないはずのインタフェース内でメソッドを定義していることになります。
Eclipsにコピペしてみてもコンパイルエラーは発生しないようですが、本当にこのようなことが許容されるのでしょうか?

長文になってしまいましたが、よろしくお願いします。

578 名前:577 mailto:sage [2008/06/24(火) 21:01:02 ]
インデントきえたーーー

読みにくくてスイマセン…出典元を見ていただいたほうがいいかも知れません…



579 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:04:21 ]
>>578
専ブラならポップアップで見てみ

580 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:00:48 ]
>>577
それは匿名内部クラス、あるいは単に匿名クラス、もしくは無名クラスなどという。
指定したクラスかインタフェイス(その場合はIntComparator)を継承・実装している名前のないクラスを定義してnewする。
定義したメソッドは、そこで生成するインスタンスだけのもの。

581 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:09:13 ]
>>577
1回限りしか必要のないクラスの名前をわざわざ付けて名前空間を汚す代わりに
名無しのクラスからインスタンスを生成することができる。

書式的には、
new 親クラス(親クラスのコンストラクタの引数) { メソッド定義 }
みたいな感じ。

名前がないので、新しいメソッドを定義してもクラスを明示できないから呼べない。
大抵、親クラスのメソッドのオーバライドしないと意味がない。
クラスじゃなくてインターフェースでもおk

似たようなものに、配列の生成と初期化を同時に行う方法がある。
new int[] { 1, 2, 3, }
とか。
いちいち配列を入れる変数名を用意して名前空間を汚さずとも
そのままメソッドの実引数などに使える。

ただ、見づらいと言う人は多々居る。不毛な論争の種にどうぞ

582 名前:577 mailto:sage [2008/06/24(火) 22:51:54 ]
>>580
>>581
ありがとうございます。
読みながら想像してたのと大体合ってたようで一安心です。

クラスの中でインスタンスをいっぱい(50コとか)作るけど、そのうち1つだけメソッドの中身がちょっと違うときに使ったりするものなんですね。

もう少しこのソースがどんな動きをするのかを考えてみたいと思います。その過程で壁に当たったらまた質問に来るかもしれないので、そのときはよろしくお願いします。

583 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:28:01 ]
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

584 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:22:10 ]
サイズを固定しないJTableを作りたいのですが、
可変長の二次元配列ってどうやって表現すればよいのでしょうか?
一次元でも実現可能なのでしょうが、コードが冗長になりそうで・・・

585 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:29:21 ]
>>584
配列じゃなくてコレクション使ったMODELで

586 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:52:08 ]
>>585
引数がVectorのDefaultTableModelを使うという事でしょうか?

587 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:53:39 ]
javaで図形処理をさせる課題が出て難しく感じたので
これを機に参考書を買おうと思っています。

wiki乗っている「コアJava2 Vol.1 基礎編」が良さそうだと思ったのですが
図形処理関係では他にどういう参考書があるか知りたいので
教えてください。

588 名前:デフォルトの名無しさん [2008/06/25(水) 01:20:12 ]
WebOTXでJavaを利用したアプリサーバを
構築してるんですが、なんというか情報が少なすぎる…
参考書があるか知りたいですが、探し方が悪いのか
丸善とかでは見つからなかった。

WebOTXでJavaをつかったアプリサーバ構築
みたいなテーマの本はないでしょうか・・・



589 名前:デフォルトの名無しさん [2008/06/25(水) 08:08:51 ]
Javaはガベジコレクション等プログラマがメモリを意識しないでいい利点があると聞いたのですが・・・

int[] a = {10, 9, 8, 7, 6}
int[] b = {1, 2, 3}
a = b;

とした時にC言語だとfree?されてないのでメモリが無駄になるのですが、Javaだとどうなるんですか?

590 名前:デフォルトの名無しさん [2008/06/25(水) 08:09:37 ]
↑{10, 9, 8, 7, 6} のメモリ領域が

591 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:23:43 ]
>>589
言語仕様で決まってるのは{10, 9, 8, 7, 6}の配列がガベコレ可能な状態になるってところまで。
どのタイミングで回収されるかは実装依存。

あと、C言語だと、スタックに確保されるんじゃなかったか? それ。

592 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:47:12 ]
指定した番号目の素数を出すにはどうしたらいいですか?

593 名前:デフォルトの名無しさん [2008/06/25(水) 11:49:39 ]
age

594 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:56:34 ]
素数を降順でリストに突っ込んで取だしゃいいだろ。

595 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 11:57:20 ]
>>594
すみません、素数を出すコードがわかりませんので。

596 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:03:16 ]
エラトステネスのふるいでググレ

597 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:06:59 ]
了解

598 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:41:32 ]
数日前にチャート表示のプログラムを相談したものですが、
ttp//plaza.rakuten.co.jp/meime/diary/200603310002
を参考にしてみます。相談に乗っていただきありがとうございました。



599 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 13:42:22 ]
>>594
なんで降順?

600 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 15:10:17 ]
そんなどうでもいいこと聞いてなんになるの?

601 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 15:22:59 ]
普通は昇順(1,2,3,5,7....)で何番目の素数とか言うだろw
降順の素数番目ってどうすんだw

602 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 17:11:11 ]
じゃあ昇順てことで

603 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:27:38 ]
スレ違いかもしれませんが、DoJaのコンソールの

Main :java.lang.NullPointerException Test
java.lang.NullPointerException
at MainCanvas.<init>(+40)
at Test.start(+7)
MainCanvas

このエラー出力の(+40)や(+7)はどういう意味ですか?


604 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:31:26 ]
バイトコードの位置
<init>メソッドの40バイトめとstartメソッドの7バイトめ

605 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:23:38 ]
進むほど↑↑なのが昇順。
進むほど↓↓なのが降順。


606 名前:デフォルトの名無しさん [2008/06/25(水) 21:47:03 ]
自分で使えるAPIをもっと増やしたいと思っている者ですが、みなさんの方でおすすめの本などあるでしょうか?
仕様を見ているだけではなかなか使いこなせず、使用例を見て理解したいと思うんですが、ソースをどこから探せばいいかとよく迷います。
自分のレベルですがJava歴は1年3ケ月、JSP、JSTLのタグを経て、GoFのデザインパターンを現在勉強しています。

ご教授、よろしくお願いします。

607 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:48:08 ]
new コンストラクタ(引数).メソッド(引数)

という構文を見たのですが(左辺には何も無し)、これは
staticでないメソッドを使いたい!でも他に使うものはないからインスタンスを作るまでも無い!
というときにインスタンスを介さずに非staticメソッドを呼び出すものと考えていいのでしょうか?

608 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:48:30 ]
>>605
時間軸で見た前方後方くらいにわかりづらいな



609 名前:デフォルトの名無しさん [2008/06/25(水) 21:59:50 ]
>>607
いや、newでインスタンスを生成してからメソッドを呼んでる形だよ、それは。
つまり
Hoge hoge = new Hoge(param);
Hoge.method(param);
の2行を
new Hoge(param).method(param);
に省略。

610 名前:デフォルトの名無しさん [2008/06/25(水) 22:01:36 ]
ああスマン、上のHoge
hoge.method(param)の間違い。

611 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:12:41 ]
>>577
なんでそんなものを作るのか。

java.lang.ComparableインタフェースとComparable#compareTo()メソッドがあるのに


612 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:15:07 ]
>>589
AtomicIntegerとか使えばいい

613 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:16:18 ]
>>607
インスタンスは必要だが参照として保持する必要がない場合に使う書き方
FileChanel channel = new FileInputStream(file).getChannel();
とかよく使うパターンかね

614 名前:607 mailto:sage [2008/06/25(水) 22:47:43 ]
>>609>>613
ありがとうございます。

内部ではインスタンスは作られているけれど、参照が無いから後から同じインスタンスをいじったりはできないということですね。
いまさらこんなこと聞くのもアレなんですが、Javaで言うところの「参照」というのはCでのポインタみたいなものと考えていいんですよね?
…ちょっと自信がなくなってきた…

>>611
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。

615 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:07:51 ]
>>614
参照はポインタの一種と考えれば、まあ間違いはない。
ポインタで出来ることを全て参照でできないってくらい理解しておけばいいと俺は思う

616 名前:609 [2008/06/26(木) 07:50:26 ]
>>614
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。

参考までに出典を教えて。説明を聞いてもIntegerクラスとのボクシング、アウトボクシングがある5.0以降なら、やはり611の言う通りと思えるので。
ボクシングの説明をただ省きたかっただけなのかもしれないけどね。

617 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 08:02:11 ]
IntComparatorを日本語ページでぐぐったら2003年に書いたページが出てきたけど。
これ1.5より前に書かれてるんだろうから仕方ないんじゃね?

618 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 09:47:01 ]
HtmlURLConnectionを用いてウェブページへのログインを実現させようとしています。
パケットキャプチャして、POSTの方はほぼ完全に一致させ、それに対するサーバーの応答も大丈夫だったのですが、その後こちらがGETするときにはPOSTの時に
URLConnection#setRequestProperty(String,String)で設定していたプロパティが完全にクリアされてしまい、サーバーから403が返ってきます。
具体的には、User-Agentが問題なようです。
GETの時のプロパティを設定するにはどのようにすればよいのでしょうか?



619 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 12:54:34 ]
JMFを使って動画の再生に成功。あとはタイムラインと文字を流すシステムをひっつければニコニコ動画の完成だ!


620 名前:616 [2008/06/26(木) 13:21:43 ]
>>617
おいおい、可能性高くてもWebで同じ名前のソース一つ見つけたからこれのこと言ってんだろってのは無謀だろ。
よしんばほんとにそうだとして、俺を納得させてどうするw
ここは614に「古いコードあてにしないで611の言うこと参考にしたほうがいい。」と言ってやるのが筋じゃないか。

621 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 13:25:43 ]
>>620
ってか、君こそ出典知ってどうするつもりだったん?

622 名前:デフォルトの名無しさん [2008/06/26(木) 14:59:17 ]
メモ帳からデータを読み込むプログラミングを作りたいのですがうまくいきません
以下が私の作成したものです。NetBeansを用いました。
メモ帳の中のデータは
1
2
です。
package javaapplication2;
import java.io.*;
public class Load {
public static void main(String[] args) {
try { //(1)
//(2)Fileオブジェクトの生成
FileReader fr =new FileReader("test.txt");
//(3)Fileオブジェクトの生成
int i,m,s,kai=0;
//(7)読み込みデータがなくなるまで読み込み
while ((i = fr.read()) != -1) {
s=i; //(8)書き込むデータがなくなるまで書き込み
m=i;
kai = s + m;
}
fr.close();
System.out.print(kai);
//(9)読み込みストリームを閉じる
//(10)書き込みストリームを閉じる
catch(IOException e) {
} }}

623 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 16:03:23 ]
>>622
コメントが意味分からないんだが、どうして欲しいんだ?
ついでにそれはメモ帳からデータを読み込むプログラムとは言わないだろw

624 名前:デフォルトの名無しさん [2008/06/26(木) 16:07:41 ]
>>622
どううまくいかないのか、期待したことと起きたことを明記してください。

625 名前:622 [2008/06/26(木) 16:34:45 ]
期待したことは、
1がsに入り2がmに入って、それらが足し算されkaiに3が入り
3が出力されるというものです。
起きた事は
100と出力されました。

626 名前:624 [2008/06/26(木) 16:47:12 ]
>>625
FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
”メモ帳の中のデータ”と言っている(おそらく)テキストファイルの先頭から1バイトづつです。
足す前に System.out.println("i="+i); 等と状況を表示する文を入れて実行し、どんな値が読み込まれているのか確認してみてください。
またどうしてそうなるのか、”メモ帳の中のデータ”をファイルダンプツールで見てみると良いでしょう。

627 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 16:49:32 ]
>>625
e-words.jp/p/r-ascii.html

sには最初'1'、つまり49が入る。
次に復帰改行で13、次に10が入る。
そして最後に'2'、つまり50が入る。

mも全く同じもの入れてるんだから、同じ。
つまり50+50=100が出力されてる。

628 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 17:36:11 ]
>>626
>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。

これは非常に語弊があると思うんだけど。。



629 名前:624 [2008/06/26(木) 17:50:00 ]
私の作成したのもがどのように振舞っているかは、良くわかりましたが、
どのように修正すれば良いかアウトラインが見えないので、
教えてください。

630 名前:626 [2008/06/26(木) 17:51:23 ]
>>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
>これは非常に語弊があると思うんだけど。。

そうでした、FileReaderは文字読みでした。
なので一行でも1バイトでもなく、一文字が正解です。ごめんなさい。

631 名前:630 [2008/06/26(木) 17:54:29 ]
>>629
一行を文字列として読み込むというメソッドを持つクラスがあるので探してみてください。

632 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:07:56 ]
>>622
繰り返しによって合計を取る方法(どう考えても基本です)をおさらいすることも重要かと。

ちなみに、mとかsというのは何かの略ですか?気になる。

633 名前:624 [2008/06/26(木) 18:08:04 ]
>>631
ありがとう

634 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:52:03 ]
pc11.2ch.net/test/read.cgi/tech/1212085079/259
このスレでちょっと出てたのをみて興味がわいたのですが、Javaで配列の要素側から、その要素を含む配列を取得することって出来ますか?

635 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:55:41 ]
基本無理。その要素に、それを含む配列を持たせたらできるけどあほらしいし・・

636 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 19:18:47 ]
質問なんですけど、夏にjavaプログラマのSJC-Pの試験を受けるため勉強してるんですが、
問題集しか購入してなく、用語の解説や流れなどのった教科書が欲しいところなのですが
お勧めの本とかないですか?友達がもってるSCCの教本見たら微妙だったんですよね。
問題集のほう「徹底攻略 Java2プログラマPlatform1.4」の黒本使ってます。
お勧めなどありましたら教えてください。


637 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 20:39:12 ]
質問です。

Java システムアイコンを抽出 / Chat&Messenger
ttp://sattontanabe.blog86.fc2.com/blog-entry-64.html

のサイトで、ウィンドウにドラッグドロップしたファイルのアイコンを取得する
サンプルプログラムが公開されているのですが、このプログラムでは
16*16サイズのアイコンを取得することしか出来ません。

Fileから32*32もしくはそれ以上のサイズのアイコンを取得する方法はありますか?

638 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 21:27:39 ]
>>637
無理っす。



639 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:47:09 ]
メソッド名の書き方について質問です。

メソッド名が長くなるので略して書きたいのですが、その場合大文字小文字の区別はどうするべきでしょうか?

例として
aaaaaBbbbbCcccccDdddd
というメソッド名を短くしてABCDという名前に略すのですが、これだと規約から外れてしまいます。
そこで
1.aBCD
2.abcd
3.aaaaaBbbbbCcccccDdddd(略すべきではない)
4.その他

どれがいいのでしょうか?

640 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 22:53:52 ]
aaaaaBCDとか

641 名前:使用書無しさん [2008/06/26(木) 23:00:45 ]
netBeansとかいまどきのIDE使ったら自動補完してくれるので、後々の読みやすさ
考えたら略さないほうがいいと思うけど。

642 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:18:47 ]
>>639
略し方すらわからなくて人に聞かなきゃいけないレベルなら略さない方が良いと思うぞ。

無意識のうちに>>639が望む回答するように情報隠してる可能性もあるし。
例えば、命名規約のルールだって全部出してるわけじゃないでしょ。

643 名前:使用書無しさん [2008/06/26(木) 23:22:59 ]
634<< 配列よりVectorつかったらどうだ。
class A {
      public B parent=null;
      public void setParent(B parent){
           this.parent=parent;
      }
      public B getParent(){
            return parent;
      }
}

class B extends Vector<A>{
      @override
      public void add( A child){
             child.setParent(this);
             super.add(child);
      }
     public void add(int index,A child){
             child.setParent(this);
             super.add(index,child);
     }
}
こんなもんかな。

644 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:43:35 ]
>>639
長すぎるってのはクラスの設計が良くない兆候。
aaaaaBbbbbCcccccDdddd というメソッドが HogeManagerとかにあるんだろ、どうせ。
HogeAaaaBbbbクラスをつくり、ccccDdddってメソッドを作るような状況な筈

645 名前:デフォルトの名無しさん [2008/06/27(金) 00:05:06 ]
>>624
ファイルからのデータの読み取りにはcsv形式が便利(基本)。(「1,2」とか書いてtest.csvを準備。)
以下はCSVテキスト上で同じ行にある数値の合計を順次算出して別ファイルに集計する例
package javaapplication2;
import java.io.*;
import java.util.*;

public class Load {
public static void main(String[] args) {
//データ格納用Listの準備
List<String[]> list = new ArrayList<String[]>();

try {

FileReader fr =new FileReader("test.csv");
BufferedReader bf = new BufferedReader(fr);

String st = null;
while ((st = bf.readLine()) != null) {
String[] line = st.split(",");
list.add(line);//ファイル上1行の各数値を文字列として格納
}
bf.close();



646 名前:デフォルトの名無しさん [2008/06/27(金) 00:05:38 ]
//計算結果データ格納用Listの準備
List<Integer> result = new ArrayList<Integer>();
int sum = 0;
for(String[] values: list){
for(String value: values){
int num = Integer.parseInt(value);//文字列を数値型に変換
sum += num;//同じ配列内の値の合計値を求める
}
System.out.println(sum);
result.add(sum);//合計値を格納
sum = 0;
}

FileWriter fw = new FileWriter("result.csv");
PrintWriter pw = new PrintWriter(new BufferedWriter(fw));

for(Integer val: result){
pw.println(val);
}

pw.close();


}catch(IOException e) {
e.printStackTrace();
}
}
}

647 名前:639 mailto:sage [2008/06/27(金) 00:11:41 ]
レスどうもです。
今iアプリを作成してて複数単語を繋げて長くなったら打つのが面倒だから略して書けないか?
その場合どうするべきか?というのを軽く疑問に思っただけだったので、変な例を出してしまいましたが、
それがいけなかったようですので実際に作っているのを出してみます。

ダーツゲームを作成しているのですが、ゲームルールとしてスーパー・ラウンド・ザ・クロックというのがあります。
ルールクラスの中にスーパー・ラウンド・ザ・クロックメソッド(SuperRoundTheClock)を作るのですが、
この場合どうするべきか?というのが知りたかったのです。

ちなみに、SuperRoundTheClockぐらい打てよ!というのは無しの方向で・・・。
より長いものが出てきた場合に参考にしておきたいので。

648 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 00:17:54 ]
今どき補完できるエディタ使おうよ



649 名前:使用書無しさん [2008/06/27(金) 00:19:47 ]
>>647それjavaの質問というよりセンスの問題じゃねえ?
昔cobolやってたころなんか母音略して子音だけで名づけてたな
sprRndTheClckなんてな..

650 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 00:23:43 ]
>>647
その場合、RuleクラスのサブクラスとしてSuperRoundTheClockRuleを作成するのが定石だと思う。
なので、メソッド名は同じになりオーバーライドすることになる。

651 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 00:28:29 ]
>>647
頭字語で補完してくれるよ、最近のIDEは。
Eclipseの場合だと、sRTC で補完すると superRoundTheClock() が出てくる。
重複するものがなきゃもっと短かくてもOK。
あと、Javaではメソッド名の先頭は小文字な。

652 名前:639 mailto:sage [2008/06/27(金) 01:32:47 ]
開発環境が固定されていないため(自宅と学校で学校の中でもいろんな場所でやってる)エディタ変更は厳しいです。
今は全マシンにインストールされてるエディタがあるのでそれを使っています。
今後は略さずに補完機能のあるエディタを使って開発する事がベストということですね。

>>650
上の例で突っ込まれそうな予感はしてましたが、突っ込まれてしまいました。
これはRuleクラスでメンバと抽象メソッドを作ればよいということでいいんでしょうか?




653 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 01:51:06 ]
>>652
そのとおり。ストラテジーパターンで。
感覚は掴めていそうに見えるから、ググって実装例を見てみるといいと思う。

もっとも、ルールが2種類しかないとか言うなら、デザパタを適用するまでも無いけどね。

654 名前:639 mailto:sage [2008/06/27(金) 02:09:48 ]
>>653
ルールは追加する予定ではいますが、時間の都合上、最悪superRound・・・だけというのも有り得ます。
が、勉強のためにそれでやってみようと思います。

655 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 06:32:30 ]
>>635
ありがとうございます

656 名前:デフォルトの名無しさん [2008/06/27(金) 15:32:50 ]
JSFでSSLは実現できますか

657 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 16:09:57 ]
JDBCのresultsetのgetObjectで取得したデータの
型を取得する方法をご教示ください。

やりたいことは
resultsetのgetObjectによって
取得されたデータで作成された
ArrayList内データをcsvに出力する汎用的な
メソッドを作成しています。

そのArrayList内のデータで、文字型なら「"」で
くくりたいと考えています。

public void createCSV(List table) {
 //tableはgetObjectで取得したデータが渡される。
 for (int r = 0; r < table.size(); r++) {
  List rec = (ArrayList)table.get(r);
  for( int c = 0; c < rec.size(); c++ ) {
  //ここでrec.get(c)のデータ型を知りたい。
 }
・・・
}

658 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 16:13:48 ]
>>657
if (rec.get(c) instanceof String) {
...
} else {
...
}



659 名前:デフォルトの名無しさん [2008/06/27(金) 16:15:55 ]
getClass().getName()
の方が早くね

660 名前:デフォルトの名無しさん [2008/06/27(金) 16:24:39 ]
>>658-659
即レスでありがとうございます。
無事やりたいことができました。
勉強になりました。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<271KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef