★★Java質問・相談スレッド146★★
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/06/26(日) 09:36:37.71JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
★★Java質問・相談スレッド145★★
http://hibari.2ch.net/test/read.cgi/tech/1306857184/
次スレは>>950あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
2011/06/26(日) 09:40:15.24■ AWT と Swing は --
Java低速GUI Swing 9
http://hibari.2ch.net/test/read.cgi/tech/1261232019/
■ SWT は --
Java 高速GUI SWT 3
http://hibari.2ch.net/test/read.cgi/tech/1164877399/
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part22
http://hibari.2ch.net/test/read.cgi/tech/1295766416/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
http://hibari.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
【Google】Androidアプリ作成part8 ※ dat 落ち
http://hibari.2ch.net/test/read.cgi/tech/1297616354/
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 70 ★★ ※ dat 落ち
http://hibari.2ch.net/test/read.cgi/tech/1300067785/
0003デフォルトの名無しさん
2011/06/26(日) 09:42:37.92NetBeans Part6
http://hibari.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
clipse統合M30【Java/C++/Ruby/Python/Perl】 ←検索にかからなかったので下のスレが立て直したスレッド
http://hibari.2ch.net/test/read.cgi/tech/1280027133/
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
**** 開発環境が必要の場合は ****
■ J2SE 5.0 (1.5.0)
http://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
http://java.sun.com/javase/ja/6/
■ Java SE 7(Early Access)
http://jdk7.java.net/download.html
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
http://www.java.com/ja
0004デフォルトの名無しさん
2011/06/26(日) 11:26:03.77問題
----------
疑似乱数を生成する java.util.Random クラスを使って、占いを行う Fortune クラス を作りなさい。
fortune メソッドを作成し、そのメソッドに String クラスのインスタン スを渡せば名前占いを、
また整数 (int) を渡せば誕生日占いをするようにしなさい。
うらないと誕生日占いのアルゴリズムは適当に決めなさい。
※ヒント:この占いでは、0 と 1.0 の間の double 型の乱数を 10 個生成します。
0.5 以上の 値が 10 回中7回以上あれば占いの結果を「絶好調!」とします。
0.5 以上の値が 10 回中 4 回以上7回未満あれば占いの結果を「まあまあ」とします。
0.5 以上の値 が 10 回中 4 回未満であれば占いの結果を「絶不調 orz」とします。
10 個の乱数値 と占いの結果をコンソールに出力します。
乱数のシードには、String クラスのイ ンスタンスを何とかして整数にした値やメソッドに渡された誕生日の整数そのもの を使えば良いでしょう。
----------
自分の方針としてはユーザーに名前であればひらがなで名前を入力してもらいその文字数に応じて占いをして
誕生日であればすべての数字を足した合計数に応じて占いをしようとしました。
しかし、具体的な方策ができずにググリ続けて5時間。もう無理です。助けてください。
0005デフォルトの名無しさん
2011/06/26(日) 11:30:30.910006デフォルトの名無しさん
2011/06/26(日) 11:32:39.750007デフォルトの名無しさん
2011/06/26(日) 11:45:03.44SHA-512とメルセンヌツイスタ使った課題に書き直すよう、講師に伝えてこい
0008デフォルトの名無しさん
2011/06/26(日) 11:50:26.11とりあえず、この課題は片付けなければいけないんです。
今こんなプログラムをウェブで見つけて使えるかなとおもったんですが。。。
-----------
import java.util.Scanner;
import java.util.Random;
class Exercise05 {
public static void main(String[] args){
Scanner stdIn=new Scanner(System.in);
System.out.println("ゲームをする前に今日の運気を占いましょう");
System.out.println("");
System.out.println("あなたの名前をひらがなで入力してください:");
int x=stdIn.nextInt();
if(x==1){
Random rand=new Random();
int unnki=rand.nextInt(6);
if(unnki==0||unnki==4){
System.out.println("今日の運気は好調です。なんかクリアしそうな気がするぞ");
}else if(unnki==1||unnki==3){
System.out.println("今日の運気は不調です。ちょっと疲れ気味かな。ゲームをやって元気になろう");
}else if(unnki==2){
System.out.println("今日の運気は絶好調です。全部クリアしそうな気がするぞ");
}else{
System.out.println("今日の運気は絶不調です。落ち着いてやれば大丈夫だ");
}}}}
0009デフォルトの名無しさん
2011/06/26(日) 11:57:21.410010デフォルトの名無しさん
2011/06/26(日) 12:02:10.700011デフォルトの名無しさん
2011/06/26(日) 12:32:37.78大丈夫か?
0012デフォルトの名無しさん
2011/06/26(日) 12:33:40.010013デフォルトの名無しさん
2011/06/26(日) 12:33:44.17先生。正直、ループいらんのだが…
Random rnd = new Random();
/* ここでシード設定 */
int hit = 0;
for(int ct=1; ct<=10; ct++){
if(rnd.nextDouble() >= 0.5) hit++;
}
String msg;
if (hit >= 7) msg = "絶好調";
else if(hit >= 4) msg = "まあまあ";
else msg = "絶不調";
Java宿題スレ立ててくれたら、残りの回答してやってもいい
0014デフォルトの名無しさん
2011/06/26(日) 12:39:44.40もう無理か。。。
0015デフォルトの名無しさん
2011/06/26(日) 12:54:48.14誰か助けてください>>4
0016デフォルトの名無しさん
2011/06/26(日) 13:23:54.720017デフォルトの名無しさん
2011/06/26(日) 13:38:13.110018デフォルトの名無しさん
2011/06/26(日) 15:57:53.27お手数おかけしますが質問させてください。
処理の前後で引数の値を変化させるメソッドを作っており、
変化後の引数の値を取得したいと考えているのですが、
戻り値取得以外の方法で取得する方法はありますでしょうか。
具体的には以下のような実装を考えています。
****************************************************
int num = 0;
boolean changeResult = false;
// change() は引数を 1 に変更するメソッド
changeResult = sample.change(num);
// 1 と表示させたい
System.out.println(num);
****************************************************
このようなコードを書いたところ、最後の命令で 0 と表示されてしまいました。
何かアドバイスいただけると嬉しいです。よろしくお願いします
0019デフォルトの名無しさん
2011/06/26(日) 16:41:40.48numの値が変更されることはないしだいです。
numの値をreturnで引っ張るのはダメなのかな
0020デフォルトの名無しさん
2011/06/26(日) 16:42:28.30http://hibari.2ch.net/test/read.cgi/tech/1306857184/894n-
0021デフォルトの名無しさん
2011/06/26(日) 16:48:03.78>>20にもあるけど。
・numをローカル変数でなくフィールドにする
・changeResutlの型をbooelanでなくint型とboolean型のフィールドを持つChangeResult型にする
・numをint配列にする
どれでも好きなのを。
> 戻り値取得以外の方法で取得する方法はありますでしょうか。
と考えること自体間違ってる可能性もあるけどね。
0022デフォルトの名無しさん
2011/06/26(日) 16:48:46.49http://p2.2ch.net/
0023デフォルトの名無しさん
2011/06/26(日) 17:05:30.43ありがとうございます。
Google で「java メソッド 引数 変化」で検索したら
該当するページがいくつか見つかったので読んでいました。
JavaWorld Online - Javaの“常識”、“非常識” 第3回
ttp://web.archive.org/web/20061209164349/http://www.javaworld.jp/technology_and_programming/-/27074-2.html
>>19
実際には引数は num だけでなくあと 3 つほどあるので
戻り値では全ての変数を戻すことができないです。
また、配列で戻そうにもそれぞれの変数の型が違うので無理ですし、
コレクションで戻すにはインスタンス化しなければいけません。
コレクションだと受け取った後が面倒ですし。
>>20
今の私では、変更できないことがすばらしい事だとは実感できないです。。。
なんでこんな不親切な仕様にするんだ……という気持ちがあります。
みなさんは、型が異なる複数の変数を呼び出し元に戻すときにはどのようにするのでしょうか。
そもそも、そのようなコーディングはしないのでしょうか
0024デフォルトの名無しさん
2011/06/26(日) 17:10:29.38おおー! ChangeResult型いいですね! やってみます!
だから前スレ >>904 の人はセッターゲッターロボとか言ってたのか……
0025デフォルトの名無しさん
2011/06/26(日) 17:26:55.91********aaa.txt*******
abc
def
123
456
このaaa.txtから全角スペースを排除し、排除した場合のみ前の行に統合、新たにbbb.txtに出力
*******bbb.txt******
abcdef
123456
実際に扱うテキストは1000行程度です。
BufferReaderクラスやPushBackReaderクラスなどいろいろ試してみたもののうまく処理できません・・・。
よろしくお願いしますm(__)m
0026デフォルトの名無しさん
2011/06/26(日) 17:39:52.57「行頭に」全角スペースがあったらその行を前の行と統合するの?
123 の行は行頭に全角スペースがないから統合しないんだよね?
0027デフォルトの名無しさん
2011/06/26(日) 18:01:46.40そうです。
行頭に全角スペースがあったときのみ前の行と統合という処理です。
その他の場合にはなんの処理も行いません。
説明不足ですみません><
002824
2011/06/26(日) 18:18:36.09でもこれあまりやらない方がいいですね……。
setter や getter をたくさん使わなくちゃいけなくて、かなり見づらいコードになってしまった
0029デフォルトの名無しさん
2011/06/26(日) 18:54:39.310030デフォルトの名無しさん
2011/06/26(日) 19:47:38.51Pattern クラスや Matcher クラス使えばできるんじゃね?
0031デフォルトの名無しさん
2011/06/26(日) 21:17:56.68正規表現で処理した場合、Patterm.matcher()にテキストデータの内容を全て渡すことになるのでしょうか?
readLine()を用いて取得すると一行ずつの処理になってしまうためにうまく処理できないので困っております・・・。
003225
2011/06/26(日) 21:57:12.07PushbackReader pReader = null;
try{
FileInputStream fin = new FileInputStream("C://testJava//tmp.txt");
InputStreamReader iReader = new InputStreamReader(fin, "JISAutoDetect");
pReader = new PushbackReader(iReader);
StringBuffer readBuffer = new StringBuffer();
int readSt, nextReadSt;
for(int i=0; i < 40; i++){
readSt = pReader.read();
nextReadSt = pReader.read();
System.out.print("------------------------------\n" + (char)readSt + ":" + (char)nextReadSt);
System.out.println(Character.getNumericValue(nextReadSt));
if(readSt == '\n'){
if(nextReadSt == '\u3000'){
System.out.println("1");
readBuffer.append((char)pReader.read());
}else{
System.out.println("2");
readBuffer.append((char)readSt);
pReader.unread(nextReadSt);
}
}else{
System.out.println("3");
readBuffer.append((char)readSt);
pReader.unread(nextReadSt);
}
}
System.out.println(readBuffer.toString());
003325
2011/06/26(日) 22:03:39.55なんで改行されないのでしょう・・・。
try{
FileInputStream fin = new FileInputStream("C://testJava//tmp.txt");
InputStreamReader iReader = new InputStreamReader(fin, "JISAutoDetect");
pReader = new PushbackReader(iReader);
StringBuffer readBuffer = new StringBuffer();
int readSt, nextReadSt;
for(int i=0; i < 40; i++){
readSt = pReader.read();
nextReadSt = pReader.read();
System.out.println(Character.getNumericValue(nextReadSt));
if(readSt == '\n'){
if(nextReadSt == '\u3000'){ //改行+スペースだったら
readBuffer.append((char)pReader.read()); //スペースの次の文字の読み込み
}else{ //改行のみ
readBuffer.append((char)readSt);
pReader.unread(nextReadSt);
}
}else{ //その他
readBuffer.append((char)readSt);
pReader.unread(nextReadSt);
}
}
}
実行結果
abc
def
123
456
0034デフォルトの名無しさん
2011/06/26(日) 22:06:51.140035デフォルトの名無しさん
2011/06/26(日) 23:08:21.07Rubyとか使えば5行で書ける処理をわざわざJavaでやるかねー…。
ま、チラ裏だけど。
0036デフォルトの名無しさん
2011/06/26(日) 23:44:38.43readLine()でやったけどできなくてread()使い始めたのに・・・(´;ω;`)ブワッ
>>35
チラ裏過ぎて泣きたい
0037デフォルトの名無しさん
2011/06/26(日) 23:58:54.38Windowsだと普通は改行は\r\nだから\nだけ削っても\r残ってるんじゃね?
出力したファイルをバイナリエディタとか \r\n と \r の見分けがつくエディタで見てみたら?
正規表現使うなら、
String text = "abc\r\n" + " def\r\n" + "123\r\n" + " 456\r\n";
System.out.println(text.replaceAll("(\\r\\n|\\r|\\n)\u3000", ""));
ファイル全部読み込んでStringに変換する処理と
Stringの内容全部ファイルに書き込む処理は割愛。
0038デフォルトの名無しさん
2011/06/27(月) 00:16:38.07うわああぁぁぁぁぁああ、まさにそれでした!
\rで場合分けしたらあっさり・・・w
キャリッジリターンですか・・・、いい勉強になりました。
正規表現使った処理のほうがやっぱりスマートですね。まだちゃんと使えてないのでこの後
一度書き換えていじくってみます!
解決感謝m(__)mありがとうございました。
0039デフォルトの名無しさん
2011/06/27(月) 00:32:49.56バッファを使って一行ずつ処理する。
BufferedReader br = new BufferedReader(new FileReader(new File("aaa.txt")));
String s2;
String buf = null;
while ((String s = br.readLine()) != null) {
if (s.charAt(0) == " ") {
s2 = buf + s.substring(1) ;
//s2をファイル出力
}
buf = s;
}
0040デフォルトの名無しさん
2011/06/27(月) 00:40:25.48ルビーって未来あるんですか?
0041デフォルトの名無しさん
2011/06/27(月) 00:55:14.10未来は君たちが作るんだよ
0042デフォルトの名無しさん
2011/06/27(月) 11:55:23.92このぐらい頑張れよ慶應生www
0043デフォルトの名無しさん
2011/06/27(月) 20:59:19.72していたのですが、新たにうまく処理できない壁に当たってしまいました。
現在次のような構造のテキストを処理していまして、それをうまく行うことができません・・・。
半角数字任意配列(要素数は7)(部分Aとします)+
文字列(半角全角英数漢字ひらがなカタカナ記号からなる)(部分Bとします)+
終了を示す任意文字列(フラグのようなもの)(部分Cとします)で構成されています。以下が例です。
**************************************
123,432,2,234,321,12,2 abc123あいう <終了>
2,234,13,54,222,1,566 ^q^あ うあうあー <終了>
**************************************
ですが実際の処理では部分Bの中に複数個の改行(/r/n)が入っております。
**************************************
123,432,2,234,321,12,2 ab
c123
あい
う <終了>
2,234,13,54,222,1,566 ^q^あ
うあう
あー
<終了>
**************************************
ただし、部分AとCの中に改行が入ることは絶対にありません。
この下の状態から上の状態への処理を行おうとregexを記述しているのですが
String regex = "\\d*,\\d*,\\d*,\\d*,\\d*,\\d*,\\d*" + "(.*\\r\\n)*" + "\\<終了\\>"
Pattern pattern = Pattern.compile(regex);
としてもうまく処理できません・・・。どのように記述すればうまく処理できるでしょうか?
お助けお願いしますm(__)m
0044デフォルトの名無しさん
2011/06/27(月) 21:26:29.03http://msyk.net/keio/JavaBook/
このあたりでも読んだら?
0045デフォルトの名無しさん
2011/06/27(月) 21:32:39.45てっきりコンストラクタの引数で処理を切り替えるのかと
0046デフォルトの名無しさん
2011/06/27(月) 21:42:33.23LinuxでOpenJDKに自分好みのフォントを使わせたいと思っています。
/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties.src
に、インストール元のファイルがあり、これを弄ればいいらしいのですが、
これに変更を加えず、別の設定ファイルで上書きできないかを知りたいのです。
ディストリビューション毎に設定ファイルの置き場所が異なるかもしれませんが、
どのディストリか教えていただければ自分でも応用できると思うので、誰かご存知の方いらっしゃったら教えて下さい。
SunのJDKでフォントの設定など国際化についての資料は、すぐ
ttp://java.sun.com/javase/technologies/core/basic/intl/faq_ja.jsp
など見つかるのですが、OpenJDKについては、どのファイルでどのように設定すればいいのかというものが分かりません。
0047デフォルトの名無しさん
2011/06/27(月) 22:31:52.39なぜ慶應?
0048デフォルトの名無しさん
2011/06/28(火) 01:04:38.36フォントマッピングの設定ファイルがfontconfig.properties.srcなんだから他の設定ファイルで変更できるわけ無いでしょ。
IcedTeaだろうがoracleのjavaだろうが方法は変わらんよ。
0049デフォルトの名無しさん
2011/06/28(火) 01:40:26.04どっかで見覚えあるなと思ったら
俺が去年取ってた講義と課題内容一緒wwわろた
某スーファミキャンパスのオブジェクト指向プログラミングって授業
0050デフォルトの名無しさん
2011/06/28(火) 02:12:47.14でお前はできなかったわけか。
0051デフォルトの名無しさん
2011/06/28(火) 02:29:43.310052デフォルトの名無しさん
2011/06/28(火) 02:55:42.100053デフォルトの名無しさん
2011/06/28(火) 06:08:13.43SFC は優秀かダメかの二択なイメージがある
0054デフォルトの名無しさん
2011/06/28(火) 07:33:08.59どのようなメソッドですか?
自分が調べた限りでは、複数のスレッドで同じ変数を書き換える場合、
すなわちクラス変数が関わってくる場合という認識ですが、あっていますか?
0055デフォルトの名無しさん
2011/06/28(火) 08:10:41.120056デフォルトの名無しさん
2011/06/28(火) 08:17:22.420057デフォルトの名無しさん
2011/06/28(火) 08:50:46.400058デフォルトの名無しさん
2011/06/28(火) 10:55:01.31オブジェクト指向プログラミングの講座が3ヶ月経ってまだこんなとこやってんのかよ。
MITの学部生ならロボット制御への応用課題に取り組んでる時期だぞ。
課題使い回しかよいっそ先輩に聞きに行けよどのへんがオブジェクト指向なのよまさかオーバーロードの練習?
0059デフォルトの名無しさん
2011/06/28(火) 11:42:20.23おまえ、バカ?(笑)
0060デフォルトの名無しさん
2011/06/28(火) 11:56:32.86バカは>4だろ。
0062デフォルトの名無しさん
2011/06/28(火) 13:13:47.720063デフォルトの名無しさん
2011/06/28(火) 13:37:21.73実学志向のMITがロボット実習に力を入れてるのは昔から有名だからなー。
日本のロボットコンテストのほとんどはMIT講座のパクリ。
導入教育のSICPの評判が悪すぎてPythonに切り替えたって噂は本当?
0064デフォルトの名無しさん
2011/06/28(火) 13:43:59.280065デフォルトの名無しさん
2011/06/28(火) 14:18:25.97占いって…!
>4のはあらかじめ与えられたアルゴリズム使って乱数発生させて、数えるだけ、
小学生が最初に作るサイコロゲームみたいなもんだろ。
0066デフォルトの名無しさん
2011/06/28(火) 14:24:39.13相手にするな
0067デフォルトの名無しさん
2011/06/28(火) 16:57:35.54何か方法はないでしょうか?できれば再生中のものの音量を変更できればうれしいです。
0068デフォルトの名無しさん
2011/06/28(火) 19:22:33.49ブロッキングモードでタイムアウト設定する方法はないのでしょうか?
0069デフォルトの名無しさん
2011/06/28(火) 20:05:07.71アクセス制限を緩くすることは出来ても厳しくすることは出来ませんよね?
例)
元メソッド: abstract void method();
実装NG: private void method();
実装OK: public void method();
これは何故でしょうか?
緩く出来てしまうと、アクセスして欲しくない外部からもアクセス出来てしまうような実装になった際、マズイと思うのですが。
0070デフォルトの名無しさん
2011/06/28(火) 20:13:59.39オブジェクト指向言語のアクセサはセキュリティのために用意された物ではありません。
それを説明したC++の本があったと思うけど、書名が思い出せないorz
0071デフォルトの名無しさん
2011/06/28(火) 20:59:20.11ありがとうございます。
つまり、複数のスレッドで変更する変数(インスタンス含む)がある場合ですね。
留意して実装します。
0072デフォルトの名無しさん
2011/06/28(火) 22:33:26.34親が出来ることは子も出来なくてはならないから。
0073デフォルトの名無しさん
2011/06/28(火) 23:05:47.90レスありがとうございます。
>>69
C++ですか。そっち方面の情報も調べてみます。
>>72
ポリモーフィズム等を考慮して、という事ですよね。
その場合ですとアクセス制限を厳しく出来ないようにするという事の理由は通るんですが、
アクセス制限を緩くしても良い理由がいまいち分かりません。。
0074デフォルトの名無しさん
2011/06/28(火) 23:16:48.47C#だとバージョン管理上の理由で逆に厳しくできて緩くはできなかったりするけどね
厳しくしてもスーパークラスの型にキャストすれば呼べるからポリモーフィズムが使えなくなったりはしない
007574
2011/06/28(火) 23:32:28.19緩くするのは、たとえばオーバーライドするんじゃなくて public void method1() { method(); } のようにしても、
外部からアクセスできるようになってしまうのは同じなわけで、そこはサブクラスを作った人の責任。
C#で緩く出来ないのもスーパークラスに仮想メソッドが追加されたときの誤動作を防ぐとかそこらへんのポリシーがJavaより厳しいからで
アクセス制限の話とはあまり関係ない。
0076デフォルトの名無しさん
2011/06/29(水) 00:22:50.54親クラス型の変数にそのインスタンスを代入する場合と子クラス型の変数にそのインスタンスを代入する場合、何か違いがあるのでしょうか?
0077デフォルトの名無しさん
2011/06/29(水) 01:30:10.94言ってることがよく分からないけど、
1人の親に子供が2人いる場合を考えてみるとどうだろう。
0078デフォルトの名無しさん
2011/06/29(水) 01:44:04.17「リスコフの置換原則」でググると理解が深まるかも。
> アクセス制限を緩くしても良い理由がいまいち分かりません。
親ができないことを子供ができることについては問題ない…というか
それこそがextendsという言葉が表している機能の"拡張"そのものでは。
確かに頻繁にやるようなことではないと思うけど。
0079デフォルトの名無しさん
2011/06/29(水) 01:54:12.37親子関係にあるクラスのメソッドとフィールドを親子共通のものと、子で追加したものに分けて、列挙して考えてみると良い
(図で表現してみるとなお良い)
0080デフォルトの名無しさん
2011/06/29(水) 01:54:36.68なんでそう思ったの?知らないならレスしなければいいのに。
>>46
ちょっと調べてみて、根本的な解決方法じゃないけど、
-Dsun.awt.fontconfig=/path/to/font.propertiesで自分の設定を読みこめる。
このプロパティをどんなときでも起動時に読みこむファイルに記述すれば、全環境でこの設定が有効になる。
ただ、そんなファイルがあるかはもっと調べないといけない。俺は力尽きた。
0081デフォルトの名無しさん
2011/06/29(水) 02:03:39.40Oya obj = new Ko();
Ko obj = new Ko();
この2つの違いについて、って事?
実体はどちらもKoオブジェクトだけど。
上についてはOyaクラスのオブジェクトとして振舞える(Koクラスのみに定義してあるメソッド・メンバは使えない)。
下についてはKoクラスのオブジェクトとして振舞える。
0083デフォルトの名無しさん
2011/06/29(水) 03:05:01.83ガードするのはメソッドではなくデータ
0084デフォルトの名無しさん
2011/06/29(水) 05:17:27.15ニート乙
0085デフォルトの名無しさん
2011/06/29(水) 05:31:37.43類似の質問かも知れんけど、
セッターやゲッターを使うことは
開放/閉鎖原則に反するような気がするんだが、
そうなん?
0086デフォルトの名無しさん
2011/06/29(水) 07:53:28.31UnsupportedOperationException 投げるのが王道だよな。
immutableなCollection実装とかがよくそういうことをする。
そういや宿題スレ復活してたぞー
★★ Java の宿題ここで答えます Part 71 ★★
http://hibari.2ch.net/test/read.cgi/tech/1309076891/
誘導よろしく
0087デフォルトの名無しさん
2011/06/29(水) 08:11:16.39無様だな
0088デフォルトの名無しさん
2011/06/29(水) 09:14:27.350089デフォルトの名無しさん
2011/06/29(水) 10:27:47.78OCPの「閉鎖」と、オブジェクト指向の「隠蔽化」って全然意味違うから。
それを踏まえた上で>>85の疑問に答えると、
OCPの「閉鎖」は既存のクラス(今の文脈では親クラス)について言及してるのであって
新しく追加したクラス(子クラス)については何も言っていない、と思うんだけど(むしろ開放されてるという意味では原則通り?)
どうだろう。
0090デフォルトの名無しさん
2011/06/29(水) 10:31:39.46ニート乙
0091デフォルトの名無しさん
2011/06/29(水) 11:34:19.49セッター&ゲッターで、オブジェクトに直接書き加えることができるから
クローズドではないと思うけど。
0092デフォルトの名無しさん
2011/06/29(水) 11:38:03.51ttp://d.hatena.ne.jp/asakichy/20090126/1232979830
>OCPはある意味逆の「1つの責任をいろんな所に分散させてはイケナイ」っていう意味も自然に含まれている。
セッター&ゲッターだと、責任の所在がどこにあるのか不明でしょ?
0093デフォルトの名無しさん
2011/06/29(水) 15:14:48.24Javaではなんてソフト使うといいんだ?
Boland入れてテキストエディタでソース書いてbccコンパイル
みたいな感じしかJavaには無いのか?
スレチだったらスマソ
0094デフォルトの名無しさん
2011/06/29(水) 15:25:57.820095デフォルトの名無しさん
2011/06/29(水) 15:26:36.01Netbeans・Eclipse
0096デフォルトの名無しさん
2011/06/29(水) 15:35:37.290097デフォルトの名無しさん
2011/06/29(水) 15:36:24.51こんな初歩的な質問に答えてくれてありがとう!
0098デフォルトの名無しさん
2011/06/29(水) 18:04:04.580099デフォルトの名無しさん
2011/06/29(水) 18:08:18.520100デフォルトの名無しさん
2011/06/29(水) 18:19:30.97俺もです。
0101デフォルトの名無しさん
2011/06/29(水) 18:32:34.54エッ(゚Д゚≡゚Д゚)マジ?
0102デフォルトの名無しさん
2011/06/29(水) 18:36:46.16俺もです。
0103デフォルトの名無しさん
2011/06/29(水) 18:36:52.640104デフォルトの名無しさん
2011/06/29(水) 19:21:33.40またそんな嘘をさらっと…
日本だけみたいよ、つながらないの。
0105デフォルトの名無しさん
2011/06/29(水) 19:25:17.74すまぬ、ちょっと論点を勘違いしていたようだ。
0106デフォルトの名無しさん
2011/06/29(水) 20:05:10.17それはフォント構成ファイルを指定する方法であってそのフォント構成ファイルがfontconfig.properties.srcだ。
フォント構成ファイルにはフォーマットが2種類。ファイルが3つあってVMが最低限持ってるfontconfig.bfcと
環境が読み込むfontconfig.properties.srcがデフォルトでロードされる。
もう一つユーザー定義用にfontconfig.propertiesがあるが>>46の聞き方ではこれらのフォント構成ファイル以外に設定ファイルがあるかと聞いていることになる。
つまりそんな設定ファイルはない。あと、上書きできるかについてもフォント構成ファイルをどう使うかはVMの実装依存なんで上書きできる保証はない。
6.0以上ならAPIからフォントマッピングをいじれるが先に言ったとおり実装依存。
javaは環境依存になるから原則的にフォントマッピングはいじらせない。
フォント構成ファイルがあるのは環境依存の問題を自ら解決させるためで好きなフォントを割り当てるためじゃない。
好きなフォントを使いたいなら1.5以上でプログラムコードから物理フォント割り当てるしかない。
フォントマッピングと物理フォントの割り当ては別の問題でAPIが違うし方針も違う。
もうひとつ、デフォルトフォントそのものを書き換える方法があるがそもそもデフォルトフォントは一部の国しか用意されてない。
日本語のデフォルトフォントはない。javaのフォント周りは環境依存の対策と歴史由来の理由で色々な解法があるが結局は実装依存だ。
わかったら無知は黙ってろ。
0107デフォルトの名無しさん
2011/06/29(水) 20:19:03.66会社で今日超困ったよー。ひどいよね
0109デフォルトの名無しさん
2011/06/29(水) 21:39:43.62ソースはtwitter
オンラインドキュメントなんかどうでもいいんだが、
XML文書のDTDとかスキーマとか大事な情報一杯抱えてなかったっけjava.sun.com...
0110デフォルトの名無しさん
2011/06/29(水) 21:58:54.81>フォント構成ファイルにはフォーマットが2種類。ファイルが3つあってVMが最低限持ってるfontconfig.bfcと
>環境が読み込むfontconfig.properties.srcがデフォルトでロードされる。
マジでソースも読めないのな。fontconfig.properties.srcは誰も読みこまない。fontconfig.bfcをリネームしてみろ。
>もう一つユーザー定義用にfontconfig.propertiesがあるが
どこに?~/fontconfig.propertiesとか?それともsun.awt.fontconfigで指定するファイルのこと?
>あと、上書きできるかについてもフォント構成ファイルをどう使うかはVMの実装依存なんで上書きできる保証はない。
いつの間にかOpenJDKとIcedTeaの話を脱線させているあたり、コミュ障の匂いがするな。
VMの実装依存とか言ってるくせに>>48みたいな言い切りもするし。どこに依存するのか一度でも確かめてみたことあるの?
fontconfig.propertiesを読み込むランタイムでは、VMで読んでいるのか標準ライブラリで読んでいるのか本当にご存知?
能無しというよりコミュ障だな。自分で勝手に論点を広げたり狭めたり。それともそれが処世術?
0111デフォルトの名無しさん
2011/06/30(木) 04:31:22.58java.sun.com は今は使えるようです。
夕方から使えなかったので困ったのですが
>sun.comドメインが6月1日に廃止[ITmedia]
>ttp://www.itmedia.co.jp/news/articles/1103/18/news067.html
を見つけて焦りました。
続報がこの過去スレにあるらしいのですが
見られる方は教えてくださいませんか?
0112デフォルトの名無しさん
2011/06/30(木) 08:19:24.830113デフォルトの名無しさん
2011/06/30(木) 08:27:37.00その記事に書かれてる参照先の公式ブログに行ってみそ
「間違っちった。恥ずかしいから妻には言わないで///」
みたいなことが書いてあるお
0114デフォルトの名無しさん
2011/06/30(木) 08:27:51.21リンク先で「嘘。java.sun.comは今後もHTTPリダイレクトで運用していきます」、
とOracleが嫁の反対を押し切って謝罪しているな
java.sun.com関連のトラブルの質問を先取りしてエスパー回答しておくが、
XML関連の外部リソースをローカルファイルやJAR内のリソースに自前で
リダイレクトするのは org.w3c.dom.ls.LSResourceResolver や
org.xml.sax.EntityResolver の役目だ。
0115デフォルトの名無しさん
2011/06/30(木) 09:37:58.300116デフォルトの名無しさん
2011/06/30(木) 09:38:26.58”現状”で、Javaの日本語ドキュメント一式をDLする方法って分かりませんか?
0117デフォルトの名無しさん
2011/06/30(木) 11:18:30.310118デフォルトの名無しさん
2011/06/30(木) 11:32:16.35・「書き込んだからさあ読め」な場合はflip()
・「読んだからさあ続きを書け」な場合はcompact()
・「全部消したんで最初からまた書け」な場合はclear()
0119デフォルトの名無しさん
2011/06/30(木) 11:38:30.63Arrays.fill(byteBuffer.array(), byteBuffer.arrayOffset(), byteBuffer.arrayOffset() + byteBuffer.capacity(), 0);
とか、put で上書きするか。
0120117
2011/06/30(木) 11:44:53.47ありがとうございます
試してみます
0121デフォルトの名無しさん
2011/06/30(木) 11:54:46.61Subversion使いに
https://svn.java.net/svn/jdk-api-ja~svn
のエクスポートでも頼みたいとこだが、
こっちも息していないっぽい
0122デフォルトの名無しさん
2011/06/30(木) 11:57:42.10Standard Edition 6 なら
ttp://www.cleverware.net/java/jdk-6-doc-ja/ja/api/index.html
で見れる
0123デフォルトの名無しさん
2011/06/30(木) 12:59:03.55たすかります。有難うございました
0124デフォルトの名無しさん
2011/06/30(木) 16:45:56.740125デフォルトの名無しさん
2011/06/30(木) 17:22:19.91String s2 = "abc";
s1 == s2 はなぜ真になるのでしょうか?
equalsとかで真になるのは分かるのですが。
0126デフォルトの名無しさん
2011/06/30(木) 17:27:54.28new String("abc").intern() == new String("abc").intern() は真になる
定数式の値がString型の場合(文字列リテラルとか)は言語仕様に則って、intern()されなければならない。
0127デフォルトの名無しさん
2011/06/30(木) 17:43:40.02while ((contents = inBuffer.read()) != -1) {
outBuffer.write(contents);
}
の.write()の行で下記のエラーが発生します。
ClientAbortException: java.io.IOException
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:369)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:327)
何か予想できる原因がありましたら教えてください。
0128デフォルトの名無しさん
2011/06/30(木) 18:54:42.550129デフォルトの名無しさん
2011/06/30(木) 18:56:42.930130デフォルトの名無しさん
2011/06/30(木) 21:14:53.00とりあえず、10個くらい用意しておけばOK?
0131デフォルトの名無しさん
2011/06/30(木) 21:27:55.65OK!!ついでに、JBuilderも用意しといてあげて!
0132デフォルトの名無しさん
2011/06/30(木) 22:04:41.470133デフォルトの名無しさん
2011/06/30(木) 22:43:42.36ダウンロードダイアログのキャンセルボタンでも押しちゃったんじゃね
0134デフォルトの名無しさん
2011/06/30(木) 23:17:38.090135デフォルトの名無しさん
2011/07/01(金) 00:45:22.10while (true) {
int x = getInput("行", board);
int y = getInput("列", board);
if (canPut(board, x - 1, y - 1)) {
board[x -1][y - 1] = 0;
break;
}
JOptionPane.showMessageDialog(null,
"(" + x + " " + y + ")には置けません");
}
}
これを実行すると入力した行と列が反転されて入力されてしまうのはなぜでしょうか?
getInputは入力された値を返すだけのメソッドです。
0136デフォルトの名無しさん
2011/07/01(金) 01:34:30.49何を見て「反転されて入力されている」と思ったのか教えてください
0137135
2011/07/01(金) 02:00:29.84○×ゲームを作っているのですが、どうも入力した行と列が反転して表示されてしまいます
2次元配列の行と列のつけ方は数学の行列と反対なのですか?
0138デフォルトの名無しさん
2011/07/01(金) 03:39:16.70君が行と列を逆に考えているんでしょう。
行が増えればどちら方向に増える↓ or →
列が増えればどちら方向に増える↓ or →
0139デフォルトの名無しさん
2011/07/01(金) 03:52:01.63何かベクトル計算とかするっていう問題じゃないから、数学の行列との違いを考える必要はないんじゃないか。
自分のプログラム全体で、どっちが行でどっちが列なのかが統一されていないのが原因だと思う。
boardの表示用の関数と、入力用の関数とでおそらく行と列が違うのでは。
個人的には盤面を直接二次元配列で表現すると、こういった頭に入れなきゃいけない決まりごとが増えて混乱するから、
Boardクラスを作ってput(row,col,value)とget(row,col)メソッドを用意してデータの隠蔽をしちゃいたくなる。
0140デフォルトの名無しさん
2011/07/01(金) 11:44:23.09そりゃboard[x][y]で入れたら出すときもboard[x][y]で出さないと逆になるわな
普通はアクセスの効率を考えて連続アクセスする方を後ろのインデックスに持ってくるんだが
この場合はどっちでもいい
0141デフォルトの名無しさん
2011/07/01(金) 11:45:31.97>>139
ご回答ありがとうございます
配列を文字列に変換する部分で列と行が逆になってました
0142デフォルトの名無しさん
2011/07/01(金) 13:08:29.77ありがとうございます。
ブラウザのキャンセルボタンを押したときはSocketExceptionが
発生してくれるので微妙に違うようです。
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
0143デフォルトの名無しさん
2011/07/01(金) 19:27:03.95例えばファイルに書き込み・読み込みをする場合、どのページからどのようにたどっていけばいいのでしょうか?
0144デフォルトの名無しさん
2011/07/01(金) 19:43:37.67http://java.sun.com/javase/ja/6/download.html
ドメイン関係が解決したのか現状だとここから落とせる
0145デフォルトの名無しさん
2011/07/01(金) 20:14:31.940146デフォルトの名無しさん
2011/07/01(金) 22:31:12.440147デフォルトの名無しさん
2011/07/01(金) 23:41:46.040148デフォルトの名無しさん
2011/07/01(金) 23:49:39.25次期バージョンではdiamond operatorとかいうカスみたいなのが入るとか入らないとか
0149デフォルトの名無しさん
2011/07/02(土) 00:20:31.29importが多くあることや最初のextendsという所も分からない状態です。
今の自分のレベルとしてはjavaの入門書を終えたレベルだと思います。
0150デフォルトの名無しさん
2011/07/02(土) 01:43:30.950151デフォルトの名無しさん
2011/07/02(土) 02:22:05.62入門できてねえぞ
0152デフォルトの名無しさん
2011/07/02(土) 06:49:01.04�@のように <servlet-mapping> のタグがある意味がわかりません。
なぜ�Aのような構造になっていないのでしょうか。�@は冗長に感じられます
�@一般的な web.xml(一部)
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>minicar.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
�A無駄を省いた(?)web.xml(一部)
<servlet>
<url-pattern>/hello</url-pattern>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>minicar.HelloServlet</servlet-class>
</servlet>
以上、よろしくお願いします
0153デフォルトの名無しさん
2011/07/02(土) 07:30:56.100154デフォルトの名無しさん
2011/07/02(土) 10:22:29.10importもextendsも入門書に書いてますので、入門書読み終えたレベルですらありませんね
0155デフォルトの名無しさん
2011/07/02(土) 11:04:23.69とりあえず「Java3D」の名の付いた本買ってきていろいろやってみればいい。
古い本も多いので気をつけて。アプレットよりはSwingアプリを目指そう。
金かけたくない人はこの辺のWebを
ttp://codezine.jp/article/detail/74
なんでこーみんな、まわりくどい回答をするかね…
0156デフォルトの名無しさん
2011/07/02(土) 11:32:27.99時代おくれのオッサン乙
0157デフォルトの名無しさん
2011/07/02(土) 12:48:05.430158デフォルトの名無しさん
2011/07/02(土) 13:32:57.22俺は永遠の25歳だwww
0159デフォルトの名無しさん
2011/07/02(土) 13:44:11.080160デフォルトの名無しさん
2011/07/02(土) 14:13:11.14ゆとりと就職難はあまり関係ない気がするんだ
0161デフォルトの名無しさん
2011/07/02(土) 14:29:47.000162デフォルトの名無しさん
2011/07/02(土) 14:33:26.54お前には聞いてない
0163デフォルトの名無しさん
2011/07/02(土) 14:37:55.90答えが欲しい相手に何か条件があるのならそれは明記した方がよい
0164デフォルトの名無しさん
2011/07/02(土) 14:39:38.45「お前には聞いてない」
大事なことなのでもう一度書き込みさせて貰いました
0165デフォルトの名無しさん
2011/07/02(土) 14:54:22.490166デフォルトの名無しさん
2011/07/02(土) 17:43:50.900167デフォルトの名無しさん
2011/07/02(土) 18:01:53.63逝ってよし
0168デフォルトの名無しさん
2011/07/02(土) 18:02:12.93http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Math.html#abs(int)を見てるのですが
これはどのように使うのでしょうか?
0169デフォルトの名無しさん
2011/07/02(土) 19:41:45.11あるクラスからメソッドを呼び出すときと同じ使い方
Mathクラスのabs(int a)メソッドを呼び出すって考えるといい
0170デフォルトの名無しさん
2011/07/02(土) 20:03:08.96俺もタイムマシン乗りたい
0171デフォルトの名無しさん
2011/07/02(土) 20:08:16.02ありがとうございます
1つのサーブレットで複数のURLパターンを割り当てたい場合にも対応できるから。
0173デフォルトの名無しさん
2011/07/02(土) 21:07:33.55ありがとうございます。そんな場合もあるんですか……。
もしできれば、例などをいただけると嬉しいのですが……
0174デフォルトの名無しさん
2011/07/02(土) 21:09:33.370175172
2011/07/02(土) 21:17:29.74servletはアプリの定義に関する要素。
言ってみればWebコンテナの内側の世界。
URLはWebコンテナの外側の世界。
内と外をどうマッピングすればいいかWebコンテナに教えるのが
servlet-mapping。
仕様を考えた人は、コンテナの内と外のパラメタを一つの要素の
中に混在たくなかったのだろうと解釈してる。
同じサーブレットを動かす場合でも、URLによって適用するフィルタを変えたいとか
認証する/しないを変えたいとか。
オレはWebアプリ屋ではないので、実際どう使ってるかは知らない。
0177デフォルトの名無しさん
2011/07/02(土) 21:34:25.11ありがとうございます。丁寧にご説明いただいたおかげで納得できました
0178デフォルトの名無しさん
2011/07/02(土) 22:54:44.67またClassオブジェクトがvoidを意味しているかをチェックするには
clazz.getName().equals("void")以外に何か無いでしょうか.
よろしくお願いします
0179デフォルトの名無しさん
2011/07/02(土) 22:58:47.14if (clazz == void.class)
0180デフォルトの名無しさん
2011/07/02(土) 23:00:24.120181デフォルトの名無しさん
2011/07/02(土) 23:01:16.58初めて知りました!!
ありがとうございますー!
0182デフォルトの名無しさん
2011/07/02(土) 23:05:15.93こんなところに定数が・・・ありがとうございました
余談だけど。
APサーバによっては、固有の定義ファイルでURLごとにスレッド数を割り当てることもできる。
(URLを一般会員用とプレミアム会員用に分けるとか)
そんな場合にもマッピングの複数指定は有用かと。
0184デフォルトの名無しさん
2011/07/03(日) 01:27:13.26それぞれパーツごとに作るためには何を使えばおk?JSPじゃ無理だよね。
たまたまTilesとかいうのを見つけたけど、日本語情報無いからハードル高くて。
0185デフォルトの名無しさん
2011/07/03(日) 02:48:39.030186デフォルトの名無しさん
2011/07/03(日) 06:22:33.94ありがとうございます。覚えておきます
0187デフォルトの名無しさん
2011/07/03(日) 11:35:13.940188デフォルトの名無しさん
2011/07/03(日) 14:17:13.91自分で例外の出力を整形して、テキストファイルに残すのが一般的なのか
Log4jというのを使うのが一般的なのか・・・
自分、Javaの実務経験がないのでこまっております。どっちがいいんでしょうか?
0189デフォルトの名無しさん
2011/07/03(日) 14:23:57.03slf4j + Logback
を使え
0191デフォルトの名無しさん
2011/07/03(日) 14:51:48.11ってカキコが最近多すぎてうんざりするよね
0192デフォルトの名無しさん
2011/07/03(日) 16:08:11.83挑発して詳細を聞き出そうとするカキコが
最近多すぎてうんざりするよね
0193デフォルトの名無しさん
2011/07/03(日) 16:08:24.530194天使 ◆uL5esZLBSE
2011/07/05(火) 07:32:06.54死ねゴミ
0195天使 ◆uL5esZLBSE
2011/07/05(火) 12:42:14.96仕事で仕方なくならわかるけど
家でもJAVAやってるなら本当にバカだよね。哀れ
ゴミなんだから早く死んだほうがいいと思う
0196デフォルトの名無しさん
2011/07/05(火) 13:07:24.33kwsk
0197デフォルトの名無しさん
2011/07/05(火) 13:33:49.11kwsk
0198デフォルトの名無しさん
2011/07/05(火) 15:51:28.87kwsk
0199デフォルトの名無しさん
2011/07/05(火) 15:57:47.58wktk
0200デフォルトの名無しさん
2011/07/05(火) 16:33:28.27ROMることなんですけど。
ここ2,3日、一方的に建設的なレスが進みません。
みなさん、もっとがんばってください。
0201デフォルトの名無しさん
2011/07/05(火) 16:35:17.670202デフォルトの名無しさん
2011/07/05(火) 16:41:02.480203デフォルトの名無しさん
2011/07/05(火) 16:48:51.61自宅待機です。
0204デフォルトの名無しさん
2011/07/05(火) 16:51:56.93kwsk
0206デフォルトの名無しさん
2011/07/05(火) 17:06:05.66え?web.xmlとか、Ajaxとかフレームワーク回りが自分はめんどくさいです。
まあ、慣れの問題なんでしょうけど。
0207デフォルトの名無しさん
2011/07/05(火) 17:55:26.63実際のところ開発ではばんばんリフレクション使っていたりするんですか
0208デフォルトの名無しさん
2011/07/05(火) 18:15:48.31業務アプリでは使うことほとんどないんじゃない?
アプリが利用しているフレームワークやAPサーバではガシガシ使われてるだろうけど。
0209デフォルトの名無しさん
2011/07/05(火) 18:16:37.64web.xml手書きしてるの?
0210デフォルトの名無しさん
2011/07/05(火) 20:01:54.46めんどくさいことだらけだもんっ!
0211デフォルトの名無しさん
2011/07/05(火) 20:12:21.31コピパーはそろそろ卒業しとけ
0212デフォルトの名無しさん
2011/07/05(火) 20:20:42.03窓7でIEです。
0215デフォルトの名無しさん
2011/07/05(火) 20:25:43.63リフレクションのおかげでプロジェクトがポシャッたケースなら社内の別の課であった。
コーディング規約で実装におけるリフレクションの禁止令が発令された。
0216デフォルトの名無しさん
2011/07/05(火) 20:29:19.42何が言いたい?
0217デフォルトの名無しさん
2011/07/05(火) 21:01:53.46なにやらかしたー。privateメンバへ強引にアクセスしてカプセル化がパーになったとか?
0218デフォルトの名無しさん
2011/07/05(火) 21:51:46.22衝突が発生した場合はどうなりますか?
単純に上書きされてしまいますか?
それとも、再計算して別の領域に格納されますか?
自分で試していますが、なかなか衝突しないので、答えを知りたいです。
0219デフォルトの名無しさん
2011/07/05(火) 22:01:56.37ここで言う「衝突」ってなんだろ?
0220デフォルトの名無しさん
2011/07/05(火) 22:07:20.250221デフォルトの名無しさん
2011/07/05(火) 22:34:54.98要するに、値が上書きされてしまうことです。
もし異なるキーで発生するとなると使い勝手が難しいです。
0222デフォルトの名無しさん
2011/07/05(火) 22:41:41.46キー(要素を区別するためのインスタンス)が異なるんだろ?
0223221
2011/07/05(火) 22:42:46.62別の"hoge2"というキーで値を追加したことで上書きされたら困る訳ですよ。
値が失われますからね。
0224デフォルトの名無しさん
2011/07/05(火) 22:46:59.34一般的にハッシュ法と呼ばれてるものと同じ。
つまり検索速度が落ちる。
0225デフォルトの名無しさん
2011/07/05(火) 22:48:46.44はい、キーは異なります。
キーが異なれば大丈夫と言う認識でよいのでしょうか?
それとも稀でも上書きされるのでしょうか?
それがとても気になっています。
0226デフォルトの名無しさん
2011/07/05(火) 22:50:06.990227デフォルトの名無しさん
2011/07/05(火) 22:51:30.38シノニムが発生した場合の事いってるんじゃね?
>キーが異なれば大丈夫と言う認識でよいのでしょうか?
そのための「キー」だ。
0229デフォルトの名無しさん
2011/07/05(火) 23:06:30.66>その場合それらのエントリはシーケンシャルサーチされることになります。
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/Hashtable.html
HashMapも同様じゃね
0230デフォルトの名無しさん
2011/07/05(火) 23:26:33.91新旧キー同士のequals()が真にならない限り、上書きは絶対にありえないから安心しろ。
※ただしnullキー同士は上書きになる。
新旧のハッシュ値が同じで同じインスタンスを指すか、新旧のequals()がtrueの場合に書き換えられるようだ。
0234デフォルトの名無しさん
2011/07/05(火) 23:58:18.21>>224
速度を重視したい場合、マップの初期容量を大きくすればある程度マシになりますよね。
>>226
それなら安心です。
データの消失が最も恐ろしいので。
>>227
ハッシュの場合、コリジョンではなくシノニムというのですね。
すみません、言葉を知らなかったです。
>>228
キーをハッシュした値が被ったときの動作が気になっていました。
>>229
難しい言葉が出てますね・・・;
すでにあったら順繰りにってことでしょうか。
>>230
データ消失がなければ安心して使えますね。
>>233
equals による比較が行われているのであれば、
異なる文字列をキーにしている限り安心ですね。
とても勉強になりました。
ありがとうございました。
後学のため、シノニムについて調べてみます。
あと、HashMap.java を分かる範囲で覗いてみます。
最初からソース見て回答してればここまで伸びることは無かったのにと
反省してます。
0236デフォルトの名無しさん
2011/07/06(水) 00:50:19.27メモリアクセスの効率を考えるとエントリはオブジェクトにしないでガバッと配列にメモリ取って
インデックスで管理した方が速そうだけど
0237デフォルトの名無しさん
2011/07/06(水) 09:29:47.80自分のJavaのソースをShift_JISで保存した場合はMessageBoxA()、utf-8などUnicodeで保存した場合はMessageBoxW()関数を呼び出すということでいいでしょうか?
0238デフォルトの名無しさん
2011/07/06(水) 09:31:45.52なぜ、Stringでは同じ領域の値が変更出来ないのでしょうか?
APIに、値が変更出来ない、と書いてあるのでそれ自体はいいのですが、理屈を知りたいです。
0239デフォルトの名無しさん
2011/07/06(水) 10:11:08.73単なる設計上のテクニックだよ。
「immutable」や「不変オブジェクト」でググればいろいろと解説はあるはず。
0240デフォルトの名無しさん
2011/07/06(水) 10:21:51.58違う。
0241デフォルトの名無しさん
2011/07/06(水) 11:22:14.430242デフォルトの名無しさん
2011/07/06(水) 17:38:10.41以下のような実装を行った場合、これはリフレクション機能を使用したことになるのでしょうか?
MyContainer+ <T> void put(Class<T> type, T value)
MyContainer+ <T> T get(Class<T> type);
--------------------
String s = "str";
Integer i = 10;
MyContainer container = new ...;
container.put(String.class, s);
container.put(Integer.class, i);
...
String ss = container.get(String.class);
Integer ii = container.get(Integer.class);
どの機能がリフレクションを利用しているかがいまいちわかりません。
0243デフォルトの名無しさん
2011/07/06(水) 17:40:45.79java.lang.Class自体はリフレクションの一部っちゃ一部だけど。
0244デフォルトの名無しさん
2011/07/06(水) 22:13:03.33public static void show(Object obj){
System.out.println(obj.getClass() + ", " + obj.toString());
Method[] methods = obj.getClass().getMethods();
for (Method m : methods) {
String name = m.getName();
if(m.getParameterTypes().length==0 && name.matches("^(get|is|can|length).*$"){
System.out.printf(" %-20s : %s\n", name, m.invoke(obj, new Object[]{}));
}}}
0245デフォルトの名無しさん
2011/07/06(水) 22:25:18.170246242
2011/07/06(水) 22:46:22.68>>243さん
Classクラスの実装を読んでみましたがやっぱりリフレクション使ってるみたいですね。
>>244さん
String.classとか使用するのはリフレクションの一部だという認識は間違っているのでしょうか?
上のコンテナと普通のString,Objectペアのコンテナを作って速度を比較したところ上のコンテナが3倍遅い結果になってしまいました。
0247デフォルトの名無しさん
2011/07/06(水) 23:39:43.65プリミティブ型のラッパーのInteger.classはInteger.TYPEへのフィールドのアクセスと同じなんで遅くならないっぽいです
0248デフォルトの名無しさん
2011/07/07(木) 04:53:39.510249デフォルトの名無しさん
2011/07/07(木) 09:14:46.68sの配列の要素数に応じて↑のような感じで打ちたいんですがどういうふうに書けばいいですかね?
0250デフォルトの名無しさん
2011/07/07(木) 09:35:41.80for
0251デフォルトの名無しさん
2011/07/07(木) 09:37:35.740252251
2011/07/07(木) 09:43:59.060253デフォルトの名無しさん
2011/07/07(木) 09:52:44.65こんな感じ
sql = "SELECT * FROM テーブル名";
int youso = 0;
for(i=0; i<s.length; i++) { youso++; }
if(0 < youso) sql += " WHERE ";
if(youso == 1) sql += s[0];
if(youso == 2) sql += s[0] + s[1];
if(youso == 3) sql += s[0] + s[1] + s[2];
………
↑以下必要な分だけ適当に増やす
youso == 100ぐらいまであれば安心
0254デフォルトの名無しさん
2011/07/07(木) 09:55:20.350255デフォルトの名無しさん
2011/07/07(木) 09:55:59.45ちょっと訂正
× for(i=0; i<s.length; i++) { youso++; }
◎ for(int i=0; i<s.length; i++) { youso++; }
0256デフォルトの名無しさん
2011/07/07(木) 10:01:33.37sql += a;
}
だろJK
0257デフォルトの名無しさん
2011/07/07(木) 10:03:42.68お前様の>>249に対する”意図”ってのは分かったけど、
もう少しうまい組み方ってあると思うぞ
なんか、お前様の方が無様に見えるぜ
0258251
2011/07/07(木) 10:09:19.35for(int i=1;i<s.length;i++){
sql+=s[i];
}
お二方の共試したんですが、だめでした。↑のも試してみたんですがだめでした。java.sql.SQLException: near "nullSELECT": syntax errorとでてるんですがどこがおかしいのかわかりません・・・
0259デフォルトの名無しさん
2011/07/07(木) 10:12:01.44さては、ゆとりか
0261デフォルトの名無しさん
2011/07/07(木) 10:20:26.80お前>>249だろw
ググれば3秒で分かる質問してっから遊ばれてんだよ
ってかJava無関係なアルゴリズムの質問はスレチ
ふざけた回答ながらもfor文のヒントを提示してもらってる事にも気付けないなんて、無様だぞ
0262デフォルトの名無しさん
2011/07/07(木) 10:43:04.14無様ね
0263デフォルトの名無しさん
2011/07/07(木) 10:46:12.14結局修正レスまでした>>253がスルーされた件について
0264デフォルトの名無しさん
2011/07/07(木) 12:05:22.56ぼくゆとりなにかもんくある?
0265デフォルトの名無しさん
2011/07/07(木) 12:11:00.690266デフォルトの名無しさん
2011/07/07(木) 12:19:40.300267デフォルトの名無しさん
2011/07/07(木) 12:31:13.68ぼくゆとりだよ?
0268デフォルトの名無しさん
2011/07/07(木) 14:48:41.380269242
2011/07/07(木) 15:30:48.79貴重な助言ありがとう御座います。すっきりしました。
>>248さん
確かにその程度の利用だとリフレクションと言い難いかもしれませんね。
遅くなりましたが返信してくれた方々ありがとう御座いました。
0270デフォルトの名無しさん
2011/07/07(木) 15:31:27.130271デフォルトの名無しさん
2011/07/07(木) 17:21:28.260272デフォルトの名無しさん
2011/07/07(木) 17:27:33.040273デフォルトの名無しさん
2011/07/07(木) 17:54:03.71カレントディレクトリ(Windowsの場合だとMyDocument/Linuxの場合ユーザのホームディレクトリ)
がデフォルトで開くみたいですが、そのカレントディレクトリのパスを取得するには、どうしたらいいんですか?
0274デフォルトの名無しさん
2011/07/07(木) 17:56:48.82ルートでも行けるのかは試してないが
0275デフォルトの名無しさん
2011/07/07(木) 17:58:07.83たぶん。
0276デフォルトの名無しさん
2011/07/07(木) 17:59:46.760277273
2011/07/07(木) 18:05:37.86import java.io.*;
public class Sample1J {
public static void main(String[] args) {
System.out.println(System.getProperty("user.home"));
String sPath = (new File(".")) .getAbsoluteFile().getParentFile().toString();
System.out.println(sPath);
}
}
試してみたところ、
C:\Documents and Settings\hogehoge
C:\Program1\java
となりました。
どうも、System.getProperty("user.home"); で、いけるみたいです。
みなさん、どうもありがとうございました。できるんですね、こんなこと・・
OSを取得してJNIとかつかおうとおもっていました。。
0278デフォルトの名無しさん
2011/07/07(木) 18:06:26.64クラスライブラリのコードを読むのって
勉強にいいでしょうか?
たくさん読めと言われていますが
0279デフォルトの名無しさん
2011/07/07(木) 18:09:21.17ごめん、正解はたぶんこっち。
javax.swing.filechooser.FileSystemView.getFileSystemView().getDefaultDirectory()
0280デフォルトの名無しさん
2011/07/07(木) 18:11:22.03クラスライブラリって特定目的の細かい実装コードの寄せ集めみたいなのが多いから
その特定目的についての勉強でないならお勧めしない
0281デフォルトの名無しさん
2011/07/07(木) 18:14:48.70たくさん読めって言われてんだからクラスライブラリもフレームワークもアプリケーションも読め。
質問してる暇があったら読め。
0282デフォルトの名無しさん
2011/07/07(木) 18:18:44.09ありがとうございます。
その中でオススメとかありましたらご教授
お願いします。
0283デフォルトの名無しさん
2011/07/07(木) 18:27:48.740285デフォルトの名無しさん
2011/07/07(木) 18:39:00.10ぼくゆとりだよ?
0286デフォルトの名無しさん
2011/07/07(木) 20:08:07.19JDKに入ってるsrc.zipの中身。
0287デフォルトの名無しさん
2011/07/07(木) 20:34:38.510288デフォルトの名無しさん
2011/07/07(木) 20:42:53.73英語だけどコメント豊富なのと、細かいコードを切り分けて読めれば
一つ一つのコードは短いので初心者向きだし。
0289デフォルトの名無しさん
2011/07/07(木) 21:55:09.77パフォーマンスの名目でごにょごにょするのが、相対的に、より正当化される。
通常はアンチパターンと呼ばれるような、
無条件でマネしてはいけない痛いことをしているかもしれない。
0290デフォルトの名無しさん
2011/07/07(木) 23:38:23.210291デフォルトの名無しさん
2011/07/07(木) 23:46:05.63入力元、出力先どこ?
言い直し。
デフォルトのエンコーデイングと異なるエンコーデイングのデータを扱うなら、意識した実装しないと化ける。
で、どういったデータを扱おうとしてるの?
0294デフォルトの名無しさん
2011/07/08(金) 11:39:19.36AというクラスとBというクラスのフィールドが全く
同じだった場合にAをシリアライズしたものをBに
デシリアライズする方法が必要で、こちらについては
デシリアライズの際のObjectInputStreamの
readClassDescriptorをオーバーライドしてクラスを変換
することで実装することができました。
http://ideone.com/qquLQ
しかしArrayList<A>をシリアライズしたものをArrayList<B>
にデシリアライズする方法で詰まっております。
何か方法をご存知でしたらご教授下さい。
0295デフォルトの名無しさん
2011/07/08(金) 12:39:50.90JFileChooserをインスタンス化した際に、
fatal: Not a git repository (or any of the parent directories): .git
というメッセージがコンソールに出ることに気づきました.
実際にJFileChooserで表示されるダイアログでディレクトリを移動したりすると、
さらに上記のメッセージが一回ずつ表示されます.
実害は無いのですが、どうしてこうなるのでしょうか?
0296デフォルトの名無しさん
2011/07/08(金) 12:41:38.66同じObjectInputStreamのサブクラスを使えばいいんじゃね?
0297デフォルトの名無しさん
2011/07/08(金) 13:09:33.36同様の方法ですと
desc.getName()の箇所がjava.util.ArrayListまでしか取れず
ArrayListの中に保持している型までは取れないのです。
ArrayListのデシリアライズ時に内部処理で各要素に使う
ObjectInputStreamが設定出来ればとも思うのですが、方法が
わかりません。
0298295
2011/07/08(金) 13:57:29.09readClassDescriptorはArrayListそのものと
内部メンバの型情報取得時両方について呼ばれる
みたいなので、同じやり方でいけました。
0299デフォルトの名無しさん
2011/07/08(金) 19:28:29.93バグレポートにあがってるね。
https://netbeans.org/bugzilla/show_bug.cgi?id=194242
なんでこんなことになってんだろ。
0300デフォルトの名無しさん
2011/07/08(金) 19:42:42.50どのようにすればできるでしょうか。
0301デフォルトの名無しさん
2011/07/09(土) 10:13:57.61そして、プログラムを好きでやっていますか?
給料が良いからですか?
参考にさせてください!
よろしくお願いします!
0302デフォルトの名無しさん
2011/07/09(土) 10:31:40.160303デフォルトの名無しさん
2011/07/09(土) 10:32:59.79プログラムは好きで土日もフリーソフトをつくってます。
0304デフォルトの名無しさん
2011/07/09(土) 10:37:50.71ありがとうございます。
休みなくやってる感じですね!
好きじぁないとやれない世界ですか?
それか働いていくうちにやりがいを見つける世界ですか?
0305デフォルトの名無しさん
2011/07/09(土) 10:40:25.660306デフォルトの名無しさん
2011/07/09(土) 10:48:55.37キャラアット? キャラエーティー? キャラット?
0307デフォルトの名無しさん
2011/07/09(土) 10:55:53.78読み方などどうでもいい
0308デフォルトの名無しさん
2011/07/09(土) 12:05:31.79C++ : しーぷらすぷらす
IEEE : あいとりぷるいー
ext2 : えくすてんど に
DoS Attack :どすこうげき
まあ、読み方なんてどーでもいい
0309デフォルトの名無しさん
2011/07/09(土) 12:20:48.35↓の API リファレンス見ると「テストケースのメソッド名を引数とするコンストラクタ」って書いてあるけど
テストケースのメソッド名なんて意識しないし。
TestCase
ttp://www.asahi-net.or.jp/~xm5y-ysng/junit/javadoc/junit/framework/TestCase.html#TestCase(java.lang.String)
0310デフォルトの名無しさん
2011/07/09(土) 12:52:03.36プログラム歴10年。Java歴10年。Javaから入り、他の言語やコンピュータの構造なども勉強しました。
最初は仕事でやっていましたが、その頃は苦痛でした。
しかし、やめたあとも趣味というか暇つぶしでやっていて、最近おもしろくなりました。
0311デフォルトの名無しさん
2011/07/09(土) 12:57:18.01ArrayListにtrimToSize()ってのがあるってことは、remove()してもサイズが変わっていなかったりするってことでしょうか?
0312デフォルトの名無しさん
2011/07/09(土) 13:08:09.38ArrayList#size() の戻り値は呼び出しの前後で変化するが、
内部で使用している配列はそのままだったりする。
0313デフォルトの名無しさん
2011/07/09(土) 13:19:07.53reportの一覧性のために使う…とか?
0314デフォルトの名無しさん
2011/07/09(土) 13:28:55.55どうもありがとうございます。
trimToSizeはメモリの節約のために使うってことで良いんでしょうか?
0315デフォルトの名無しさん
2011/07/09(土) 15:42:41.28Here comes the pain!!
0316デフォルトの名無しさん
2011/07/09(土) 17:30:15.33レスありがとうございます。
すみません。reportの一覧性とはどのような意味でしょうか
0317デフォルトの名無しさん
2011/07/10(日) 03:51:04.620318デフォルトの名無しさん
2011/07/10(日) 09:41:18.73たとえば、コマンドラインで、
java Hoge -ip 192.168.0.29
とかでもいいの?
0319デフォルトの名無しさん
2011/07/10(日) 10:31:51.24という話ではなくて?
0320デフォルトの名無しさん
2011/07/10(日) 16:43:16.09java.net.Socket#setSocketImplFactory()
でオリジナルのソケット実装使わせることができるぞ。
URLアクセスに特化した話なら
java.net.URLConnection#setContentHandlerFactory
でも十分だと思うが。
0321デフォルトの名無しさん
2011/07/10(日) 20:00:14.46AppEngineでGZIPInputStreamを使った実装で解凍を行うと、
PC上の環境とAppEngine上で違う動きをするので、
(PC上だと正常に解凍できるが、サーバ上だとエラーになる)
GZIPInputStreamの別実装を探しています
具体的には、Gzipされたものを解凍したいだけです。
よろしくお願いします。
0322デフォルトの名無しさん
2011/07/10(日) 20:03:16.980323デフォルトの名無しさん
2011/07/11(月) 01:31:20.39なんで? JAXBやStaxと違って他の言語と共通の仕組みであることが利点だよ。
僕の質問:
EJBコンテナ(セッションビーン)を何に使うのかわからないんですけど、
Apache+Tomcatがhttpリクエストの分散に対して
EJBはWeb(http)とは関係ないRMI(ロジック部分の分散)ということで
あってますか?
EJB鯖がロードバランサになり、他のEJB鯖がロジックを振り分けられる
ノード鯖になる、と。
・インスタンスプール
・メソッドごとに権限設定、トランザクション制御
・属性指定によるトランザクション制御
・負荷分散
かな。これらを利用しないのであれば、面倒なだけの代物。
0325デフォルトの名無しさん
2011/07/11(月) 10:45:44.14バグ検索を使用してみると、同期化が考慮されていません。といった項目が出てきます。
80%がロックされている間ウンヌン
これって特に気にせず無視してもいいのでしょうか?
無視しなかった場合、どういった処理を追加すべきでしょうか?
ググっても何いってんだこいつ状態で、全く分からない
0326デフォルトの名無しさん
2011/07/11(月) 11:07:38.99もしマルチスレッド使ってるならやめる
その意味がわかんないならそのほうがいいよ
0327デフォルトの名無しさん
2011/07/11(月) 11:13:59.71とほほを流し読みにして何となく思ったのが
1Hまでに、ここまで勉強するぞ!って頑張るけど
途中アニメが始まってチラチラ見ながら進めてたら、目標時間までに全部終わらなかった的なイメージが湧いた
ThreadはThread.sleep(xx)位しか使ってないし、マルチスレッドもシンクロも使ってないから
放置してみる。thx
0328デフォルトの名無しさん
2011/07/11(月) 16:16:30.10通常はひとつのクラスにまとめちゃいますか?
また、クラスファイルをいくつも作るのはやりませんよね?
0329デフォルトの名無しさん
2011/07/11(月) 17:11:24.160330デフォルトの名無しさん
2011/07/11(月) 17:20:57.26自分が書きやすい、読みやすいように書いたら良い
けど普通は400行あると、2,3にはわかれそう
0331デフォルトの名無しさん
2011/07/11(月) 17:23:33.03あってるよ
けどEJBのコードの書きにくさ、設定の難解さで最近は使われないけど。
0332デフォルトの名無しさん
2011/07/11(月) 19:26:15.28そもそも、なんだけど、
クラスってのは分けなきゃならないんじゃなくて、
必要に迫られて分かれるもんだ。
0333デフォルトの名無しさん
2011/07/11(月) 20:12:04.07パネルにボタンとかを設置して使用したいのですが
どうにもパネルの上に描画されてしまうのですが
パネルを前面に出す方法はないでしょうか orz
0334デフォルトの名無しさん
2011/07/12(火) 00:06:32.970335デフォルトの名無しさん
2011/07/12(火) 11:59:29.180336デフォルトの名無しさん
2011/07/12(火) 12:16:05.86> OCJPと基本情報ってどっちが難しいの?
どちらも簡単過ぎて比べられない
0337デフォルトの名無しさん
2011/07/12(火) 12:45:34.56プライベートIPのPC---ルータ---グローバルIPのPC
↑の構成の時、プライベート側からTCP,UDP通信は成功するんだが、
グローバルIPのPC側からプライベートIPのPCにUDP通信をすると失敗するのだけれど、解決方法はないでしょうか?
グローバルIPのPC側から通信するときはルータが持っているグローバルIPに対して通信を試みています
0338デフォルトの名無しさん
2011/07/12(火) 13:07:13.21Javaの質問じゃなくて、ネットワークの質問だねこれ。
ルーターのポートフォワーディングの設定がどうなっているか、どこまでできるか次第だね。
0339デフォルトの名無しさん
2011/07/12(火) 13:11:05.14Javaに関係ないけど無理
だからプライベート側からグローバルのPCにコネクションを確立した後にそのコネクションを介してやり取りさせるしかない
UDPホールパンチングという方法もあるけど、第三者がいないと無理だし
あとはuPnPとか
ポート開放すればいいんですねとかいうレベルの話じゃないよね
0340デフォルトの名無しさん
2011/07/12(火) 13:16:22.48スレ違いみたいで、すいません
ポートの開放については確認済みで、念押しにDNS用の53ポートでも試してみたけど、だめでした
>>339
つまり、グローバル側からアクセスするにはプライベートからのTCP確立
もしくは、中継を担うものがないとできないということでしょうか?
スレ違いのような質問にお答えいただきありがとうございます。
0341デフォルトの名無しさん
2011/07/12(火) 13:32:21.650342デフォルトの名無しさん
2011/07/12(火) 13:40:23.53Sun認定Javaプログラマ(SJC-P)
Oracle認定Javaプログラマ(OCJ-P)
ってなってるな
でもOJCPって言ってる奴が余りにも多い
0343デフォルトの名無しさん
2011/07/12(火) 14:04:40.74スレ違い
0344デフォルトの名無しさん
2011/07/12(火) 14:39:36.19資格は、その資格を持ってる人しかその資格の優位性がわからない
(資格を否定する人は、資格を持ってない人がほとんど)
だから、どっちが良いかは状況による
0345デフォルトの名無しさん
2011/07/12(火) 14:42:42.300346デフォルトの名無しさん
2011/07/12(火) 14:42:43.40http://www.optinav.com/download/Diffraction_PSF_3D.java
このソースなのですが、肝心の画素はどこから取得しているのでしょうか?
引数のString argは使用されていませんし、GenericDialog gdもパラメータを設定しているだけです。
どこか見落としているだけかもしれませんが、よろしくお願いします。
0347デフォルトの名無しさん
2011/07/12(火) 15:26:04.52パッと見 pixels に0-255の計算値突っ込んでるようにしか見えないけど
何か外から画像取り込んだりするプログラムなの?
0348デフォルトの名無しさん
2011/07/12(火) 15:28:19.40になってるのが普通みたいだな。
0349デフォルトの名無しさん
2011/07/12(火) 15:34:18.44求められてることが違うのだから比較できるものではないだろ。
どっちも同じに見えるなら、基本情報取っとけ。
0350デフォルトの名無しさん
2011/07/12(火) 15:41:51.70一度画像を読み込んで、そこからPSF(点広がり関数)の画像を計算する物と思っていましたが・・・
やっぱり計算値を突っ込んでるだけにしか見えませんよね。
画像処理関係のほうで聞いてみます。
ありがとうございました。
http://www.thinkbasis.net/jp/main_news.0.html?&tx_ttnews%5Btt_news%5D=67&tx_ttnews%5BbackPid%5D=6&cHash=b296cb6022
0351デフォルトの名無しさん
2011/07/12(火) 16:37:52.480352デフォルトの名無しさん
2011/07/12(火) 16:55:22.120353デフォルトの名無しさん
2011/07/12(火) 17:34:55.53このなかで画像を描画するにはどうしたらいいのでしょうか?
getDocumentBaseで画像を選択しているのですが
game.java:38: シンボルを見つけられません。
シンボル: メソッド getDocumentBase()
場所 : sh の クラス
sound = getAudioClip(getDocumentBase(), "test.jpg");
と出てしまいます…
メインメソッドがあるのはclass gameでJFrameを使用しています
class shはJComponentを継承しています
その中にpublic void paintComponent(Graphics g)を記述しているのですが
シンボルが見つけられませんと出てしまいます…
0354デフォルトの名無しさん
2011/07/12(火) 17:52:59.21それならJFrameじゃなくてAppletかJAppletを継承しないと
画面の描画はpublic void paint(Graphics g)をオーバーライドして記述すればいいよ?
0355デフォルトの名無しさん
2011/07/12(火) 17:58:35.88すみません あまり理解していませんでした…
色々やっていったところ
JLabelを使ったら画像を表示することができました!
ありがとうございます
0356デフォルトの名無しさん
2011/07/12(火) 18:05:39.460357デフォルトの名無しさん
2011/07/12(火) 19:27:22.42Appletを継承させた新しいクラスを作って戻り値?で返せばいいのですかね?
0358デフォルトの名無しさん
2011/07/12(火) 20:52:38.93JFrameに拘らずHTMLファイルもつかうことにしました
0359デフォルトの名無しさん
2011/07/13(水) 06:57:08.49ふっしぎ〜♪
0361デフォルトの名無しさん
2011/07/13(水) 08:04:11.690362デフォルトの名無しさん
2011/07/13(水) 15:01:24.26インターネッツを使ったらエッチな画像を表示することができました!
ありがとうございます
0363デフォルトの名無しさん
2011/07/13(水) 16:37:35.820364328
2011/07/13(水) 16:39:46.99ども。自分もひとつの.jarにまとめるつもりです。
>>330
ども。クラスが、2、3個になることもあるんですね。自分のやりたいようにやると
たしかに、2,3個に分けたほうがなんとなくいいような気がしました。自分もそっちの方が
やりやすいので、そうします。とても参考になりました。
お二人様、どうもありがとうございました。自分はアマチュアなので、とても参考になります。
0365デフォルトの名無しさん
2011/07/13(水) 16:47:51.860366デフォルトの名無しさん
2011/07/13(水) 19:01:20.570367デフォルトの名無しさん
2011/07/13(水) 19:26:02.66ついつい400はかいちゃったりするが・・・
社員さんは大変だねぇ
0368デフォルトの名無しさん
2011/07/13(水) 19:45:23.01>>367
可読性から着てるんだろうけど、
そういう基準があるから、
クラス設計を勘違いする輩が多く出てくるんだよ。
多人数でやってるから、とか変な理由付けがあるんだろうけど、
だからこそ、クラス設計が重要であって行数なんか重要で無いわけで。
もちろん、行数制限が無いと、めいっぱいコードを書きなぐる(優秀と、馬鹿な)奴が出てくるから制限しているんだろうけど。
0369デフォルトの名無しさん
2011/07/13(水) 20:54:31.57タグライブラリにて、コレクションのiterate要素となりえるinput系タグ
(html:textなど)にindexed属性がまだ無かった時、JSPからどのように
コレクションをActionFormに回収していらっしゃいましたか?
0370デフォルトの名無しさん
2011/07/14(木) 03:28:16.71なんのためにあるの?
0371デフォルトの名無しさん
2011/07/14(木) 04:32:39.090372デフォルトの名無しさん
2011/07/14(木) 08:07:15.06Sun Java JRE Insecure Executable Loading Vulnerability
ttp://secunia.com/advisories/45173
The vulnerability is confirmed in version 6 update 26 (build 1.6.0_26-b03).
Other versions may also be affected.
0373デフォルトの名無しさん
2011/07/14(木) 10:12:34.330374デフォルトの名無しさん
2011/07/14(木) 17:11:06.17DateFormat df2 = DateFormat.getDateInstance(DateFormat.LONG);
String s = "January 12, 1952";
try{
d2 = df2.parse(s);
System.out.println(d2);
}catch(ParseException e){
System.out.println(e);
}
これなんで例外投げるの?
java.text.ParseException: Unparseable date: "January 12, 1952"
0375デフォルトの名無しさん
2011/07/14(木) 17:25:56.76ParseExceptionはパースが失敗した位置も記録しているからそれを調べてみたら?
0376デフォルトの名無しさん
2011/07/14(木) 17:30:54.86DateFormat df2 = DateFormat.getDateInstance(DateFormat.LONG, Locale.US);
0377デフォルトの名無しさん
2011/07/14(木) 17:32:42.53http://java.sun.com/javase/ja/6/docs/ja/api/java/text/DateFormat.html
> 正確な結果はロケールに依存しますが
0378デフォルトの名無しさん
2011/07/14(木) 17:40:14.97ども、デフォルトのロケールじゃダメだったか
0379デフォルトの名無しさん
2011/07/14(木) 19:24:47.31Hoge hoge = null;
ArrayList<Hoge> hogeList = new ArrayList<Hoge>();
for(int i = 0; i < 10000; i++) {
hoge = new Hoge();
hoge.setA(i);
hoge.setB(i * 5);
hogeList.add(hoge);
}
【2】
ArrayList<Hoge> hogeList = new ArrayList<Hoge>();
for(int i = 0; i < 10000; i++) {
Hoge hoge = new Hoge();
hoge.setA(i);
hoge.setB(i * 5);
hogeList.add(hoge);
}
※Hogeは自分で定義したクラスだと思ってください。
上記のソースの場合、性能に差はあるのでしょうか?
0380デフォルトの名無しさん
2011/07/14(木) 19:39:30.81最適化されて同じバイトコードになるから差はないよ
0381デフォルトの名無しさん
2011/07/14(木) 20:02:29.800382デフォルトの名無しさん
2011/07/14(木) 20:32:01.740383379
2011/07/14(木) 21:01:48.09最適化されるのですね。でもソースレビューの事などを考えると1のコードの方がいいですね。
0384デフォルトの名無しさん
2011/07/14(木) 21:07:09.22無駄に名前空間汚す癖のある奴だな、と思われたいなら 1の方がいい。
0385デフォルトの名無しさん
2011/07/14(木) 21:13:07.02どこで性能に差が出る可能性があると思ってるの?
0386デフォルトの名無しさん
2011/07/14(木) 21:14:53.231行目じゃないの?
無駄にnullで初期化してるとこ。
0387379
2011/07/14(木) 21:53:23.880388デフォルトの名無しさん
2011/07/14(木) 21:54:40.08というより、変数の参照範囲が最小限になる場所に宣言するのが基本
0389デフォルトの名無しさん
2011/07/14(木) 22:00:31.19そのときには、ループ内で無駄にインスタンス生成してなかった?
0390379
2011/07/14(木) 22:00:36.95そうなんですか。
違ってたらすいませんが、ループ内で変数宣言するとループ毎にインスタンスが生成されてしまうのではないのですか?
0391デフォルトの名無しさん
2011/07/14(木) 22:01:37.67オブジェクトを使いまわせる場合はループの外でnewして使い回したほうがよい場合はある
でも>>379のケースはどっちみちループ内でnewするんだから当てはまらない
0392デフォルトの名無しさん
2011/07/14(木) 22:07:27.08一見ループする度に作られるように見えるけど、実際にはコンパイラが最適化してるんじゃなかったっけ?
0394デフォルトの名無しさん
2011/07/14(木) 22:08:18.06年寄り先生だったとか
0395デフォルトの名無しさん
2011/07/14(木) 22:17:51.02スタックの仕組みを学校の授業程度に理解してればわかって当たり前のこと
0396デフォルトの名無しさん
2011/07/14(木) 22:23:45.370397デフォルトの名無しさん
2011/07/14(木) 22:28:36.17後者でもメソッド抜けるまでは参照残るんじゃないの
0398デフォルトの名無しさん
2011/07/14(木) 22:37:15.03今回の例ではあんま意味なかった・・・ >ガベージコレクタ
ループ内だけでインスタンス使うなら後者の書き方がベターだよねという話
0399デフォルトの名無しさん
2011/07/14(木) 22:53:34.850400デフォルトの名無しさん
2011/07/14(木) 22:58:10.49あくまでOracleがコミュニティに対してOpenJDKをGPLの下で恵んでやってるだけで
Oracle自身はライセンスには縛られない
0401デフォルトの名無しさん
2011/07/14(木) 23:12:00.470402デフォルトの名無しさん
2011/07/15(金) 02:02:42.30使用しているのは
1.外部プロセスとして起動されるクラス
class hoge{
public static void main(String[] args){
System.out.print("hogehoge-Std");
System.err.print("hogehoge-Err");
}
}
0403続き
2011/07/15(金) 02:04:53.002.外部プロセスを起動するクラス
-----前略-----------
Process child = Runtime.getRuntime.exec("java hogehoge");
InputStreamThread stdout = new InputStreamThread(child.getInputStream());
InputStreamThread stderr = new InputStreamThread(child.getErrorStream());
stdout.start();
stderr.start();
--------後略-------
その他、ttp://www.ne.jp/asahi/hishidama/home/tech/java/process.htmlを参考にしてInputStreamThreadを作成し、exitValue()を利用したタイムアウト監視をしています。
結果を確認すると、標準エラーも標準出力もまとめてstdoutに出力されているようなんです。
外部プロセスからSystem.errを取得することはできないのでしょうか?
0404デフォルトの名無しさん
2011/07/15(金) 06:32:45.600405385
2011/07/15(金) 13:02:02.58null代入のコストじゃなくて変数宣言のこすとを気にしてる、ということね。
スタックに積まれるのは最初に代入されたときで、変数宣言自体のコストは0。
なので気にする必要は無いよ。
ttp://feather.cocolog-nifty.com/weblog/2010/05/post-a00a.html
にもう少し詳しい説明が。
0406デフォルトの名無しさん
2011/07/15(金) 15:02:07.19LinkedHashMap以外に何がある?
0407デフォルトの名無しさん
2011/07/15(金) 15:36:44.350408デフォルトの名無しさん
2011/07/15(金) 15:55:49.46execって中でProcessBuilder呼んでるから差はないな。
とはいえ、ProcessBuilderのほうが勉強している感じがするw
0409379
2011/07/15(金) 21:28:26.80またまた質問があるのでよろしくお願いします。
【1】
private void methodA(boolean bool, Map<String, Integer> map, Hoge hoge) {
if(bool) {
map.put("str1", hoge.getA());
map.put("str2", hoge.getB());
} else {
map.put("str1", hoge.getC());
map.put("str2", hoge.getD());
}
}
【2】
private void methodA(boolean bool, Map<String, Integer> map, Hoge hoge) {
final String str1 = "str1";
final String str2 = "str2";
if(bool) {
map.put(str1, hoge.getA());
map.put(str2, hoge.getB());
} else {
map.put(str1, hoge.getC());
map.put(str2, hoge.getD());
}
}
上記のソースの場合は修正やメンテを考ると、
Mapのkey値は【2】のように定数宣言した方がいいのでしょうか?
0410デフォルトの名無しさん
2011/07/15(金) 21:52:37.69メソッド外で static final すんならともかく、メソッド内で定数は普通はしないな。
methodA とは別に map.get("str1") する必要があるメソッド内でも
final String str1 = "str1" とかやるんじゃ定数にする意味ないし。
0411デフォルトの名無しさん
2011/07/15(金) 22:52:30.22循環参照でメモリリークします?
class Owner {
....List<Child> childList;
}
class Child {
....Owner owner;
}
0412デフォルトの名無しさん
2011/07/15(金) 23:13:27.450413デフォルトの名無しさん
2011/07/15(金) 23:15:18.69No
http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3
それでリークするのは「参照カウント」。
Javaは「マーク・アンド・スイープ」。
こちらがまとまってる(リンク先も参照)
ttp://d.hatena.ne.jp/Kishi/20080209/1202552472
>>421
メモリを確保して参照しつつ使用はしない。
0414デフォルトの名無しさん
2011/07/15(金) 23:15:56.73しない
ルート(スタックか静的フィールド)から辿れないオブジェクトはGCの対象になる
>>412
static ArrayList refholder = new ArrayList();
refholder.add(new Object());
0415デフォルトの名無しさん
2011/07/15(金) 23:27:12.09gcが優秀なplatfはjvmかdotnetしかないから、webだなんだとappleやadobeやjsがどんなに騒いでも実質選択肢もこのどちらかしかないですよね。
0416デフォルトの名無しさん
2011/07/15(金) 23:33:13.53NN3, NN4, NN4.5(のバイナリー)とかも入手しにくくなってきてるんでいずれはmozillaもそういう運命なのかなって思います。
0417デフォルトの名無しさん
2011/07/16(土) 01:11:54.28それにfirefoxのgcはjavaとおなじ並列マーク&スリープだぞ。
0418デフォルトの名無しさん
2011/07/16(土) 02:53:51.830419デフォルトの名無しさん
2011/07/16(土) 03:00:50.98オラクルのjava7ではgcで差別化をしてgcで商売するようだけど、gcはpgではまったく制御できないからオラクル独断とみなされて見捨てられるんじゃないか。
0420デフォルトの名無しさん
2011/07/16(土) 11:07:57.37じゃあ、IEはメモリリークしまくりだなwww
0421デフォルトの名無しさん
2011/07/16(土) 14:11:43.32昔のだと負荷が集中する理由でハードウェア強化しても改善しにくかったけど、
全体として重くても負荷が分散しているならハードウェア強化で改善しやすい
0422デフォルトの名無しさん
2011/07/16(土) 15:10:21.59TCKをオープンに使えるようにしたのがoracleの唯一の良心だな。
>>420
旧verだと実際にメモリリークしてたぞ。
0423デフォルトの名無しさん
2011/07/16(土) 16:52:03.22そのjarが更新されていればサーバからダウンロードするjarを作りたいのですが、
ネットワーク接続やログ出力などは共通処理にしたいと考えています。
皆さんなら共通処理のclassのみを別のjarにしますか?
それともjar毎に共通処理のclassを含めますか?
また、jarを環境変数のclasspathに通すと、jarファイルがロックされて(?)
更新できないのですが、何か良い方法はないでしょうか?
OS:Windows XP SP3
Java:1.6 update 26
0424デフォルトの名無しさん
2011/07/16(土) 18:19:34.88今だとmonoはappleが引き取るのがいいかなって思う。
appleはllvm+objcなんかに投資しないで素直にms+mono路線というのもありえた。
0425デフォルトの名無しさん
2011/07/16(土) 20:35:33.940426デフォルトの名無しさん
2011/07/16(土) 20:42:34.78なかなかイメージしにくいが
0427デフォルトの名無しさん
2011/07/16(土) 20:46:37.280428デフォルトの名無しさん
2011/07/16(土) 21:36:52.71今後のjavaはやっぱりもう何も期待できないんですか?(ウェブ・ネットワークとデスクトップ開発的に)
0429デフォルトの名無しさん
2011/07/16(土) 21:41:52.080430デフォルトの名無しさん
2011/07/16(土) 21:44:05.21ってAndroidのこと?
0431デフォルトの名無しさん
2011/07/16(土) 21:52:43.38オラクルはopenoffice,opensolarisの件もあるしjava,javafxのアピールはさっぱりだしやる気ないというよりやっぱり終わってるんですよね。
それとjavaをどこのplatfの開発者をメーンターゲットにしてjava,javafxを売り込もうとしてるんですか。
0432デフォルトの名無しさん
2011/07/16(土) 22:11:07.340433デフォルトの名無しさん
2011/07/16(土) 22:15:34.330434デフォルトの名無しさん
2011/07/16(土) 22:19:15.54javaはandroidとサーバサイドあるから、まだ行ける
javafxは手を出すだけ時間の無駄
c#はwindows向けなら、c#が有利
ランタイムのうpデートの面でも有利
(珍しくwinうpデートを褒められる所w)
0435デフォルトの名無しさん
2011/07/16(土) 22:27:01.960436デフォルトの名無しさん
2011/07/16(土) 22:34:18.95流行る可能性があったとしてもIT業界全体が商売相手としてのMSを毛嫌いしていてMSを締め出しているので。
デスクトップosもx86全盛の今ならまだまだMS独占でしょうけどx86には開かれた未来はもうないのでいずれは・・・
0437デフォルトの名無しさん
2011/07/16(土) 22:49:16.05それは出来ないな
私もjavaは一定の評価しつつもc#支持者なんでね
デフォルトでGUIデザイナ付いてるのは大きい
コンパイラもIDEもGUIデザイナもバラバラのjavaとは違うのだよ
(その分winに偏ってるのは認める)
0438デフォルトの名無しさん
2011/07/16(土) 22:52:19.33特にTwitterは、非常に気軽に書く事ができます。おまけに前後関係がまったく無視された一部が次々と拡散されていく性質を持っています。
震災の時なども数多くの「デマ」が飛び交っていましたが、そのような危険性のあるメディアであるということです。
また、ITやウェブになれていない人であればともかく、ITの勉強会に出席するような有識者が行う行為ではないと思います。
さらに、このようなTweetをされ、問題となってしまうと、講師の人も下手な事を言えない状況となります。
札幌のWebエンジニアの綴る日常と開発の日々。
http://d.hatena.ne.jp/shuji_w6e/20110715/1310708151
0439デフォルトの名無しさん
2011/07/16(土) 22:53:41.51元々SunにいたSwing関連の強力なプログラマ、スターエンジニア達は、JavaFXやりますよ、といった途端に一斉に退職して、今はGoogleにいてAndroidを作ってると。なるほどw #sjc11
2011-07-09 17:51:42 via Twitter for Mac
まず、このツイートのなにが問題であるかという点ですが、「(Oracleによる)JavaFX(2.0)の方針がSwing関係のエンジニアの流出の原因」としている点です。
0440デフォルトの名無しさん
2011/07/16(土) 23:05:51.71結局
iOS=Objective C
Android = java
Windows Phone/xbox360 = C#
と、それぞれ囲い込んでる訳だし、それぞれ覚えるしかない訳だが。。。
何が言いたいんだ?
androidでしか開発しません宣言か?
0441デフォルトの名無しさん
2011/07/16(土) 23:11:09.40いわゆるジャバラーという人種のうちでwindowsのようなちゃんとしたGUIを設計してそれを作れる人は一人もいませんよ。
なので勉強会に忙しいジャバラーにはswingとかjavafxなんか実際まったく眼中ないです。
0442デフォルトの名無しさん
2011/07/16(土) 23:24:52.40EclipseならindigoからWindowBuilderがあるし前からプラグインで優秀なGUIビルダはあったしnetbeansはもとからまともなGUIビルダあったし
コンパイラは最適化の方針の違いでしか無いし実質、sun javacかejcの二択でしかないしeclipse搭載のejcはsun javacと違いなんて無い様なもんだし
いまどきjavaのIDEがどうだのGUIビルダがどうだのとかただの情弱でしか無いだろ。
monoは評価できるが.netとかJ++引きずって囲い込みしたいだけじゃん。
0443デフォルトの名無しさん
2011/07/16(土) 23:27:44.68いや、流石に元ジャヴァラーで現在C#メインの自分でもGUIはマトモに書けるw
ただ、C#使った後だとjavaが面倒臭くなっただけだw
0444デフォルトの名無しさん
2011/07/16(土) 23:36:20.78情弱上等
楽にプログラミングしたいだけなのに、あれこれ探して疲れるのはごめんだ
ググるのはコードだけにさせてくれよ
0445デフォルトの名無しさん
2011/07/17(日) 00:03:49.23IIS、SQLServer、C# で.netに揃えればMSサポートが効いて
業務システムとしては安心かもしれないところぐらいかな、利点は。
0446デフォルトの名無しさん
2011/07/17(日) 02:11:40.720447デフォルトの名無しさん
2011/07/17(日) 02:35:38.470448デフォルトの名無しさん
2011/07/17(日) 02:36:58.95何に?
0449デフォルトの名無しさん
2011/07/17(日) 02:56:29.63エクリプスでとことん苦労したんですね
お察しします・・・
0450デフォルトの名無しさん
2011/07/17(日) 03:06:39.27現在は2011年7月でもうすぐジャバ7がリリースされるころなのですが、いつまでも過去のサンの栄光にすがってばかりの典型的な「情弱」はあなたの方だと思いますよ。
0451デフォルトの名無しさん
2011/07/17(日) 04:36:20.16やぱーりctrl+spaceでメソッド名でてくるのがほしいっす。
いらねー機能満載の変なIDEじゃなくて
軽快でバランス良くて使いやすいIDE誰も作らないの?
0452デフォルトの名無しさん
2011/07/17(日) 05:10:52.570453デフォルトの名無しさん
2011/07/17(日) 09:49:27.67ロケールの国/地域コードを返します。
getDisplayCountry(Locale inLocale)
ユーザーへの表示に適した、ロケールの国の名前を返します。
Localeクラスだけどこの違いは何?
0454デフォルトの名無しさん
2011/07/17(日) 09:49:49.92そんなことどうでも
金くれ
0455デフォルトの名無しさん
2011/07/17(日) 10:12:41.90getCountry()はドキュメント読めば ISO 3166の2文字のコードって書いてあるぞ。
System.out.println(Locale.JAPAN.getCountry()); //JP
System.out.println(Locale.US.getCountry()); //US
getDisplayCountry(Locale inLonale) は inLocaleで指定した言語で一般的な表記に翻訳する。
System.out.println(Locale.US.getDisplayCountry(Locale.JAPANESE)); //アメリカ合衆国
System.out.println(Locale.US.getDisplayCountry(Locale.ENGLISH)); //United States
0456デフォルトの名無しさん
2011/07/17(日) 10:57:08.19>>EclipseならindigoからWindowBuilderがあるし
どこにあるの?
0457デフォルトの名無しさん
2011/07/17(日) 11:13:24.34ありがとう
0458デフォルトの名無しさん
2011/07/17(日) 12:39:15.00http://eclipsesource.com/blogs/2011/06/21/window-builder-top-indigo-feature-2/
0459デフォルトの名無しさん
2011/07/17(日) 15:39:28.98Sample sample = null;
とした時、変数 sample は型の情報だけ持っているという解釈で合っていますでしょうか
0460デフォルトの名無しさん
2011/07/17(日) 16:09:16.72持っているものと持っていないもの列挙してみ?
0461459
2011/07/17(日) 16:28:34.51レスありがとうございます。
■持っているもの
・変数としての名前
・型
■持っていないもの
・メモリ上のアドレス
くらいしかわからなくて……
0462デフォルトの名無しさん
2011/07/17(日) 20:35:01.79いや。型の情報も持っていない。
0463デフォルトの名無しさん
2011/07/17(日) 20:50:13.22ローカル変数の話だよね?
VM的にはどこかのスロットにnullオブジェクト参照が入っているだけ。
nullオブジェクトはnull型にしかなれない。
instanceof演算子にsampleを渡しても、必ず偽が返る。
0464デフォルトの名無しさん
2011/07/17(日) 21:32:35.23ありがとうございます。
ネットの解説サイトにも書いてありましたが、null は null 型なんですね。
勉強になりました
0465デフォルトの名無しさん
2011/07/17(日) 21:34:14.40実行時には変数名だって削られるわけで。
0466デフォルトの名無しさん
2011/07/17(日) 21:50:46.18= null; とした時だけを特に語るのはやっぱり変じゃね
0467デフォルトの名無しさん
2011/07/17(日) 22:46:34.360468デフォルトの名無しさん
2011/07/18(月) 00:01:50.420469デフォルトの名無しさん
2011/07/18(月) 03:18:41.850470デフォルトの名無しさん
2011/07/18(月) 05:50:43.30いつもListのsize()とジャストサイズのT[]の配列を取得する目的で使用しています.
そのために例えばList<Integer>のlistに対して
Integer[] array = list.toArray(new Integer[]{});
というふうに使っているのですが,こういう使い方は一般的でしょうか?
0471デフォルトの名無しさん
2011/07/18(月) 05:53:51.940472デフォルトの名無しさん
2011/07/18(月) 07:07:18.87方法としては以下の 2 つがあると思いますが、
この 2 つのうちのどちらを用いるのがベターなのかがいまいちわかりません。
�@ System.out.println(new Date());
�A System.out.println(Calendar.getInstance().getTime());
もし、システムの現在時刻を取得する「メソッド」を作成するとしたら
static メソッドを使用している�Aの方が良いのかな? となんとなく思っています。
考えがまとまっていなくて申し訳ございません。
コメントいただけると嬉しいです。よろしくお願いします
0473デフォルトの名無しさん
2011/07/18(月) 07:12:28.34「static メソッドを使用している�Aの方が良いのかな?」ってのは変ですね。
システムの現在時刻を取得する「メソッド」を作成するだけが目的だったら
どちらを使っても違いはないのでしょうか
0474デフォルトの名無しさん
2011/07/18(月) 07:22:29.86後者の方法だと内部で作ったDateのオブジェクトを取り出してるだけだから
前者で事足りるなら前者の方がいいと思います
staticメソッドを使っているように見えても単にstaticの中でCalendarのオブジェクトを作っているだけ
0475デフォルトの名無しさん
2011/07/18(月) 08:11:04.91丁寧なご説明ありがとうございます。
一応 Calendar の getInstance メソッドの処理の流れを追っかけてみましたが
結構複雑ですね……。
Calendar オブジェクトは特に使う必要がないので、new Date() を使おうと思います。
ありがとうございました
0476デフォルトの名無しさん
2011/07/18(月) 09:47:36.57今度はデザインパターンのシングルトンパターンについて疑問が出てしまいました。
シングルトンパターンは、インスタンス生成を一度だけにしたいという制約から
考え出されたデザインパターンだと思いますが、
そもそもインスタンス生成などさせなくても、メソッドを全て public static にすれば良いのではないのでしょうか。
それとも、
「メソッドを全て public static にする方法でもいいけど、シングルトンパターンの方がベターだよ」
ということなのでしょうか。
何度も申し訳ないですがよろしくお願いします
0477デフォルトの名無しさん
2011/07/18(月) 09:52:45.51public staticだとできない
0478デフォルトの名無しさん
2011/07/18(月) 10:01:02.64引数やらセッターでシングルトンなインスタンス渡せるから取り回しがしやすい場合、
例えばデフォルト設定をシングルトンで、ユーザ設定は新しいインスタンス生成、
引数で切り替えるとかやりやすくなるケースは結構多い。
他にも環境依存のオブジェクトなんかは public static なメソッドで環境毎に if で分岐するよりいい場合
例えばUnixのファイル属性扱うオブジェクトとWindowsのファイル属性扱うオブジェクト、
別々の実装にしておいてシングルトンなインスタンスを環境毎に切り替えるってのも結構多い。
0479デフォルトの名無しさん
2011/07/18(月) 10:04:16.25DI ですかー。DI については以前少し勉強したものの理解が浅いので
勉強してきます。ありがとうございました!
0480デフォルトの名無しさん
2011/07/18(月) 10:10:44.99死ねよ
0481デフォルトの名無しさん
2011/07/18(月) 10:13:46.57レスありがとうございます。
> 例えばデフォルト設定をシングルトンで、ユーザ設定は新しいインスタンス生成、
> 引数で切り替えるとかやりやすくなるケースは結構多い。
コンストラクタを引数別に複数作って、
デフォルト設定のコンストラクタは private、ユーザ設定のコンストラクタは public にするという感じでしょうか。
なるほど。
> 他にも環境依存のオブジェクトなんかは public static なメソッドで環境毎に if で分岐するよりいい場合
> 例えばUnixのファイル属性扱うオブジェクトとWindowsのファイル属性扱うオブジェクト、
> 別々の実装にしておいてシングルトンなインスタンスを環境毎に切り替えるってのも結構多い。
呼び出し側に環境依存をあまり意識しなくて済むようにすることで
より良い実装につながりますよね(ポリモルフィズムだったかな)。
シングルトンパターンを採用することで色々なメリットがあるんですね。
勉強してきます。ありがとうございました
0482デフォルトの名無しさん
2011/07/18(月) 10:18:04.68不快な思いをさせて申し訳ないです。
java の初歩がわかるようになるまでこのスレに書き込むのはやめます
0483デフォルトの名無しさん
2011/07/18(月) 10:27:14.68あぼーんするから
0484デフォルトの名無しさん
2011/07/18(月) 10:32:54.15どうせ君は人に聞いてばかりで自分で何もしないゆとりなんだろうけ、この世界では問題は最終的には一人で解決をしていく孤独の世界だから、人と何か関わりながらでないとモチベが続かないなら君はこの世界に向いてないよ
0485デフォルトの名無しさん
2011/07/18(月) 10:41:35.730486デフォルトの名無しさん
2011/07/18(月) 10:47:46.600487デフォルトの名無しさん
2011/07/18(月) 10:57:36.56死ねよ
0488788
2011/07/18(月) 12:35:45.69あぼーんするから
0489デフォルトの名無しさん
2011/07/18(月) 15:38:22.94しかもこいつ某所で死ね死ね言ってる携帯厨と同じなんだが。
0490デフォルトの名無しさん
2011/07/18(月) 16:20:37.690491デフォルトの名無しさん
2011/07/18(月) 22:30:42.80荒すなカス
0492デフォルトの名無しさん
2011/07/18(月) 22:32:32.29ゆとりの夏、金鳥の夏
0493デフォルトの名無しさん
2011/07/18(月) 23:26:25.33C++とは違うとこだね。
0494デフォルトの名無しさん
2011/07/18(月) 23:51:47.22人違い、してませんか?
0495デフォルトの名無しさん
2011/07/18(月) 23:59:45.20便宜上null型と呼ぶこともあるというだけのことで、どこかにnullオブジェクトがあるわけじゃない
扱い自体はC++のnullポインタと別に違わない
0496デフォルトの名無しさん
2011/07/19(火) 00:16:56.450497デフォルトの名無しさん
2011/07/19(火) 00:58:26.74俺「は?何でDateクラス使っちゃいけないの?」
DQNPG「業務じゃDateクラスは使っちゃいけねえんだよw」
俺「だから、その理由は?」
こんな理由もまともに答えられないDQNPGがいる職場では働き炊くない。
0498デフォルトの名無しさん
2011/07/19(火) 01:04:29.720499デフォルトの名無しさん
2011/07/19(火) 02:25:41.400500デフォルトの名無しさん
2011/07/19(火) 02:37:41.77ゆとり「は?何でDateクラス使っちゃいけないの?」
カスPG「業務じゃDateクラスは使っちゃいけねえんだよw」
ゆとり「だから、その理由は?」
これが日本ジャヴァラーの現実なのです
0501デフォルトの名無しさん
2011/07/19(火) 02:39:42.47自分なんて学生時代から 2 時間悩んでわからなかった問題は人に聞くことにしてるよ。
だから現役では慶應と上智しか受からなかったんだと思う。
このスレの住人なら数学や物理、化学の難問も人に訊かずに解いて
東大なんか楽勝なんだろうな
0502デフォルトの名無しさん
2011/07/19(火) 03:15:12.460503デフォルトの名無しさん
2011/07/19(火) 03:18:28.530504デフォルトの名無しさん
2011/07/19(火) 03:21:27.40どうでもいいから金くれ
0505デフォルトの名無しさん
2011/07/19(火) 03:24:47.92でも働かざるを得ないのがお前の力量を示している、と。
0506デフォルトの名無しさん
2011/07/19(火) 03:29:31.770507デフォルトの名無しさん
2011/07/19(火) 03:47:34.50東大乙
0508デフォルトの名無しさん
2011/07/19(火) 04:03:04.77class Sample{};
int main(){
Sample *sample = NULL;
std::cout << (typeid(*sample) == typeid(Sample)) << "\n";
std::cout << typeid(*sample).name() << "\n";
}
0509デフォルトの名無しさん
2011/07/19(火) 04:40:27.240510デフォルトの名無しさん
2011/07/19(火) 16:02:41.69それnullも実行時の型も全く関係ないよ
class Sample{};class Sample2{};
int main(){ Sample *sample = new Sample();
std::cout << typeid(*(Sample2*)(void*)sample).name() << "\n"; }
試してみ
RTTIを使うならclass Sample{public:virtual void hoge(){}};とでもしとけば
typeidに*(Sample)NULLが渡った時点でbad_typeid例外が出る
0511デフォルトの名無しさん
2011/07/19(火) 16:09:03.24上位5%が基本情報とSJCP持ってますキリッなレベル
0512デフォルトの名無しさん
2011/07/19(火) 17:29:43.37Javaサーブレットに関するスレがなかったのでこちらで質問です。
ApacheのhtaccessのSetEnvIf Refererみたいな
リファラによるアクセス制限を
Tomcatのweb.xmlでする方法はありますか?
0513デフォルトの名無しさん
2011/07/19(火) 17:32:59.970514512
2011/07/19(火) 18:11:20.82この手の要求は一般的だと思うので既存のフィルタがありそうな気がしますが
Apacheのcommonsとかにないんでしょうかね
0515デフォルトの名無しさん
2011/07/19(火) 18:17:39.06ここ見れば10秒で書けると思うけどどうだろう
0516デフォルトの名無しさん
2011/07/19(火) 18:39:05.44> それnullも実行時の型も全く関係ないよ
>>493の説明を>>459のコードに合わせて書いたわけなので
正にその理解で正しいのだが。
0517デフォルトの名無しさん
2011/07/19(火) 19:24:55.17C++のローカル変数には型情報があるがJavaには無いってこと?
typeid(*sample)は実行時に変数の情報を参照してるんじゃなくて
コンパイル時に結果(対象の型)が決まってるんで、
そりゃコンパイル時にコンパイラが型を認識してるのはJavaでもC++でも当たり前じゃないの
実行時の話でしょ?勘違いしてたらごめん
0518512
2011/07/19(火) 19:36:19.89ありがとうございます
パフォーマンスや柔軟性が考慮された既製品があればそれを使いたいところですが
ないのなら自分で作るしかないですね
0519デフォルトの名無しさん
2011/07/19(火) 19:53:12.95> それがどうC++と違うことの説明になっているのか理解できない
Javaで同じコード書いてみりゃいいじゃん
0520デフォルトの名無しさん
2011/07/19(火) 19:58:58.24でもそれって単にコンパイル時の問題でしょ。
Java言語に同じ機能を追加するのにJVMの変更はいらない。
もともとのnullがどうのっていうのは実行時の型情報の話じゃないの?
0521デフォルトの名無しさん
2011/07/20(水) 02:46:38.68死ねよゆとり
0522デフォルトの名無しさん
2011/07/20(水) 02:56:10.94>>496-501
0523デフォルトの名無しさん
2011/07/20(水) 11:07:30.22プリミティブ型だけ?
ベリファイヤが実行時の話に含まれるのかどうかは別として
0524デフォルトの名無しさん
2011/07/20(水) 11:09:27.46リアルに教えてください!
0525デフォルトの名無しさん
2011/07/20(水) 12:15:08.70そういう時は、まずは自分から言わないか?
0526デフォルトの名無しさん
2011/07/20(水) 12:26:26.700527デフォルトの名無しさん
2011/07/20(水) 12:36:33.240528デフォルトの名無しさん
2011/07/20(水) 12:52:45.480529デフォルトの名無しさん
2011/07/20(水) 13:29:26.99自己紹介乙
0530デフォルトの名無しさん
2011/07/20(水) 13:34:53.56糞ゆとりが夏休みに入ったんだろ
相手にするな
0531デフォルトの名無しさん
2011/07/20(水) 13:41:54.86とりあえずインポートしました。
で、HelloWorldのexecute()メソッドに
System.out.println("test");
を入れてみたんですが、コンソールに表示されません。
なぜでしょうか?execute()が呼び出されていないのでしょうか?
0532デフォルトの名無しさん
2011/07/20(水) 13:57:01.64ブラウザからどんなURLを送ったの?
0533デフォルトの名無しさん
2011/07/20(水) 14:06:53.03荒すな
0534デフォルトの名無しさん
2011/07/20(水) 14:08:59.57どっちかっつーと、プリミティブ型の int short char byte あたりは区別されなかった記憶が。
LocalVariableTable_attribute がついてりゃ一発だけど、ついてる保証ないし。
0535デフォルトの名無しさん
2011/07/20(水) 14:15:08.69/example/HelloWorld.action
です。
0536デフォルトの名無しさん
2011/07/20(水) 14:54:48.53javaファイルをいくら変更してもtomcatに反映されませんでしたが
javaファイルをsrcフォルダの下に移動させたら反映されました。
0537デフォルトの名無しさん
2011/07/20(水) 17:12:49.470538デフォルトの名無しさん
2011/07/20(水) 17:24:31.16今月30歳になりますた
0539デフォルトの名無しさん
2011/07/20(水) 17:47:46.110540デフォルトの名無しさん
2011/07/20(水) 17:50:08.340541デフォルトの名無しさん
2011/07/20(水) 19:18:52.860542デフォルトの名無しさん
2011/07/20(水) 20:47:49.36まあ、母親は死んだが、ちゃんと働いてるぞ
0543デフォルトの名無しさん
2011/07/20(水) 23:00:06.84何らかの微分方程式を4次のルンゲクッタを使ってt→0方向に解きたい場合,
どのようなことをすれば良いでしょうか?
抽象的すぎるかもしれません.コメントをください.
0544デフォルトの名無しさん
2011/07/20(水) 23:10:10.36Javaとほとんど変わらないのでJavaに読み替えましょう。
アルゴリズム自体についてはスレ違いです。
0545デフォルトの名無しさん
2011/07/20(水) 23:10:27.930546デフォルトの名無しさん
2011/07/20(水) 23:17:41.810547デフォルトの名無しさん
2011/07/21(木) 01:20:06.520548デフォルトの名無しさん
2011/07/21(木) 01:42:33.48Androidの
Activity.runOnUiThread
Toast
上記2つと同じ様な物を探しています。
御存知の方よろしくお願いします。
0549デフォルトの名無しさん
2011/07/21(木) 02:01:15.30ちなみにMEにはある。
0550デフォルトの名無しさん
2011/07/21(木) 03:50:29.51Android知らないので名前でエスパーするよ
http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/SwingUtilities.html#invokeLater(java.lang.Runnable)
http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/TrayIcon.html#displayMessage(java.lang.String, java.lang.String, java.awt.TrayIcon.MessageType)
0551デフォルトの名無しさん
2011/07/21(木) 16:00:37.630552デフォルトの名無しさん
2011/07/21(木) 16:57:35.56staticイニシャライザの方が先に実行されるが。
0553デフォルトの名無しさん
2011/07/21(木) 17:13:21.10http://java.sun.com/docs/books/jls/third_edition/html/execution.html#12.4.1
> A class or interface type T will be initialized immediately before the first occurrence of any one of the following:
>
> T is a class and an instance of T is created.
static初期化子の方がコンストラクタより後に実行されるようなら言語規定に反してる。
もし勘違いでないならBugDatabaseに送るといいよ。
0554デフォルトの名無しさん
2011/07/21(木) 17:30:33.320555デフォルトの名無しさん
2011/07/21(木) 17:48:18.390556デフォルトの名無しさん
2011/07/21(木) 18:20:01.55とにかくコードをよこせ
0557デフォルトの名無しさん
2011/07/21(木) 19:31:50.87何を見てそう判断したの?
0558デフォルトの名無しさん
2011/07/21(木) 20:31:03.520559デフォルトの名無しさん
2011/07/21(木) 20:51:24.08言語は同じような実装だから邪ではないと思う、
0560デフォルトの名無しさん
2011/07/21(木) 20:51:28.42あれ?だよね?
オレもそう思ってたんだけど
あれ?試しにSunJVM上で簡単に書いてみたらstaticの方が先だった。
そのつもりでいてAndroidライブラリプロジェクト中のクラスを実行したら
コンストラクタの方が先だったんでパニクった。
単純なクラスを書いて同じように実行したらstaticが先になった。
そうか、バグなのか。
詳しく調べてみる。
ありがトン
0561デフォルトの名無しさん
2011/07/21(木) 20:52:05.400562551
2011/07/21(木) 20:58:35.80シングルトンにしてるんだが
staticなインスタンスの生成がstaticイニシャライザより上に書いてあった・・
当然だよなorz
0563デフォルトの名無しさん
2011/07/21(木) 21:00:55.130564デフォルトの名無しさん
2011/07/21(木) 21:05:53.05少なくともそのクラスを使う前には呼び出されている、くらいの前提で作ったほうが分かりやすいと思う
0565デフォルトの名無しさん
2011/07/21(木) 21:35:19.810566デフォルトの名無しさん
2011/07/21(木) 21:48:55.03あるクラスCCCのstaticメソッドを呼ぼうとしたら、
派生元BBBのstaticイニシャライザが起動し、
そのイニシャライザからCCCのコンストラクタが呼ばれたとか。
こーゆーばあいCCCのstaticイニシャライザはまだ呼ばれていないと思う。
こーゆーばかな設計はたぶんFindBugsとかで検出してくれるはず。
同じクラスなのにassertオンオフの設定が違うとか、昔あったよ…
(staticイニシャライザが終わるまでそのクラスのassertはオン)
0567デフォルトの名無しさん
2011/07/21(木) 21:54:58.29「staticイニシャライザが始まるまでそのクラスのassertはオン」
だ。
0568デフォルトの名無しさん
2011/07/21(木) 22:28:20.15そりゃ、駄目だろwww
0569デフォルトの名無しさん
2011/07/22(金) 11:32:25.53なぜ聞こうと思った?w
0570デフォルトの名無しさん
2011/07/22(金) 18:05:41.51実際のところそういうアルファベット以外を使うことってあるんでしょうか?
基本はアルファベットのみだと思いますが,
例えば仕事によっては色々な固有名称があってそういう単語をいちいち英語やローマ字に直して
クラスやメソッド名にしたりするのは,数が大量になってくると煩雑になって可読性も低くなると思います
するともうその漢字などをそのまま使ったほうが楽なんじゃないかと思えるんですが・・・
0571デフォルトの名無しさん
2011/07/22(金) 18:12:30.120572デフォルトの名無しさん
2011/07/22(金) 18:18:17.70はじめてJavaの噂を聞いたときは、
「これでSolarisのbashやgrepとかが全部Javaで書き直されるんだなぁ」
と期待したものだが…
0573デフォルトの名無しさん
2011/07/22(金) 18:38:37.96UnJash
0574デフォルトの名無しさん
2011/07/22(金) 19:36:47.38まぁ、やってみたらいいよ。
実際のソース書いてみたらわかるから。
VBで似たような拷問を受けた事がある。
0575デフォルトの名無しさん
2011/07/22(金) 21:22:16.56イメージとしては、DBのテーブルみたいな感じです。
Table t = new Table();
t.addColumn("EmpNo", Integer);
t.addColumn("Name", String);
t.addColumn("Age", Integer);
t.addRow(1, "sasaki", 20);
t.addRow(2, "tanaka", 31);
TableRow tr = t.get("EmpNo", 1);
System.out.println(tr.get("Name"))
■結果
sasaki
0576デフォルトの名無しさん
2011/07/22(金) 21:25:04.200577デフォルトの名無しさん
2011/07/22(金) 21:25:54.830578デフォルトの名無しさん
2011/07/22(金) 22:51:00.660580578
2011/07/22(金) 23:07:04.940581デフォルトの名無しさん
2011/07/22(金) 23:15:20.07例えばインタフェイス型同士の関係を調べることはできない
しかしinstanceof演算子同様にnullを渡しても平気
0582デフォルトの名無しさん
2011/07/22(金) 23:17:51.03ただしプリミティブ型の拡大変換に対応してないので看板に偽りアリな感じ。
0583578
2011/07/23(土) 01:46:47.73なるほど。オブジェクトを渡す分少し制限がありますね。
>>582
とりあえず、プリミティブ型が判定できる分isInstanceより高機能ですね。
ありがとうございます。
0584デフォルトの名無しさん
2011/07/23(土) 03:34:05.96実際にマークアンドリーセンがNCをjavaで書きなおしたけどあとブラウザのGUIのみって段階になってプロジェクト破棄されたよ。
その生き残りがmozilla Rhinoだよ。
むかしはJava Mail使ったメールコンポーネントもあったけどmozillaがインターネットスイートからブラウザ単体に方向転換したときに消えた。
Rhinoが未だにメンテされてていくつも採用実績(ほとんどは海外の社内ツールのスクリプト)があること考えるとjavaへの置き換えも一部分野ではありなんじゃない?
0585デフォルトの名無しさん
2011/07/23(土) 13:01:53.88stopRunningとrunはそれぞれ別のスレッドから呼ばれることを想定しているようです。
このプログラムではロックもvolatileも使っていないのに
runningは可視になるのですか?
class Runner extends Thread {
private boolean running = true;
public void stopRunning() {
running = false;
}
public void run() {
while (running) {
doCommand();
}
}
}
宜しくお願いします。
0586デフォルトの名無しさん
2011/07/23(土) 13:31:14.05「必ず不可視になる」わけじゃないから。
たぶんテストした時は意図通りに(もしくはstopRunning()してから
doCommand()の停止までの時間が許容範囲内で)動いちゃったんじゃね?
0587デフォルトの名無しさん
2011/07/23(土) 13:31:36.930588デフォルトの名無しさん
2011/07/23(土) 13:33:59.87どういう意味で可視という用語を使っているのか分からないけど、
確かにvolatile使うべき状況だよね。
0589デフォルトの名無しさん
2011/07/23(土) 13:41:59.38保証はまったく無いけど
0590デフォルトの名無しさん
2011/07/23(土) 14:00:36.01Object[] array = (Object[]) object;
}
こういう処理がしたいのですが、プリミティブ型の配列だと Object[] にキャストできません。
型を判定してint[], char[], boolean[]などにキャストしてやればいいのですが、
型を気にせずプリミティブ型の配列をひとまとめに扱う方法はないでしょうか?
0591デフォルトの名無しさん
2011/07/23(土) 14:01:56.870593585
2011/07/23(土) 14:27:43.06大変参考になりました。
ちなみに、可視とは、あるスレッドがrunningを変更した際に、
別のスレッドがその変更を把握することができるかどうかという意味で使いました。
0594デフォルトの名無しさん
2011/07/23(土) 15:13:32.920595デフォルトの名無しさん
2011/07/23(土) 15:15:06.890596デフォルトの名無しさん
2011/07/23(土) 17:05:50.370597デフォルトの名無しさん
2011/07/23(土) 17:11:41.820598デフォルトの名無しさん
2011/07/23(土) 17:38:10.120599デフォルトの名無しさん
2011/07/23(土) 17:42:09.38次のループでは確実に抜けるんじゃないのか?
0600デフォルトの名無しさん
2011/07/23(土) 17:50:04.72よし、volatileについてググるんだ。
0601デフォルトの名無しさん
2011/07/23(土) 18:00:21.16volatileなんて組み込みぐらいでしか使わないと思ってた
0602デフォルトの名無しさん
2011/07/24(日) 02:30:28.469 / 3 の結果を、3.0ではなく3と表示したい
どのようにフォーマットすればいいでしょうか
0603デフォルトの名無しさん
2011/07/24(日) 02:53:55.29String form = (9 % 3 == 0) ? "%.0f" : "%f";
System.out.printf(form, 9d / 3);
0604デフォルトの名無しさん
2011/07/24(日) 03:36:16.480605デフォルトの名無しさん
2011/07/24(日) 04:24:42.24a += b; ← a = a + b;
public static main(String[] args){
System.out.print("Enterかその他のキーを入力せよ>");
というプログラムで2通りの処理をさせたいです。
どこかのサイトを参考に、
class KeyInput extends KeyAdapter {
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER) {
処理1;
} else {
処理2;
みたいなクラスを作ってみましたが、使い方がわかってません。
よろしくお願いします。
0606デフォルトの名無しさん
2011/07/24(日) 12:36:41.78拾いたいコンポーネントのaddKeyListenerを呼んで作ったリスナーを追加しておく。
frame.addKeyListener(new KeyInput());
けど単にSystem.in.read()の結果で判定したいだけのような気もする。
0607デフォルトの名無しさん
2011/07/24(日) 16:18:00.48<select name="substatus[]" multiple size="17" id="select_substatus" class="">
<option value="" selected>指定しない</option>
<option value="-2">バナナ</option>
<option value="-1">リンゴ</option>
<option value="0">ゴリラ</option>
<option value="1">ラッシー</option>
</select>
jsファイル側
ie.document.getElementById("select_substatus").value="11"、"12";
この方法でHTML側のチェックボックスに値を送ると、12の値のみ送られてしまい11は上書きされてしまいました。
チェックボックスを複数選択するようにする為にはどのような手法を取ればよいのでしょうか。
よろしくお願いします。
0608デフォルトの名無しさん
2011/07/24(日) 16:35:58.080609デフォルトの名無しさん
2011/07/24(日) 16:55:03.97js側の記述はそのまま転載しちゃったんで分かりづらかったですね。
HTML側のソースをいじらないで達成する事は出来そうにないでしょうか。
HTML側は社内システムのソースなので、可能であればjs側のみで対処したいのですが…。
0610デフォルトの名無しさん
2011/07/24(日) 16:57:57.48>>608のいうようにselected=true設定すればいけるだろう。
0611デフォルトの名無しさん
2011/07/24(日) 17:13:51.51>>608さんの方法で無事動作を確認しました。
>>610さんの補足があったおかげで意味が分かりました。
お二人様ともありがとうございます。
転載するようなレベルのものではないかもしれませんが
var subs = ie.document.getElementById("select_substatus").options;
subs[10].selected=true;
subs[11].selected=true;
上記の方法で動作確認しました。ありがとうございました。
0612デフォルトの名無しさん
2011/07/24(日) 17:23:56.14スレ違い
0613デフォルトの名無しさん
2011/07/24(日) 17:24:52.94ごめんね
0614605
2011/07/24(日) 18:58:41.77ありがとうございます。
System.in.read()で考えてみましたが、
int c = System.in.read(); if ( c == 10 ) {処理
の場合、エンターキー(10)が読み取られないのと、他のキーを押した場合も、決定にエンターを待ってしまいます。
0615デフォルトの名無しさん
2011/07/24(日) 20:24:14.650616デフォルトの名無しさん
2011/07/25(月) 08:26:37.231bitずつのデータが欲しい時は、ちまちまビット演算しろってこと?
0617デフォルトの名無しさん
2011/07/25(月) 08:49:42.550618デフォルトの名無しさん
2011/07/25(月) 09:41:57.63なるほど。ありがとうございます。
ついでなんですが、高速な入出力方法ってどうすればいいんでしょうか?
数字とかが欲しい場合、scannerとかを使うより1byteずつ読み込んでいって自分でパースしたほうがいいんですかね?
0619デフォルトの名無しさん
2011/07/25(月) 09:45:21.43その文字列を解析して数字に変換するのにかかる時間の比ってどれくらいか想像できる?
解析の方をどれだけ高速化したところではっきり言って全く変わらん
0620619
2011/07/25(月) 10:19:02.37自分で文字列を区切ってInteger.parseIntとかすればだいぶ速くなると思う
自分で解析しても部分文字列を作る手間が省けるくらいでそれほど変わらないはず
0621デフォルトの名無しさん
2011/07/25(月) 12:24:15.41その方法とか、いろいろと試して早い方法を取ろうと思います。
ありがとうございました。
0622デフォルトの名無しさん
2011/07/25(月) 13:19:15.37他の言語だと1bitなんですか?
0623616
2011/07/25(月) 13:32:23.03普段よく使うのがC++なのですが、そちらの処理系(g++,vc++)だと
boolが1bitになってます。
まぁ、配列として確保しないと、メモリ上では区切りのいいブロック単位でサイズ確保されちゃうのかもしれないですけど。
wikipediaを見ると、1bitで確保すると名言している言語はあまりない雰囲気ですね。
そこらへんが多少疑問なところです
0624デフォルトの名無しさん
2011/07/25(月) 14:11:27.28public static void main(String[] args) throws Exception 内で
Font font = Font.createFont(Font.TRUETYPE_FONT, new File(P("C:\\Users\\koide\\Desktop", "msgothic.ttc")));
と書くと
Exception in thread "main" java.io.IOException: Can't read msgothic.ttc
at java.awt.Font.createFont(Unknown Source)
at hoge.hoge.com.TEST.main(TEST.java:34)
と言われてしまいます何が問題なのかご教授願えないでしょうか?
0625デフォルトの名無しさん
2011/07/25(月) 14:52:52.30sizeof(bool)が1bitってことはなかんべ。
http://codepad.org/tPTZxace
ただし、 vector<bool> は別の話。
0626デフォルトの名無しさん
2011/07/25(月) 18:57:52.74>>625
EnumSetは(Setとは)別の話、みたいなもん?
0627デフォルトの名無しさん
2011/07/25(月) 19:09:15.90やあ小出っち。
うちでは問題なく動いたけど?msgothic.ttcのパスをもう一度確認してみては。
P(String)ってのは自作メソッド?
0628デフォルトの名無しさん
2011/07/25(月) 23:00:11.990629デフォルトの名無しさん
2011/07/25(月) 23:05:24.88実行ファイル形式のjarファイルに
読み込ませることはできますか?
コマンドラインでファイルを指定 して読み込ませるclassはできてい ます。
それを普通にjarして作ってもPythonみたいにはできないのかな?
まったく検討違いなこと聞いてたらすみません。
0630デフォルトの名無しさん
2011/07/26(火) 00:42:45.33入力すると変数に文字化けした文字が入っています。
開発環境win、eclipse
デフォルト文字コードはUTF-8のようです
BufferedReader r =
new BufferedReader(new InputStreamReader(System.in), 1); System.out.println("まずあなたの名前を入力してください");
System.out.flush();
String myName = r.readLine();
0631デフォルトの名無しさん
2011/07/26(火) 01:00:46.72スレ消費してスマン
0632デフォルトの名無しさん
2011/07/26(火) 11:59:34.30ボタンの表示を変える方法を教えて下さい。
mouseEnteredメソッドを使用して書いてみたのですが、ボタンに乗った時ではなく
アプレット上に乗ったときに変わってしまいます・・
0633デフォルトの名無しさん
2011/07/26(火) 12:00:35.48初心者の勉強用のお勧め本を教えてください
0634デフォルトの名無しさん
2011/07/26(火) 12:06:40.670635632
2011/07/26(火) 12:15:32.920636デフォルトの名無しさん
2011/07/26(火) 14:39:24.08Swingの勉強をしているのですが、JFrameの枠だけを非表示にする方法はありますか?つまり、画像だけ表示したい訳です。
0637デフォルトの名無しさん
2011/07/26(火) 15:05:10.70setUndecorated(true);
でできました。ほんとすいません。
0638デフォルトの名無しさん
2011/07/26(火) 16:54:01.57getClass().getName(); でわかりますが、
自分がどのメソッド名にいるかを知る方法はありますか?
リフレクションで、自分が今いるメソッド名 + "Exec" というメソッドを呼びたい、ということをしたいのですが・・・
0639デフォルトの名無しさん
2011/07/26(火) 16:56:49.290640638
2011/07/26(火) 17:40:33.52レスどうもありがとうございます。
なるほど、StackTrace を見れば、得られそうですね。
ただ、今フレームワークもどきを作っているのですが、
この 「自分が今いるメソッド名 + "Exec"というメソッドを呼び出す」処理は
頻繁に呼ばれます。
そのたびに StackTrace を得るのはコスト的に問題ないでしょうか。
getStackTrace() は重い、とどこかで聞いたような・・・・
0641デフォルトの名無しさん
2011/07/26(火) 19:36:12.14頻繁とか重いとかじゃわかんねえよハゲ
なんなの?文系なの?
クリアしたい数字があんだろ?それを出せよゴミクズ
お勧めしない。肝心かなめのポリフォーリズム(interface, abstruct, 要するに、C++ でいうところの仮想関数)に関する記述が全くといって未熟。
たぶん著者は「わかっていない。」
こっちの方がいい。http://www.amazon.co.jp/dp/4797359277/
ハーバード・シルト先生はc++ や c# だけでなく、 java の教科書を書いたらよかったと思う。
0643デフォルトの名無しさん
2011/07/26(火) 19:57:04.42仮想関数のポインタをgetするにはどうすればいいんですか?
0644デフォルトの名無しさん
2011/07/26(火) 20:29:36.161.7から追加されるMethodHandle
0645デフォルトの名無しさん
2011/07/26(火) 20:39:26.37オラクルにチュートリアルがないですよね
0646デフォルトの名無しさん
2011/07/26(火) 20:52:23.38その後他のオブジェクト指向導入の英語のJava本読まされたとき独習の糞さを知った
0647デフォルトの名無しさん
2011/07/26(火) 21:05:52.830648デフォルトの名無しさん
2011/07/26(火) 22:04:57.21鍛えられてくると翻訳本は最初からスルーするけどな
0649デフォルトの名無しさん
2011/07/26(火) 22:43:46.86javadocみりゃ使い方わかるでしょ
0650デフォルトの名無しさん
2011/07/26(火) 23:00:05.22javadocの訳からしてあまりにも酷いくらいだからなw
javaで誤訳とか糞翻訳はよくある。
javascriptなら言語仕様とサイ本読んどけって言えるんだけどjavaだとそういう本少ないよね。
0651デフォルトの名無しさん
2011/07/27(水) 00:44:18.97一応技術を身に付けてゲームでも作りたいなと考えているのですが
0652デフォルトの名無しさん
2011/07/27(水) 01:23:15.64Java仮想マシン仕様 第2版
Effective Java 第2版
0653デフォルトの名無しさん
2011/07/27(水) 01:27:35.150654デフォルトの名無しさん
2011/07/27(水) 03:27:34.48チュートリアルじゃねーし
0655デフォルトの名無しさん
2011/07/27(水) 07:39:26.88usage examples のところ見てもわからんならチュートリアル見ても無理だろ。
0656デフォルトの名無しさん
2011/07/27(水) 07:49:49.07プログラムのアンインストールまたは変更からjavaが消せなくなってしまって
新たにjavaをインストールすることもできなくなってしまいました。
「選択した機能は現在使用できないネットワークリソースにあります。」
「OKをクリックして再実行するか、インストールパッケージ jre1.6.0 20msiを含むフォルダーに対する代替えパスを以下のボックスに入力します。」
と表示されます。
知っていましたら教えてくださいm(_ _)m
0657デフォルトの名無しさん
2011/07/27(水) 09:42:50.07インターフェースと実装クラスを分けて、間に噛ました動的プロキシでメソッド名をスレッドローカルに保持。
全てのケースにうまく適用できる訳ではないが。
0658デフォルトの名無しさん
2011/07/27(水) 09:56:14.730659デフォルトの名無しさん
2011/07/27(水) 10:14:42.78ジャバ様でどうだ
0660デフォルトの名無しさん
2011/07/27(水) 10:20:09.74英語が出来ない人乙
0661デフォルトの名無しさん
2011/07/27(水) 10:54:25.820662デフォルトの名無しさん
2011/07/27(水) 10:58:21.060663デフォルトの名無しさん
2011/07/27(水) 11:16:07.30英語が出来ない人乙
0664デフォルトの名無しさん
2011/07/27(水) 12:07:57.270665デフォルトの名無しさん
2011/07/27(水) 12:21:52.760666デフォルトの名無しさん
2011/07/27(水) 12:23:33.690667デフォルトの名無しさん
2011/07/27(水) 13:18:33.410668デフォルトの名無しさん
2011/07/27(水) 14:20:22.18チュートリアルってのは例えばこんなやつのことね。
http://download.oracle.com/javase/tutorial/uiswing/
0669デフォルトの名無しさん
2011/07/27(水) 14:25:18.17英語が出来ない人乙
0670デフォルトの名無しさん
2011/07/27(水) 15:07:09.200671デフォルトの名無しさん
2011/07/27(水) 15:21:22.070672デフォルトの名無しさん
2011/07/27(水) 16:18:54.50javadoc見て何がわからんかったん?
0673デフォルトの名無しさん
2011/07/27(水) 18:00:00.11class Matrix {
int[][] d;
Matrix(int[][] d) {
this.d = d;
}
Matrix product(Matrix m) {
int[][] d = new int[this.d.length][m.d[0].length];
for(int i=0; i<this.d.length; i++) {
for(int j=0; j<m.d[0].length; j++) {
int sum = 0;
for(int k=0; k<this.d[0].length; k++) {
sum += this.d[i][k]*m.d[k][j];
}
d[i][j] = sum;
}
}
return new Matrix(d);
}
}
1.コンストラクタの中がよく分からないです。this.d=dはなにを意味しているのでしょうか?
d自身にdを代入しているのでしょうか?
2.productメソッドのdの宣言でdの大きさにthis.d.lengthとm.d[0].lengthがあるのですが
dの大きさを決めるのにd.lengthを使うのはどういうことでしょうか?
初歩的な質問ですいません。
0674デフォルトの名無しさん
2011/07/27(水) 18:14:18.23コンストラクタの引数にdってついてるから,クラスのメンバのint[][] d;と名前が重複している状態で
だからクラスのメンバのdに,コンストラクタで渡されたdを代入するために
そのオブジェクト自身を指すthisをつけて区別してる.
Matrix(int[][] arg) {d = arg;}
これと意味は同じ.だけど前者の書き方が一般的
2は行列の乗算なんだから,今内部の保持している行列に対して
引数に指定した行列をかけるんだから
結果として得られる行列は縦が内部の行列の縦長さで,
横がかける行列の横の長さになるからだと思うけど
productメソッド内のint[][] dとthis.dは別物だと分かればいいよ
0675デフォルトの名無しさん
2011/07/27(水) 19:21:17.63このプログラムは色々とンコ
0676デフォルトの名無しさん
2011/07/27(水) 20:51:41.72知らんがな
0677デフォルトの名無しさん
2011/07/28(木) 00:40:09.80そして、その15個分の移動平均を順番に取って配列 list2 に入れようとしています。
double[] list2 = new double[list1 - 14];
double sumVar;
for(int i=0; i < list1.length-14; i++){
sumVar=0;
for(int j=i ;j<i+15; j++){
sumVar +=list1[j];
}
list2[i++]=sumVar/15;
//確認1
System.out.println(list2[i-1]);
}
//確認2
for (int k=0 ; k<list2.length; k++){
System.out.println(list2[k]);
}
上のようなプログラムを書いたんですが、確認1の分ではちゃんと全部の値が正しく表示されたのですが、
確認2の部分では、なぜか奇数番目の配列の数値が0になってしまいます。どうしてかわかりますでしょうか。
0678デフォルトの名無しさん
2011/07/28(木) 00:44:32.74わかるって…
list2[i++]=sumVar/15;
のインクリメントが余計でした…
0679デフォルトの名無しさん
2011/07/28(木) 00:49:38.25「質問すると答えがわかる」のはよくある事。
問題解決法のパターンの一つ。
0680デフォルトの名無しさん
2011/07/28(木) 01:48:31.070681デフォルトの名無しさん
2011/07/28(木) 04:47:25.480682デフォルトの名無しさん
2011/07/28(木) 05:35:42.660683デフォルトの名無しさん
2011/07/28(木) 06:51:53.100684デフォルトの名無しさん
2011/07/28(木) 07:00:38.200685デフォルトの名無しさん
2011/07/28(木) 07:39:02.820686デフォルトの名無しさん
2011/07/28(木) 08:37:10.110687デフォルトの名無しさん
2011/07/28(木) 10:03:46.94http://www.optinav.com/download/Iterative_Deconvolution.java
このプラグインで、
java.awt.image.ColorModel cmY = ipY.getColorModel();
と、ありますが、これはRGBやCMYK等のカラーモデルを取得しているだけで、画素を取得している訳ではありませんよね?
以下はImageJのライブラリに依存した命令なのですが、
ImageProcessor ipXtemp = new FloatProcessor(iN,iN);
FHT ipX = new FHT(ipXtemp);
ipX.setColorModel(cmY);
(中略)
float[] X = (float[])ipX.getPixels();;
と、カラーモデルをセットしているだけで画素を取得しているようにしか見えません
cmYと言う名前から(最初は黄色を指定していると勘違いしましたが)CMYKをターゲットにしていると思うのですが、
これで画素を取得することが出来るのでしょうか?
多少スレ違いで申し訳無いのですが、よろしくお願いします。
ダメなら画像処理スレ辺りに行ってみます。
0688デフォルトの名無しさん
2011/07/28(木) 11:10:42.45不可逆圧縮に適したデータに変換してるのかも? 違ったらごめんね。
0690デフォルトの名無しさん
2011/07/28(木) 11:53:53.84ていうか一貫してなくていろいろ突っ込みたくなる設計だな
Matrixを値として扱うならコンストラクタは this.d = d;じゃなくてコピーするべきだし
できるだけインスタンスを使い回す方針なんだったらproductは新しくインスタンス作るより
自身のdを変更するべきだと思うが
0691デフォルトの名無しさん
2011/07/28(木) 12:04:39.98コンストラクタもpublicじゃないからアリかな
0692687
2011/07/28(木) 13:31:34.62FHTはハートレー変換で、FFTを実数だけで計算する物ですね。
質問時(>>687)では言葉足らずだったのですが、
if(operation == CONVOLVE){がtrueの時は
ImageProcessor ipX = convolve(ipYCopy,fhtA);
と、やっているのでipYの画素値が取得出来るのはわかるのですが、
falseの時は画素値をどこから取得しているのかわからなくって・・・
0693687
2011/07/28(木) 14:16:15.58これを見ると、画像の種類だけで無く画素情報も含んでいるようですね。
失礼しました。
0695デフォルトの名無しさん
2011/07/28(木) 17:42:54.19カラーモデルが情報をもつのと実体から情報を取るのは別。
ちなみにおもいっきりgetPixels()と書いてあるがきいてることが
前半と後半で矛盾してて画素を取得している所がどこか聞きたいのか
カラーモデルが何してるか聞きたいのかハッキリせんな。
0696687
2011/07/28(木) 18:10:38.99ありゃ、やっぱり画素そのものはありませんでしたか。
聞きたいのは、if(operation == CONVOLVE){がfalseの時、
画素をどこから持って来て計算しているかです。
0697デフォルトの名無しさん
2011/07/28(木) 19:32:50.030698デフォルトの名無しさん
2011/07/28(木) 19:45:07.980699デフォルトの名無しさん
2011/07/28(木) 19:47:27.680700デフォルトの名無しさん
2011/07/28(木) 20:15:29.10調べた限りでは「#ifdefやマクロとかを展開して起きる文法その他のエラーが嫌」とか、「条件コンパイルはいらない」とかいう話があったが
0701デフォルトの名無しさん
2011/07/28(木) 20:17:45.00リモートIPアドレスを取得したいんだけど
ホスト名が取得されちゃう
どういうことなの
0702687
2011/07/28(木) 21:06:34.58ImagePlus impX = new ImagePlus("Deconvolved"+nIter+"_"+IJ.d2s(filterSmallDia),ipX);
impX.show();
//IJ.run("Fire");
ImageProcessor ipXCopy = null;
float[] XCopy = null;
float[] X = (float[])ipX.getPixels();;
ImagePlusの後と言うと、この一番下でしょうか。
このipXはどこから画素を貰って来ているのでしょう?
ImageProcessorのipXtempは宣言時に初期化されていて、それのコピーを繰り返しているだけにしか見えないので・・・。
0703デフォルトの名無しさん
2011/07/28(木) 22:22:55.280704デフォルトの名無しさん
2011/07/28(木) 22:28:37.010705デフォルトの名無しさん
2011/07/28(木) 23:42:19.89何もない画面に表示した画像を方向キーで移動させるところまで書けました。
このとき、たとえば右キーを押したまま左キーを押すと左移動に変わり、左キーを離したらまた右に移動するという動きにするにはどうすればいいでしょうか?。
今は、keyPressedで左右キーの入力を拾ってフラグを立て、メインループの中でフラグ判定して画像の座標を変更していますが、こうすると先にifで判定しているほうのキーが常に優先されてしまいます。
0706デフォルトの名無しさん
2011/07/28(木) 23:50:26.29その下のforループで詰めてる
0707デフォルトの名無しさん
2011/07/29(金) 00:47:12.06http://eclipse.seasar.org/updates/3.3
からDoltengをインストールしようとすると以下のような
エラーがでてインストールできません。
インストールする項目の収集中にエラーが発生しました
session context was:(profile=epp.package.jee,
phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
http://eclipse.seasar.org/updates/3.3/plugins/org.seasar.dolteng.eclipse_0.41.0.jar
のリポジトリーを読み取ることができません。
Read timed out
http://eclipse.seasar.org/updates/3.3/plugins/org.seasar.dolteng.projects.dependencies1_0.41.0.jar
のリポジトリーを読み取ることができません。
Read timed out
http://eclipse.seasar.org/updates/3.3/plugins/org.seasar.dolteng.projects.dependencies2_0.41.0.jar
のリポジトリーを読み取ることができません。
Read timed out
詳しいかた、解決方法をご教授いただけないでしょうか?
0708デフォルトの名無しさん
2011/07/29(金) 02:46:52.100709デフォルトの名無しさん
2011/07/29(金) 03:14:02.52netbeansで、javaを使って簡易エディタを作っているのですが、
テキストエリアの文字数を取得するのに
int s = jTextArea1.length();
とするとlength()にシンボルが見つかりませんとでます。
ググってもこれでできると書いてあるのですが、どうしたらよいでしょうか
0710デフォルトの名無しさん
2011/07/29(金) 03:16:23.970711デフォルトの名無しさん
2011/07/29(金) 03:51:36.64Java7
ttp://www.oracle.com/technetwork/jp/java/javase/downloads/
0712デフォルトの名無しさん
2011/07/29(金) 05:52:35.42ありがとうございます
0713デフォルトの名無しさん
2011/07/29(金) 06:15:53.450714デフォルトの名無しさん
2011/07/29(金) 07:06:40.280715デフォルトの名無しさん
2011/07/29(金) 07:19:18.290717デフォルトの名無しさん
2011/07/29(金) 12:38:46.19javaをインストールしたら
0718デフォルトの名無しさん
2011/07/29(金) 17:19:38.93MyDrawPaneltest.java:22: シンボルを見つけられません。
シンボル: メソッド paintComponent()
場所: MyDrawPaneltest の クラス gui.paintComponent();
っていうエラーが出てコンパイルできないボスケテ
import java.awt.*;
import javax.swing.*;
class MyDrawPaneltest extends JPanel {
JFrame frame;
public void paintComponent(Graphics g) {
frame = new JFrame();
g.setColor(Color.orange);
g.fillRect(20, 50, 100, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
public static void main(String [] args) {
MyDrawPaneltest gui = new MyDrawPaneltest();
gui.paintComponent();
}
}
0719687
2011/07/29(金) 17:27:57.59Javaって基本は参照渡しなのね
見方を根本から変えないといけなかったのか
0720デフォルトの名無しさん
2011/07/29(金) 17:42:41.160721デフォルトの名無しさん
2011/07/29(金) 22:54:06.19ちがうちがう全部値渡しだよ
オブジェクトは常に参照なだけで
アドレスという値が渡ってはる
0722デフォルトの名無しさん
2011/07/29(金) 23:04:50.67GraphicsがpaintComponent()の引数なんだからGraphics渡せよ。
コンパイル通すだけならnullでもいい。
extends JPanel はいらんぞ。
0723デフォルトの名無しさん
2011/07/30(土) 01:16:26.77test.javaってソースがあるとして,
C:> java test < text.txt
ってな感じでC言語みたいにリダイレクトしようとしたら上手くいかないみたいです
JAVAではリダイレクトはできないんでしょうか?
0724デフォルトの名無しさん
2011/07/30(土) 03:56:18.37できるよ
たとえばこんなソース
import java.io.*;
public class Test {
public static void main (String args[]) throws IOException
{
InputStreamReader inputStreamReader01 = new InputStreamReader(System.in);
BufferedReader bufferedReader01 = new BufferedReader(inputStreamReader01);
String str;
while ((str = bufferedReader01.readLine()) != null) {
System.out.println(str);
}
}
}
0725デフォルトの名無しさん
2011/07/30(土) 10:26:08.78おぉ、なるほど。thx!!!
0726デフォルトの名無しさん
2011/07/30(土) 11:30:04.94ClassAのメンバーとしてClassBのオブジェクトがあって、setAttributeでClassAをセッションに保存してあるとき、
JSPからClassAの中のClassBのメンバーにアクセスするには、どうやってタグ書けばいんでしょうか
ClassAのメンバーは
<bean:write name="classA" propertie="classAmember1" />
じゃあClassAの中のClassBのメンバーはどうやってアクセスすれば?
0727デフォルトの名無しさん
2011/07/30(土) 11:39:07.04Struts1系なんてもう保守の仕事しかないだろうし、さっさと元ソースから調べられるようにしといたほうがいい。
0728723
2011/07/30(土) 12:29:07.41ありがとうございます
実はいまプログラミングの課題の添削をしていて,
数十人分のソースファイルをバッチファイルで一括コンパイル,実行を行いたいのです
コンパイルは出来たのですが,入力を自動化出来ず困っていたのです
演習の課題なのでソースファイルをいじることは許されません
コンパイラはオラクルの奴なんですが,なんとかならないでしょうか?
条件を詳しく書かなかったために後付になってしまい申し訳ないです
0729デフォルトの名無しさん
2011/07/30(土) 12:35:57.25つうかなにをやりたいのかまともに文章に出来ないこんな奴に添削とかされたくない
0730デフォルトの名無しさん
2011/07/30(土) 12:51:13.58【ABC.java】
import static DEF.*;
class ABC
{
public static void main(String[] args){
System.out.print(method(184)); }
}
【DEF.java】
class DEF
{
static int i;
static int method(int j){
i=j;
return i; }
}
それでをコンパイルを行うと
c:\test>javac -cp . ABC.java
ABC.java:1:シンボルを見つけられません。
シンボル: クラス DEF
import static DEF.*;
と出てしまいます。要はimport文が間違っていると思うのですが、どうコードを訂正すればよいでしょうか?
また2つのファイルはtestフォルダに格納してあります。
0731デフォルトの名無しさん
2011/07/30(土) 13:09:15.76デフォルトパッケージのクラスはインポートできない。
要するに import DEF; は不可。
同様の理由で import static DEF.*; も不可。
0732デフォルトの名無しさん
2011/07/30(土) 13:43:58.26ありがとうございます。package化されていないとimportできないとのことなので
testフォルダの直下にtest2フォルダを作り、2つのファイルの先頭に以下の記述をして
DEF.javaをtest2フォルダに移動させました。
【ABC.java】
import static test2.DEF.*;
【DEF.java】
package test2;
これでコンパイルが上手くいくと思ったのですが、今度はメソッドのシンボルが
見つけられないとのことでした。
ABC.java:7: シンボルを見つけられません。
シンボル: メソッド method(int)
場所 : ABCのクラス
0733デフォルトの名無しさん
2011/07/30(土) 14:02:10.37アクセス修飾子が抜けてました。
0734デフォルトの名無しさん
2011/07/30(土) 16:54:42.12サーブレッドでMySqlで簡単なで簡単な掲示板を作成したいのですが、一つ質問があります。
本文の入力でsql インジェクション対策はどのようにするのが一般的なのでしょうか?
現在はpost された値をそのままインサートしています。このとき、”を入力されると簡単にsql インジェクションされます。
0735デフォルトの名無しさん
2011/07/30(土) 16:59:10.24ORマッパー使えばなおよし。
0737デフォルトの名無しさん
2011/07/30(土) 19:17:45.47public class COLor{ //Colorに直すとエラーがなくなりますが、本ではCOLorとなっています。
public static final Color BLACK = new Color(0,0,0);
public static final Color RED = new Color(1,0,0);
public static final Color GREEN = new Color(0,1,0);
public static final Color BLUE = new Color(0,0,1);
public static final Color CYAN = new Color(0,1,1);
public static final Color MAGENTA = new Color(1,0,1);
public static final Color YELLOW = new Color(1,1,0);
public static final Color WHITE = new Color(1,1,1);
public flaot r,g,b;
Color(double r,double g, double b){
this.r = (float);
this.g = (float);
this.b = (float);
}
public static Color operate+(Color c1,Color c2){ //+を消すとエラーがなくなります
return new Color(c1.r+c2.r, c1.g+c2.g, c1.b+c1.b)
}
}
OSはMacで、Eclipseでやってますが上記のエラーが解決されません。
どうすればエラーがなくなるのでしょうか?
初心者的なことかも知れませんがご教授お願いします。
0738デフォルトの名無しさん
2011/07/30(土) 19:35:08.95他の言語の本と間違えているのでなければ焼き捨ててしまえ
0739デフォルトの名無しさん
2011/07/30(土) 19:39:51.81operator+の下に実がoperator-などがあり…
上のCOLorも誤植かと思ったのですが文章にもCOLorって書いてあり…
もし間違いだった場合、最初のページからこれってどういうこと。
0740デフォルトの名無しさん
2011/07/30(土) 20:26:40.96本にはクラスの内容は言及されてなかったですが…
0741723
2011/07/30(土) 21:35:48.32恐らく,上手くいかないのはリダイレクトをjava.exeが受け取っているからだと考えました
だからリダイレクトと同様の機能をjava.exeが持ってるんじゃないかと思ったんですが,
調べても見当たらなくてここに書き込みさせてもらいました
expectではちょっと上手くいかないようです
入力を求める文章が各人で違いますので
0742デフォルトの名無しさん
2011/07/30(土) 22:25:02.66伸びるやつも伸びなくなるわ。三流コーチみたいにチクチク細かい事言ってきて
新人つぶしちゃうんだろうね。それで、会社も後継者が育たず、ご破算。
ああ、やだやだ。>>729みたいのは、どこの会社でも欲しくないよ。
0743デフォルトの名無しさん
2011/07/30(土) 22:32:25.29こんなやつと友達になるのさえ勘弁だな。
彼女が出来たとしても彼女も不憫だろうな。細かいことでチクチクチクチクいってくるんだろう。
たまったもんじゃない。一緒にいるだけでストレスが溜まるってもんだ。
なんで、神様も>>729みたいなやつを作ったんだろうな。あきらかに>>729みたいなやつは必要ないのにね。
こんなやつがいるから、世の中が悪くなるんだ。はやく、この世から出て行って欲しいな。ああ、やだやだ。
>>729みたいなのが、この世に住んでると思うだけで、虫唾が走るわ。
こっちが早く>>729のようなやつが住んでいない別の世の中に行きたいと思うくらいだわ。
0744デフォルトの名無しさん
2011/07/30(土) 23:07:49.190745デフォルトの名無しさん
2011/07/30(土) 23:09:32.90>>741
標準入力から値を読み込んでいるなら,そのまま使えるはずだけどなんでできないの?
その課題って,そもそもリダイレクトすれば自動化できるとかいう以前の話なんじゃ
引数で指定されたテストデータをファイル読み込みするとかじゃないよね
そういう詳しい話が無いから一向に話が進まないんだと思うけど
0746デフォルトの名無しさん
2011/07/30(土) 23:13:42.100747デフォルトの名無しさん
2011/07/30(土) 23:16:49.06なんか自動入力プログラムの一種とでも思ってそうだ。ただの標準入力だぞ。
てかIDないのをいいことに、いきなり切れて連レス煽りとかね・・。
0748デフォルトの名無しさん
2011/07/30(土) 23:19:05.17相手にするな
0749デフォルトの名無しさん
2011/07/31(日) 00:59:15.69夏だなぁ
0750デフォルトの名無しさん
2011/07/31(日) 01:39:05.43public class Hage {
public static Function hoge() {
return this.hello;
}
private static void hello () {
System.out.println("Hello");
}
}
public class test Hoge {
public void Hoge () {
Function foo = Hage.hoge();
foo(); // Hello
}
}
みたいな感じで
0751デフォルトの名無しさん
2011/07/31(日) 02:25:37.40けど、そういう書き方はできない気がする。
0752デフォルトの名無しさん
2011/07/31(日) 02:36:26.24メソッド自体の参照は渡せないのかあ・・
0753デフォルトの名無しさん
2011/07/31(日) 04:45:52.390754デフォルトの名無しさん
2011/07/31(日) 05:53:27.490755デフォルトの名無しさん
2011/07/31(日) 06:22:01.81代替にはなるかわからんけど Java7 から MethodHandle 使えるよ。
Java8 搭載予定のクロージャも実装には MethodHandle 使う予定らしい。
プロパティが instance.propertyName でアクセスすると既存の名前空間と重なって問題が出るのと同様に
function() も既存の名前空間と重なって問題出そうなので却下らしい。
0756デフォルトの名無しさん
2011/07/31(日) 10:29:28.770757デフォルトの名無しさん
2011/07/31(日) 11:06:36.67メソッドのハンドルと環境オブジェクトをまとめたオブジェクトを渡す。
クロージャっていうと外のローカル変数を取り込むことを言うのが一般的で、実装は関係ないよ。
ただローカル変数のキャプチャは今のところ実現されない方向で、
それこそ全くクロージャじゃないのでラムダと呼ぶようになってる。
0758デフォルトの名無しさん
2011/07/31(日) 11:10:05.390759デフォルトの名無しさん
2011/07/31(日) 13:01:04.52>ローカル変数のキャプチャは今のところ実現されない方向
なぜに?
C++と違ってJava環境はGCを仮定していいんだから
変数の寿命問題とかはどうとでもなりそうなものだが
0760デフォルトの名無しさん
2011/07/31(日) 13:32:58.98競合するからラムダ内からの書き換えは禁止
そんなのフィールドについても同じことが言えるわけで
使い方のレベルの話だから全く説得力無いけどな
0761デフォルトの名無しさん
2011/07/31(日) 13:53:05.90なんとかならんでしょうか
0762デフォルトの名無しさん
2011/07/31(日) 14:35:14.910763デフォルトの名無しさん
2011/07/31(日) 14:41:40.72プリプロセッサは統合開発環境と相性がわるいから。それこそなんでもありなのがプリプロセッサ。
0765デフォルトの名無しさん
2011/07/31(日) 14:58:12.21アノテーションが有るから
0766デフォルトの名無しさん
2011/07/31(日) 17:54:13.763.7のリリース版ではコンパイラのjdk7互換サポートが無効にされてるとか。
Maintenance Buildだったら有効になってるとかいう情報も。
0767デフォルトの名無しさん
2011/07/31(日) 18:45:30.990768デフォルトの名無しさん
2011/07/31(日) 19:45:21.45なんていう本?
0769デフォルトの名無しさん
2011/07/31(日) 19:50:35.43全然問題ないと思うけど、同じパッケージに入れときゃ事足りる状況しか思い浮かばん。
0770デフォルトの名無しさん
2011/07/31(日) 20:25:13.96Eclipse 3.7のJava 7サポートは9月
0771デフォルトの名無しさん
2011/07/31(日) 21:02:52.86今大学の課題でjavaを書いているのですが、その課題を解くために
「「整数を要素に持つ大きさi の配列」を要素に持つArrayList」をi=1..nとして、
これらを要素に持つ大きさnの配列aを作ろうとしてます。
しかし色々試行錯誤をして、配列の数が変わるのでGenericsがあると駄目なのかと思い、
ArrayList[] a = new ArrayList()[n];
for(int i=1; i <=23; i++){a[i] = new ArrayList<int[i]>();}
などとしてみましたが、結局お手上げ状態です。
どなたかアドバイスを頂けませんか。
0772771
2011/07/31(日) 21:14:19.660773デフォルトの名無しさん
2011/07/31(日) 22:44:31.83最近のスクリプト言語ならyieldに丸投げするんだけどjavaみたいな言語だとこういう
並列処理を言語側の実装が面倒みるなんてのはやらないだろうねぇ。
ていうかローカルキャプチャしないんじゃレキシカルクロージャですら無いじゃん・・・。
0774デフォルトの名無しさん
2011/07/31(日) 23:09:48.95利用する側もそれをわかって注意して使うのが当たり前でしょ。
勝手に暗黙のうちに並列実行されたりしたら、ローカル変数書き換えられるか
どうかなんて関係なく、どうせまともに動作するわけがない。
だからそんなの「想定しても仕方ないのでそんなこと気にしない」でいいんだよ。
クロージャを持つ言語は基本的にそう。
0775デフォルトの名無しさん
2011/07/31(日) 23:17:38.94>724のやり方は使っていません
課題ではScannerのnextDouble()によって数値を読み込んでいますのでこれを変更することはできないからです
>標準入力から値を読み込んでいるなら,そのまま使えるはずだけどなんでできないの?
というのはexpectのことでしょうか?
それと,荒らしていると思われていますが,自分ではありません
わざわざ自分の時間を使ってアドバイスをくれる方にそんなことするほど馬鹿じゃないです
文章能力が無いのも一応自覚しています
0776デフォルトの名無しさん
2011/07/31(日) 23:35:24.46シンタックスシュガーってことで良いの?
0777デフォルトの名無しさん
2011/07/31(日) 23:39:54.85課題を出しているのにJava初心者とか、状況がよく分からん。
コンパイルが通っても正しく動かないことなんてよくあるのに。
そもそもテストケースは別に用意しようとしてるんだよね。
正しく動くか分からない、提出されたものからテストケースを作ろうとしてるわけじゃないよね?
0778デフォルトの名無しさん
2011/07/31(日) 23:46:47.29MethodHandle使うのかもしれないけど、仮にシンタックスシュガーでも
ローカル変数の取り込みは問題なく実現できるよ
並列処理と相性が悪いなどというのは、すべての無名クラスのメソッドは
並列実行されることを想定して書けと言ってるようなもん
0779デフォルトの名無しさん
2011/07/31(日) 23:49:32.01classファイルを直接編集するなら、どういうツールを使いますか?
ttp://classeditor.sourceforge.net/
↑のようなツールを見つけたのですが、他にはありますでしょうか?
0780デフォルトの名無しさん
2011/08/01(月) 02:17:34.540781デフォルトの名無しさん
2011/08/01(月) 03:09:53.110782デフォルトの名無しさん
2011/08/01(月) 07:08:40.73宿題スレにいっぱいある
0783デフォルトの名無しさん
2011/08/01(月) 07:39:17.72今のところコンパイラがクラス内に勝手にメソッド作ってそのMethodHandleを返す方式らしい。
無名クラスはインナークラスになっちゃうのでthisの意味が変わるのがどーたらこーたらとか聞いた。
コンパイラでどうとでも対応できそうな気もするんだが、そうでもないのかね?
0784デフォルトの名無しさん
2011/08/01(月) 08:53:08.76http://projecteuler.net/
0785デフォルトの名無しさん
2011/08/01(月) 13:02:18.060786デフォルトの名無しさん
2011/08/01(月) 13:56:00.65シングルトンを使用すれば大丈夫?
0787デフォルトの名無しさん
2011/08/01(月) 17:06:47.76伸びるやつも伸びなくなるわ。三流コーチみたいにチクチク細かい事言ってきて
新人つぶしちゃうんだろうね。それで、会社も後継者が育たず、ご破算。
ああ、やだやだ。>>780みたいのは、どこの会社でも欲しくないよ。
0788デフォルトの名無しさん
2011/08/01(月) 17:08:34.65こんなやつと友達になるのさえ勘弁だな。
彼女が出来たとしても彼女も不憫だろうな。細かいことでチクチクチクチクいってくるんだろう。
たまったもんじゃない。一緒にいるだけでストレスが溜まるってもんだ。
なんで、神様も>>780みたいなやつを作ったんだろうな。あきらかに>>780みたいなやつは必要ないのにね。
こんなやつがいるから、世の中が悪くなるんだ。はやく、この世から出て行って欲しいな。ああ、やだやだ。
>>780みたいなのが、この世に住んでると思うだけで、虫唾が走るわ。
こっちが早く>>780のようなやつが住んでいない別の世の中に行きたいと思うくらいだわ。
0789デフォルトの名無しさん
2011/08/01(月) 17:12:40.74↓
0790デフォルトの名無しさん
2011/08/01(月) 17:15:06.180791デフォルトの名無しさん
2011/08/01(月) 17:45:20.59話す内容は実は支離滅裂でもかまいません
不思議と発言力が付いて一目置かれる様になります
すると陰口も無くなるでしょう
0792デフォルトの名無しさん
2011/08/01(月) 17:49:19.47その手の話はjava.util.ResourceBundleでトライしてみてほしい。
もともとは文字列国際化のための仕組みだが、
国際化抜きにしてもキャッシュ管理してくれるのは便利。
0793デフォルトの名無しさん
2011/08/01(月) 17:50:22.860794デフォルトの名無しさん
2011/08/01(月) 17:52:50.97ツールでなくライブラリだけど、Apache BCELが有名。
0795デフォルトの名無しさん
2011/08/01(月) 19:36:01.730796デフォルトの名無しさん
2011/08/01(月) 19:49:29.32JREインストールディレクトリ/lib/rt.jar
0797デフォルトの名無しさん
2011/08/01(月) 20:12:55.77http://java.sun.com/j2se/1.5.0/ja/docs/ja/
↑これのzipを落とせる場所がいつの間にか無くなっていましたorz
昔あった場所(http://www.oracle.com/technetwork/indexes/downloads/sdlc-decommission-333274.html)
に行くとOracleのほとんど何もないページに飛ばされます…
誰か持ってる人がいたらどこかにアップロードお願いします。
0798デフォルトの名無しさん
2011/08/01(月) 20:21:28.86そのScannerはどのストリームから読み込んでいるわけ?
キーボード?それともファイル?
課題実行→キーボードで値を入力→Scannerで読み込み→処理
っていうプログラムなら、test.txtにキーボード入力の内容を予め入れておけば
C:> java test < text.txt
これでScanner使ってようがなんだろうが自動で入力されて上手くいくよ.
もしもこれで自分が思ってることと違うと思ったならさっさと課題のソース出しちゃえばいいと思うよ.
0799デフォルトの名無しさん
2011/08/01(月) 20:50:29.42longで保持しますか?
それとも別のImmutableなDateクラスを使ってますか?
0800デフォルトの名無しさん
2011/08/01(月) 21:37:53.16約束が通じる範囲だったら、変更してはいけない約束にしてそのまま使う
約束が通じない範囲とやりとりする場合は、受け取るときと返すときにコピーする
0801デフォルトの名無しさん
2011/08/01(月) 22:02:21.26ありがとうございます。こんなこと誰もあまりしていないだろうと思っていたのですが、ライブラリまであるのですね。
実行時に動的に書き換えられるということでしょうか?何かJITと相性が悪そうですが、どういったときに利用するのかな。
0802デフォルトの名無しさん
2011/08/01(月) 22:13:11.71long一択
mutableであること、他の選択肢があることから
Dateはオワコン
0803デフォルトの名無しさん
2011/08/01(月) 22:52:23.250804デフォルトの名無しさん
2011/08/01(月) 22:58:36.45前はアーカイブから取れたと思うんだが、見あたらんね。
http://www.oracle.com/technetwork/java/archive-139210.html
0805デフォルトの名無しさん
2011/08/02(火) 06:06:35.56リンク修正したときにオラクル版に差し替えて一部オリジナル消失までは確認してるからインターネットアーカイブからはどう?
0806デフォルトの名無しさん
2011/08/02(火) 19:10:49.85どうぞ(jdk-1_5_0-doc-ja.zip)
http://ll.la/Lpjh
0808デフォルトの名無しさん
2011/08/02(火) 20:53:04.240809デフォルトの名無しさん
2011/08/02(火) 21:56:08.800810デフォルトの名無しさん
2011/08/02(火) 21:57:42.710811デフォルトの名無しさん
2011/08/02(火) 22:50:22.070812デフォルトの名無しさん
2011/08/02(火) 22:56:44.68public class HelloDate {
public static void main(String[] args) {
//Date date1 = new Date();
System.out.print("aaa");
}
}
実行するとaaaが表示されますがDate date1 = new Date();のコメントを外すと
Errors exist in required project(s):HelloDate Proceed with launch?ってダイアログが出て実行できません
参考サイトからコピペしてるので問題ないと思ってるのですが解決方法をご教示お願いいたします
0813812
2011/08/02(火) 23:29:02.16よくわかりませんがパッケージは書かないようにします
0814デフォルトの名無しさん
2011/08/02(火) 23:32:45.40これを言うやつにはほんとプログラム任せたくないよな
0815デフォルトの名無しさん
2011/08/02(火) 23:34:24.000816デフォルトの名無しさん
2011/08/03(水) 00:04:23.550817デフォルトの名無しさん
2011/08/03(水) 10:27:49.490818デフォルトの名無しさん
2011/08/03(水) 12:31:36.22登録してログインしても真っ白なページしか出てこないんだが
ttp://www.oracle.com/technetwork/java/javamagazine/index.html
0819デフォルトの名無しさん
2011/08/04(木) 09:26:29.54■現在
--------Main.java------------------
Setting set = new Setting(0);
set = Mofulr01.meth1(set);
--------Module01.java--------------
public static Setting meth1(Setting set){
//なんらかの処理
return set;
}
■案1
--------Main.java------------------
public static Setting set = new Setting(0);
set = Module01.meth1(set);
--------Module01.java--------------
public static void meth1(){
Main.set = hogehoge(Main.set)
}
書いていて案1の方が、メモリを消費しない気がするのです。
実際のコードは、4階層くらい下のモジュールでSettingいじってて
リソースを無駄にしている気がしてなりません。
0820デフォルトの名無しさん
2011/08/04(木) 09:33:20.05でもメモリとか関係なく、設計としては前者の方がベター
モジュールがMainクラスの静的変数に依存するのはちょっと…
0821デフォルトの名無しさん
2011/08/04(木) 10:49:10.65メモリを気にするってことは、組み込みかなにか?
効率どうこうってことは、それは100万回実行される処理なの?
そうでなければどっちも変わらん
0822デフォルトの名無しさん
2011/08/04(木) 10:58:11.68とかでなければ気にする必要ないな。
0823デフォルトの名無しさん
2011/08/04(木) 11:19:25.26スタックオーバーフローって違う意味だぞw
0824デフォルトの名無しさん
2011/08/04(木) 11:23:28.00static経由にしようって話じゃないのか?
0825デフォルトの名無しさん
2011/08/04(木) 11:30:35.51をいっているのであれば、
Javaは一通りヒープに領域確保するんじゃなかったっけ?
0826デフォルトの名無しさん
2011/08/04(木) 11:52:49.20単に参照素通りさせてるだけならヒープは関係ない。
0827デフォルトの名無しさん
2011/08/04(木) 12:34:02.58初期化しようとしてもクラスローダごと落とさないといけないので、
テストが困難あるいは意図せずテストの順序に依存することになる。
また、その静的フィールドがスレッドセーフでないなら
後からどう頑張ってもスレッドセーフなものを作るのは不可能になるだろう。
ところで、引数の代わりにフィールドを使って、引数の数の絶対数を減らすのは
そのメソッドのシグネチャの複雑さを軽減することになるので、一般的には良い設計指針。
簡単にはクラスをネストするか、手間かけるならビルダーパターンを使えば良いんじゃね?
0828デフォルトの名無しさん
2011/08/04(木) 16:50:11.24java.lang.ThreadLocal 変数つかおーぜ
余談だが、JVMはヒープにスタックを置いてもよいことになっている。
0829デフォルトの名無しさん
2011/08/04(木) 17:30:08.54ヒープにスタックを置いてもよいってのも何か勘違いしとるような。
OSから割り当てられたヒープの一部をVM内部ではスタックに使ってるとか、
VMが実行時最適化するときメモリモデルと矛盾しない範囲でなら
ヒープに置くデータをスタックに置いても良いとか。
0830デフォルトの名無しさん
2011/08/04(木) 17:32:48.26ってことでしょ。
0831デフォルトの名無しさん
2011/08/04(木) 17:39:51.780832デフォルトの名無しさん
2011/08/04(木) 18:30:37.04enctype="multipart/form-data"で設定していますが、ファイル単体の場合はもちろん受信ができます。そこにテキストを入れてreq.getParameter()
を使用するとnullが帰ってきてうまくパラメータをとれません。
0833デフォルトの名無しさん
2011/08/04(木) 18:38:13.190834デフォルトの名無しさん
2011/08/04(木) 18:40:00.650835832
2011/08/04(木) 18:45:58.30返信ありがとうございます。
もちろん同じフォームです、getParameterではとれませんでした。
getattributeの方で試してみます
0836デフォルトの名無しさん
2011/08/04(木) 19:08:08.81getattributeでも取得できませんでした。 マルチパートでの送信時は、他のテキストパラメータとか一緒に送信できないのかな???
0837デフォルトの名無しさん
2011/08/04(木) 19:25:26.57Apacheプロジェクトなどのオープンソースのプログラムを題材として
極力具体的に解説してある本を求めてます。
0838デフォルトの名無しさん
2011/08/04(木) 19:32:50.69クラスA、クラスBがあり、クラスBがクラスAのインスタンスをクラスBのインスタンス変数の中に格納する設計です。
この場合、サンプルコードでは、クラスBにコンストラクタで、クラスAのインスタンスを引数で受けて、インスタンス変数にセットするようになっています。
しかし、コンストラクタ内で、クラスAのインスタンスを生成して、セットする方がシンプルに思えるのですが、サンプルコードのようにする理由が何かあるのでしょうか?
0839デフォルトの名無しさん
2011/08/04(木) 21:40:06.290840デフォルトの名無しさん
2011/08/04(木) 21:51:14.67なーるほど!
ポリモルフィズムですね!
ありがとうございました!!
0841デフォルトの名無しさん
2011/08/05(金) 01:15:32.25次のケースの時にどういう対処をしてるか教えてほしい。
public Test(String name) {
name = name;
}
Javaでは、引数側のnameを別の名前に置き換えることが通例?
0842841
2011/08/05(金) 01:17:37.700843デフォルトの名無しさん
2011/08/05(金) 02:06:56.770844デフォルトの名無しさん
2011/08/05(金) 10:06:25.00それ自分でコードリーディングすればいいじゃん。
0845デフォルトの名無しさん
2011/08/05(金) 11:51:38.05クラスごと渡す方法があるみたいだけど、もっときれいに書けないのかな。。
var House = function(){};
House.prototype = {
eventListener: null,
setEventListener: function(listener){
this.eventListener = listener;
},
fireEvent: function(name){
this.eventListener && this.eventListener(name);
},
pinpon: function(){
this.fireEvent("pinpon");
},
rurururu: function(){
this.fireEvent("rurururu");
}
};
var myhouse = new House();
myhouse.setEventListener(function(name){print(name);});
myhouse.pinpon();
myhouse.rurururu();
// pinpon
// rurururu
0846デフォルトの名無しさん
2011/08/05(金) 12:45:39.77という場合の定石はどのようなものですか?
0847デフォルトの名無しさん
2011/08/05(金) 13:25:39.32望んでいるものと違う気がするけどこんな感じ?
class HouseEvent {
public void fire(String name) {}
}
class House {
private HouseEvent eventListener = null;
public void setEventListener(HouseEvent listener) {
eventListener = listener;
}
public void fireEvent(String name) {
if (eventListener != null) eventListener.fire(name);
}
public void pinpon() {
fireEvent("pinpon");
}
public void rurururu() {
fireEvent("rurururu");
}
public static void main(String[] args) {
House myhouse = new House();
myhouse.setEventListener(new HouseEvent() {
@Override
public void fire(String name) {
System.out.println(name);
}
});
myhouse.pinpon();
myhouse.rurururu();
}
}
0848デフォルトの名無しさん
2011/08/05(金) 15:42:56.83画面から読み込んだ正整数yまで
すべての正整数を半角スペースで区切って
画面に表示するプログラム「Kadai2.java」を作成せよ。
ただし、xとして画面から読み込む値は
正の整数が入力されるまで繰り返し入力させるものとする。
というプログラムなんだが、この日本語が複雑すぎてバカなオレには全く分からないんだ。
誰か作成してはくれまいか?
0849デフォルトの名無しさん
2011/08/05(金) 15:58:33.020850デフォルトの名無しさん
2011/08/05(金) 16:57:09.720851850
2011/08/05(金) 17:11:32.400852847
2011/08/05(金) 17:52:10.20Javaではそういう形になるんだな。助かったよ。ありがとう!
0853デフォルトの名無しさん
2011/08/05(金) 21:16:09.67合ってるかはしらん
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baibai {
public static void main(String[] args) throws IOException {
System.out.print("正の整数Xを入力してください:");
int x = input();
System.out.print("正の整数Yを入力してください:");
int y = input();
for (int c = 1, z = x; z <= y; c++, z = x * c) {
System.out.print(z + " ");
}
}
private static int input() throws IOException {
int num = 0;
for (;;) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
num = Integer.parseInt(line);
if (num > 0) break;
System.out.println("正の整数を入力してください。");
} catch (NumberFormatException e) {
System.out.println("正の整数を入力してください。");
}
}
return num;
}
}
0854デフォルトの名無しさん
2011/08/05(金) 22:27:37.200855デフォルトの名無しさん
2011/08/05(金) 22:27:51.51自然数を1から始めるとすれば1からyまでの自然数の集合の中のxの倍数が該当する。
0856デフォルトの名無しさん
2011/08/05(金) 22:51:42.760857デフォルトの名無しさん
2011/08/05(金) 23:20:47.68課題なんだから、日本語を教えればOKだよね。
X=10
Y=100
の場合
10 20 30 40 50 60 70 80 90 100
X=7
Y=15
7 14
>>856
学び始めたんだったら、なんだってOK
プロになりたくて、論理や理論を半年の超特急で学びたいとかじゃなければ問題なし。
0858848
2011/08/06(土) 00:02:15.98出来た!あんがとっ!
0859デフォルトの名無しさん
2011/08/06(土) 03:31:23.510860デフォルトの名無しさん
2011/08/06(土) 05:06:50.82public void run(){
... この中でなくて、抜け出した後。
}
0861デフォルトの名無しさん
2011/08/06(土) 05:16:18.820862デフォルトの名無しさん
2011/08/06(土) 06:39:39.18別のスレッドを使ってターゲットのスレッドをjoinすればいいと思うよ
0863デフォルトの名無しさん
2011/08/06(土) 08:19:25.87アホか。自分を生成したスレッドで処理するにきまってんだろ
0864デフォルトの名無しさん
2011/08/06(土) 09:38:52.22runの終了、すなわちスレッドの終了ってのは知っての発言?
0865デフォルトの名無しさん
2011/08/06(土) 10:48:11.70Javaという言語の前にjpnという言語を先に学ぶ必要があるようだ。
0866863
2011/08/06(土) 11:12:02.33[メインスレッド]→(スレッド実行)→[サブスレッド1] の関係で
サブスレッド1の終了後に処理したいんだからメインスレッドで
処理するというのか間違っている?
少なくともサブスレッド1が別スレッドを仕込むとか言う>>862は異常だと思うが
0867デフォルトの名無しさん
2011/08/06(土) 11:17:20.88またなきゃいけないじゃん
0868デフォルトの名無しさん
2011/08/06(土) 11:19:37.53じゃね?
0870863
2011/08/06(土) 11:21:43.09スレッド実行のチェイニングをしたいんでしょ。それを仕込むのはメインが当然じゃない
0871デフォルトの名無しさん
2011/08/06(土) 11:34:07.01だからそれを>>862が書いてるね
0872デフォルトの名無しさん
2011/08/06(土) 11:49:01.660873デフォルトの名無しさん
2011/08/06(土) 11:58:22.380874デフォルトの名無しさん
2011/08/06(土) 15:29:06.42デザインパターンの「デコラトール」をぜひ学んでみよう。
0875デフォルトの名無しさん
2011/08/06(土) 17:05:44.230876デフォルトの名無しさん
2011/08/06(土) 18:41:45.78アホか。単にスレッド終了後に処理したいんならrunに書きゃいいんだよ。
たとえシリアルな実行でも別スレッドでやりたいっていってるんだから、
画面処理とかWindowsのCOM操作みたいに実行スレッドに制限のある状況なんだろ。
そんなところにデコレーターパターン持ってきたら破綻する。
0877デフォルトの名無しさん
2011/08/06(土) 18:47:43.560878デフォルトの名無しさん
2011/08/06(土) 19:38:38.730879デフォルトの名無しさん
2011/08/06(土) 21:25:41.160880デフォルトの名無しさん
2011/08/07(日) 00:48:01.90なんなのこの糞仕様。
String s = new String(new byte[]{(byte)0xF0, (byte)0xA1, (byte)0x88, (byte)0xBD}, "UTF-8");
dump(s.getBytes("UTF-8")); // → BOMなし
dump(s.getBytes("UTF-16"));//→ BOMあり
あとUTF-16のリトルエンディアンBOMありにする方法がわかりませぬ。
誰かおしえてください
0881デフォルトの名無しさん
2011/08/07(日) 04:32:58.31未だにUnicode規格で定められたUTF-8のBOMが扱えなかったり、
JARファイルに不正な文字コードを埋め込んだりする。
0882デフォルトの名無しさん
2011/08/07(日) 05:58:00.37いや扱えるだろ?
UTF-8のCSVをExcelで読めるようにBOMを埋め込んだ記憶があるんだが。
0883デフォルトの名無しさん
2011/08/07(日) 09:13:35.65遅レスだけど、try の中で return したら finally に行ってくれるんだっけ?
0884デフォルトの名無しさん
2011/08/07(日) 09:29:55.380885デフォルトの名無しさん
2011/08/07(日) 10:13:46.800886デフォルトの名無しさん
2011/08/07(日) 10:27:45.09シフトJISとJISみたいな・・・
0887デフォルトの名無しさん
2011/08/07(日) 10:29:56.67return値を一時待避するためのローカル変数が
コンパイラによってこっそり用意されるはず
0888デフォルトの名無しさん
2011/08/07(日) 10:31:14.670889デフォルトの名無しさん
2011/08/07(日) 10:42:11.55UTF-8はエンディアン関係なしにバイト順が同じになるから本来BOM付けないんだけど
一部のテキスト処理系が自分がUTF-8として判断するために勝手にBOMをつける。
んで、そういう処理系は先頭にBOMがないと正しく処理できないんだけど、本来BOMは
付かないもんだから今度は正しく処理してるほうが正しく処理できなくなる。
だから賢いテキスト処理系は二度エンコードを確認してる。Javaはこっち。
そんでもってUTF-8のBOM有りとなしを区別するのは日本だけだからわざわざUTF-8で
エン/デコーディングするときにBOMはつけないのが普通。
ついでにいうとUTF-8が読めなくなるのはBOMのせいじゃなくて特定のUnicode正規化を要求する場合があるから。
UTF-8のBOMの有無で正しく読めなくなるのは単に手抜きしてるそいつが悪いだけ。ExcelとかMSの名のつくソフトとか。
0890デフォルトの名無しさん
2011/08/07(日) 10:46:15.10…処理1…
} catch(hogeException e) {
…処理2…
return hogehoge;
}
デバッグしてみたら確実にcatchには入っているんだけど、処理2は通らずに
returnされるんだけど、どゆこと??
0891デフォルトの名無しさん
2011/08/07(日) 11:10:11.59基本的に間違っちゃいない
0892デフォルトの名無しさん
2011/08/07(日) 11:23:27.49全く違う。
BMPの16bitまでは生のバイト列で扱えるものをASCIIと都合をつけるためにわざわざ8bit列に変換してる。
ASCII圏の連中が1バイトで表せれる文字を多バイトで処理するのが無駄だといちゃもん付けてきたから
打開策としてわざわざ別物を作ったんだよ。
0893デフォルトの名無しさん
2011/08/07(日) 11:32:37.60単なる勘違いじゃね?
処理2からreturnするまで1行毎にprintf デバッグしてみれば?
0894デフォルトの名無しさん
2011/08/07(日) 13:29:50.61Java使いは嘘つきが多いな。
BOMはUTF-8であることのシグネチャーとして付けても付けなくても
良いことがUnicode規格で規定されている。つまりJavaソースに
付いていると処理できないJavaが規格に従っていないだけ。
>正しく処理してるほうが正しく処理できなくなる
これは嘘で、付いていても正しく処理しなければならない(Javaはできない)。
「本来付けない」とか「つけないのが普通」というのは>>889の妄想。
>UTF-8のBOM有りとなしを区別するのは日本だけ
アメリカではLinuxもWindowsも有無が統一されているのかよ嘘つきめ。
UTF-8のBOMの有無で正しく読めなくなるのは正常。なぜならBOM無しは
文字コードが何であるかの情報が無いんだから。
でも.txt限定だがWindowsのメモ帳やExcelは手動でUTF-8を指定すれば
BOM無しで開ける。これが一番正しい挙動。
0895デフォルトの名無しさん
2011/08/07(日) 13:53:58.38BOM付きUTF-8文書をBufferdReaderで読むと
一行目の文字列にU+FEFFが付いてくるのは「扱える」とは言い難いな。
ただのStringにもBOMを許すという設計が中途半端にコケてる。
1行目と2行目を入れ替えた文字列を再生成すると破綻するし。
0896デフォルトの名無しさん
2011/08/07(日) 14:08:38.76別。
この板に専用スレあるから詳しくはそこで。
0897デフォルトの名無しさん
2011/08/07(日) 14:11:27.59> UTF-8のBOMの有無で正しく読めなくなるのは単に手抜きしてるそいつが悪いだけ。
Javaのことかー!
http://bugs.sun.com/view_bug.do?bug_id=4508058
0898デフォルトの名無しさん
2011/08/07(日) 14:17:43.52互換性のために直さないよね。
0899デフォルトの名無しさん
2011/08/07(日) 14:46:17.52>ついでにいうとUTF-8が読めなくなるのはBOMのせいじゃなくて特定のUnicode正規化を要求する場合があるから。
Javaは正規化表現が違うと読めないのですか?
表示はできなくても読むぐらいはして欲しいのですが。
0900デフォルトの名無しさん
2011/08/07(日) 14:51:04.56例外が発生せずにメソッドを抜けただけでは?
ちなみに先日こんなコードを書く奴がいて困った。感動的な例外の握りつぶし。
try {...}
// catchなし
finally {
return;
}
0901デフォルトの名無しさん
2011/08/07(日) 14:59:47.78var name = getName() || "unknown";
0902デフォルトの名無しさん
2011/08/07(日) 15:17:17.87String name = !StringUtils.isBlank(tmp) ? tmp : "unknown";
かな?
0903デフォルトの名無しさん
2011/08/07(日) 15:18:41.78||はboolでしか使えないからこうするしかない
0904デフォルトの名無しさん
2011/08/07(日) 15:29:17.920905デフォルトの名無しさん
2011/08/07(日) 15:29:42.35は????
お前、人のコードをどうこう言えるレベルじゃないわ
お前派遣だろ?帰っていいよ
0906デフォルトの名無しさん
2011/08/07(日) 15:30:41.770907デフォルトの名無しさん
2011/08/07(日) 15:51:22.180908デフォルトの名無しさん
2011/08/07(日) 16:16:45.75全く間違ってないぞそれ
常にその場で例外処理することを強制されない言語では
かなり一般的なスタイルだ
0909908
2011/08/07(日) 16:18:34.20ちゃんと読んでなかった
0910デフォルトの名無しさん
2011/08/07(日) 16:26:09.97RuntimeException握りつぶすのもどうかと思うし。
0911デフォルトの名無しさん
2011/08/07(日) 16:43:46.120912デフォルトの名無しさん
2011/08/07(日) 16:53:54.59ハンドリングしないなら放置して即死させる印象が。
0913デフォルトの名無しさん
2011/08/07(日) 20:22:43.14処理2が実行されてないのに確実にcatchに入ってることが分かるなんて、どゆこと?
0914デフォルトの名無しさん
2011/08/07(日) 21:06:18.88あ。。。
catchの行にブレークポイント置いてて、そこで止まったら
例外をキャッチしてるってことでいいよね?
ちとやってみる。
0915デフォルトの名無しさん
2011/08/07(日) 21:36:52.280916デフォルトの名無しさん
2011/08/07(日) 23:24:59.370917デフォルトの名無しさん
2011/08/07(日) 23:28:17.13複数のスレッドがあり、それぞれが、とあるカウンタをインクリメントしにいきます。
この動作を排他制御の対象にするべく、以下の二つの書き方をしました。
OK: http://ideone.com/ZKUGl
synchronized public void countUp(int n) {
int tmp = counter.intValue();
tmp += n;
counter = Integer.valueOf(tmp);
}
NG: http://ideone.com/Qg0Gr
public void countUp(int n) {
synchronized(counter) {
int tmp = counter.intValue();
tmp += n;
counter = Integer.valueOf(tmp);
}
}
この差はいったいどういうわけでしょうか?どうして NG 例ではインクリメントを排他にできないのでしょうか?
0918デフォルトの名無しさん
2011/08/07(日) 23:33:06.54それだけいうならcounterを変えちゃいかんってことになる。
もっと簡単にAtomicInteger使え。
0919デフォルトの名無しさん
2011/08/07(日) 23:39:07.57counterのインスタンスで排他制御するから。
例えば synchronized(Integer.valueOf(0)) {} と
synchronized(Integer.valueOf(1)) {} は並列実行できる。
0920デフォルトの名無しさん
2011/08/07(日) 23:45:05.970921デフォルトの名無しさん
2011/08/07(日) 23:47:37.70ありがとうございます。amazonで見かけて気になってました。
さっそく見てみます
0922デフォルトの名無しさん
2011/08/07(日) 23:48:15.700923デフォルトの名無しさん
2011/08/07(日) 23:56:40.62private Object countLock = new Object();
を定義してそれでsynchronized(countLock)しろ。メソッドにsynchronizedは使うな。
0924デフォルトの名無しさん
2011/08/08(月) 00:04:42.04あれって基礎からだっけ…?
0925デフォルトの名無しさん
2011/08/08(月) 00:06:05.05あんまり相互に連携せずに同時に実行してるのが平行実行。
蜜に連携して通信頻度も多いのが並列実行。
0926デフォルトの名無しさん
2011/08/08(月) 00:13:10.95counterはCountクラスのフィールドなので、Countインスタンス単位で排他制御する必要がある。
しかし、後者はcounterインスタンスに対してロックを取得しようとしている。
couter参照先インスタンスはcountUpメソッド呼び出しごとに生成されるのでCountインスタンス単位での
排他制御には用いることができない。
(counterの参照先が変わらないのであれば今回のような用途で用いることが可能だが)
0927デフォルトの名無しさん
2011/08/08(月) 00:23:41.62どっちかというと逆
0928デフォルトの名無しさん
2011/08/08(月) 00:27:08.490929917
2011/08/08(月) 00:39:20.04コメントありがとうございます。感謝しています。
>>926
>couter参照先インスタンスはcountUpメソッド呼び出しごとに生成される
つまり、
>>917 >int tmp = counter.intValue();
の時点での counter 参照先と、
>>917 >counter = Integer.valueOf(tmp);
の時点での counter 参照先が違う、ということでいいでしょうか。
>Countインスタンス単位で排他制御する必要がある。
となると、synchronized(this) とするのがいいのでしょうね。実際これでうまくいきました。
>>923
まあ、べたな ciriticalsection/mutex/semaphoe をつかう(p-thread とか win32api とかの)考え方に近いですね。メソッド全体を synchronized する/synchronized(this)とするのがまずい理由を、もしよろしければ。
0930デフォルトの名無しさん
2011/08/08(月) 00:42:28.21お前も間違えてんぞw
UniCode はキャラクターセット
ASCIIもキャラクターセット
UTF-8 やUTF-7 はエンコード/デコード方式
UniCodeは見た目バイナリデータのように見える。
UTF-8エンコードしたUniCodeは、先頭が必ず1で始まるビット列
UniCodeは、標準的にUTF-8でエンコードすることが決まっている。
エンコードする理由は、
8ビット転送や8ビット単位処理しかできない系でも文字化けせずに転送することを可能にするため。
メール(SMTPやPOP)は7bit or 8bit転送が基本
HTMLも8bitだと思っていた方が良い。
コンピュータ内部は、8bitだったり16bitだったり32bitだったり11bitだったり・・・
0931デフォルトの名無しさん
2011/08/08(月) 00:48:51.99なんでUniCodeでUTF-8が標準的なエンコードに指定されているか、だが、
いろいろ理由があるが、その1つにASCII (キャラクターセットでおもに7bitASCII )との親和性が高いこと。
なぜなら、ASCII をUTF-8エンコードすると、7bitASCIIのbit列の先頭に0をつければよいことと、
ASCII 以外の文字( この場合はUniCode )は先頭が必ず1なので瞬時に確認できること。
だから8bitASCII ( 半角かな ) をUTF-8エンコードしても8bitASCIIとは認識されず、UniCodeの文字と認識される。
=文字化け
0932デフォルトの名無しさん
2011/08/08(月) 00:52:50.81UniCodeに限らずバイナリデータならエンコードできる。
ただし、バイナリデータは、
Base64やQエンコードが一般的なので、見ることはないだろう。
せいぜいUniCodeのエンコードの時くらいか。
だから勘違いする人が多いんだよね。
0933デフォルトの名無しさん
2011/08/08(月) 01:11:16.710934デフォルトの名無しさん
2011/08/08(月) 01:12:31.01横から失礼
そのメソッドだけならあんまり困らないけど、
synchronized (this)はロックの範囲が広くなるから
速度の面から不利になることがあるってところじゃないかな。
synchronizedメソッドはメソッド全部で排他制御されるので、
ロックが要らない部分があると遅くなるよ。
0935デフォルトの名無しさん
2011/08/08(月) 01:14:46.630936デフォルトの名無しさん
2011/08/08(月) 01:26:13.22やめとけ
こういう馬鹿は突っ込まれるとキレだすタイプ
なるほど。調べたところ、synchronized インスタンスメソッド=synchronized(this) で、そのインスタンスを触るスレッドが一つだけに限定されロック範囲が広くなるのですね。
深く納得しました。ありがとうございます。
0938デフォルトの名無しさん
2011/08/08(月) 02:36:52.16>>892が切れないかと心配でwww
え?UniCodeって16bitなんだ。へぇ〜www
とか
ASCII圏って何?
とか
別物って何?
とか
突っ込みどころ満載なんだけどwww
0939デフォルトの名無しさん
2011/08/08(月) 05:20:13.46UnicodeとUTF-8の違いは? その2
http://hibari.2ch.net/test/read.cgi/tech/1291075205/
0940デフォルトの名無しさん
2011/08/08(月) 07:31:46.85>インスタンスを触るスレッドが一つだけに限定
本当にわかってるのかな。
「thisにロックをかけてからアクセスするようにしましょう」という調停であって、
ロックかけずにアクセスするスレッドがいると排他にならないんだよ。
0941デフォルトの名無しさん
2011/08/08(月) 09:36:37.19ストリームを渡すんじゃなくて直に文字列を渡したい。
Document doc = builder.parse(new ByteArrayInputStream(xml.getBytes("utf-8")));
0942デフォルトの名無しさん
2011/08/08(月) 10:10:41.760943デフォルトの名無しさん
2011/08/08(月) 11:05:24.770944943
2011/08/08(月) 11:49:20.08これ見つけました。
記事が古いようですが、今もこのやりかたですか?
0945デフォルトの名無しさん
2011/08/08(月) 18:12:57.400946デフォルトの名無しさん
2011/08/08(月) 18:29:53.480947デフォルトの名無しさん
2011/08/08(月) 20:38:20.89javaってダウングレードできるのか?
0948デフォルトの名無しさん
2011/08/08(月) 22:19:08.460949デフォルトの名無しさん
2011/08/08(月) 22:25:20.48javaってダウングレードできるのでしょうか?
0950デフォルトの名無しさん
2011/08/08(月) 23:03:51.570951デフォルトの名無しさん
2011/08/08(月) 23:06:02.070952デフォルトの名無しさん
2011/08/08(月) 23:13:49.200953デフォルトの名無しさん
2011/08/08(月) 23:25:23.09http://www.oracle.com/technetwork/java/javase/downloads/index.html
0954デフォルトの名無しさん
2011/08/09(火) 01:10:12.65public class test {
int[] i = new int[2]; ←
i[0] = 1;
i[1] = 2;
}
とすると、
「このトークン";"(「←」箇所の";"です)の後には"{"を指定する必要があります」と、エラーが出ます。
public class test {
int[] i = new int[] {1, 2};
}
とするとエラーは起こりませんし、
public class test {
public static void main(string[] args) {
int[] i = new int[2]j;
i[0] = 1;
i[1] = 2;
}
}
この場合もエラーは起こりません。。。
一番上の表記法は何か間違ってるのでしょうか。教えてください。
0955デフォルトの名無しさん
2011/08/09(火) 01:19:43.45public class test {
int[] i = new int[] {1, 2};
}
この i はフィールド変数
public static void main(string[] args) {
int[] i = new int[2]j;
i[0] = 1;
i[1] = 2;
}
この i はローカル変数
0956デフォルトの名無しさん
2011/08/09(火) 01:23:22.23int[] i = new int[2];
i[0] = 1;
i[1] = 2;
}
はint[] i = new int[2]; が悪いわけじゃなくて,メソッドの中でもないのに
i[0] = 1;とかi[1] = 2;をやってるのが悪いっていう
0957デフォルトの名無しさん
2011/08/09(火) 01:40:43.86あーなんとなくわかりました。
クラスの地の文ではフィールドを定義するだけで、メソッド内ではないので代入などしてはだめだけど、
2番目の宣言と同時に値も初期化をするのはセーフってことですかね。
ありがとうございました。
0958デフォルトの名無しさん
2011/08/09(火) 09:39:31.670959デフォルトの名無しさん
2011/08/09(火) 11:46:25.17画像を1度ずつ回転させたImageオブジェクトの配列を作成したいのですが、どうしたらいいでしょうか?
今のところGraphics2Dのrotate()で描画先のGraphicsを回転させているのですが、無駄が多いような気がしまして・・・
0960デフォルトの名無しさん
2011/08/09(火) 11:59:07.440961デフォルトの名無しさん
2011/08/09(火) 12:35:38.52回答ありがとうございます
ただ、AffineTransformOpでやってみたら変換後の画像がやたらとぼけてしまうのですが、これはどうしたら直せますか?
0962デフォルトの名無しさん
2011/08/09(火) 15:06:06.49メインスレッドがあり、このスレッドが子スレッドを4つ立ち上げる。
メインスレッドと子スレッドのどこでも参照可能な変数がいくつか、ある。
この変数を変更できるのはメインスレッドのみ。
子スレッドはReadのみ可能とする。
子スレッドは今のところ同一マシン上で動いているが、
将来的には別マシンに移行もあり。
どうするのが良いか・・・・悩んでいる。
0963デフォルトの名無しさん
2011/08/09(火) 15:28:15.92ソースフォルダの下に置いてEclipseから実行しているのですが、
log4j:WARN No appenders could be found for logger (hogehoge.classname).
log4j:WARN Please initialize the log4j system properly.
というエラーが発生します。
どうすれば正しく動くようになりますか?
よろしくお願いします。
0964デフォルトの名無しさん
2011/08/09(火) 15:29:47.810965デフォルトの名無しさん
2011/08/09(火) 16:56:34.36public abstract class Hoge {
public void test() {
リフレクションで、勝手にオーバーライドされた hoge メソッドを実行したい。
}
}
new Hoge () {
public void hoge() { System.out.println("hoge"); }
}
このインスタンスで、testを実行したときにhogeを動的に呼び出すにはどうすればいい?だれか助けてくれ。。
0966デフォルトの名無しさん
2011/08/09(火) 19:31:11.13わからないならレスしないでください
0967デフォルトの名無しさん
2011/08/09(火) 19:53:52.53不要ならレスしないでください
0968デフォルトの名無しさん
2011/08/09(火) 21:02:36.12バイキュービック補間とかは試した?
あとは満足いくまでいろいろRenderingHintsいじってみよう。
>Graphics2Dのrotate()で描画先のGraphicsを回転させているのですが、
>無駄が多いような
こっちの方がハードウェア支援の回転とかに頼れそうで効率よさげだけどなぁ。
GDIとかDirectXとか詳しい人は補足よろしく。
0969デフォルトの名無しさん
2011/08/09(火) 21:43:48.65動的プロキシかな
0970デフォルトの名無しさん
2011/08/10(水) 10:37:16.70誰か教えてくれまいか?
ある変数は自ファイル他ファイル、サブクラス自クラス問わず読み込むことができる
(参照ではなく、Readしかできない)
ところが、特定のクラスからなら、変更できるようにしたい。
アクセス修飾子では不可能。
java.securityを使うか、
簡易的にハッシュをやり取りして書き込みを拒否するか、
どれにしても回りくどい。
なにか良い方法はないでしょうか?
0971デフォルトの名無しさん
2011/08/10(水) 11:44:19.24変数はprivateにして、
getterはpublic、setterにはprotectedないしはデフォルト可視性を使う
というやり方で、どの辺に不具合があるのか分からんのだが
0972デフォルトの名無しさん
2011/08/10(水) 12:43:03.18setter がprotected や なし だと、自ファイルの他クラスから書き込めるのかな?って。
0973デフォルトの名無しさん
2011/08/10(水) 13:14:37.80>>971
setter が protected や なし だと、同一パッケージから書き込めるでしょ?
基本的にクラスが異なれば、参照だけできて、
特定のクラスだけ書き込めるようにしたい。
やりたいことを言い換えて簡単に言うと、
メンバー変数やsetterを含むすべてのメソッドはprivateにしたい。
特定のクラス(複数)からだけはアクセスできるようにしたい。
0974デフォルトの名無しさん
2011/08/10(水) 13:23:27.48どういう時にそういう処理が必要になるのか知りたい。
0975デフォルトの名無しさん
2011/08/10(水) 14:29:47.08レスありがと。
■概要
公開情報を持ちたいのだが、
勝手に、もしくは不用意に、もしくはオーバーライドして書き換えられないようにしたい。
■詳細
比較的大きな規模のコードで、大きく大別すると、信頼ができるサーバ側のクラスと、
クライアント側が用意するクライアントサイドのクラスとある。
クライアントサイドのクラスは今のところサーバで動かしているが
将来的にはAPIを公開してクライアント側で作ることも想定しているのでまったく信頼できない。
サーバー側にクライアントサイドクラスがあったとしても、クライアントサイドクラスのプログラムミスで
公開情報が不用意に変更されないようにもしたい。
つまりクライアントサイドクラスは、サーバーサイドクラスにレスポンスを返すが、
サーバーサイドクラスだけが、クライアントから受け取った情報を元に、チェックし、精査して公開情報を書き換えたい。
■まとめ
分かりやすく書くと、公開情報の情報の流れを一方向にしたい
サーバー側からクライアント側への情報の流れだけを作りたい
ということ
0976デフォルトの名無しさん
2011/08/10(水) 14:32:09.10■補足
クライアントサイドクラスは、サーバーサイドクラスでも動いている必要があり、
サーバーサイドクラスから呼ばれる。
0977デフォルトの名無しさん
2011/08/10(水) 14:40:44.69・アクセス修飾子の役割を勘違いしている。
・クラス設計がおかしい。リクエストとレスポンスのクラスを分けるとか。
・サーバの役割がおかしい。クライアントに状態管理を委譲するな。サーバ自身で管理しろ。
0978デフォルトの名無しさん
2011/08/10(水) 14:45:08.41クラスの違いでアクセス元を判別しようとする必要性が分からない
サーバーサイドのクラスを同じパッケージにして
チェックを伴った受け取り部分だけ公開すりゃいいんじゃないの
それこそクライアントサイドのクラスが何であるかなんて
判別する必要が無いのでは? APIとして考えてるんでしょ?
0979デフォルトの名無しさん
2011/08/10(水) 15:25:43.00アプリケーションサーバーも、DBも使わない。
んでトランザクション処理をさせたいんだよね。で了承された情報だけをPushで公開したい。
>・アクセス修飾子の役割を勘違いしている。
それはあるかなぁ
>・クラス設計がおかしい。リクエストとレスポンスのクラスを分けるとか。
完全に分離はできている。Queueを使って橋渡しをしている。
>・サーバの役割がおかしい。クライアントに状態管理を委譲するな。サーバ自身で管理しろ。
Status管理は完全にサーバーサイドクラスが行っているので問題はないと思うけど。
今は、1つのサーバーサイドクラスのサブクラスとして公開情報をメンバー変数としておいている。
メンバー変数はすべてprivateで、サブクラスはstaticで宣言している。
そうすると、ほかのサーバーサイドクラスからその値を変更できないんだよね。
でここがポイントなんだけど。。。
その公開用サブクラスに、setterメソッドをpublicで置きたくない。
スレッドセーフにもならないし、
セキュリティ上も好ましくないし、
サーバーサイドは社外の人が開発する可能性もあるので悪意のあるコードを紛れ込まされるのだと困る
(≒変更可能だと困る)
「単なるミスでしたw」と言いながらコーディングミスされても困る。
0980デフォルトの名無しさん
2011/08/10(水) 15:27:09.060981デフォルトの名無しさん
2011/08/10(水) 15:28:34.62サーバーサイドのいくつかのクラスも、公開情報にアクセスして変更する必要があるので、困ってる。
クライアントだけを考えれば、分離すれば済むんだけど。。。
0982デフォルトの名無しさん
2011/08/10(水) 15:32:10.50ゴールはこちら。
情報の流れを一方向にしたい
ClassA → ClassB → ClassC
↑ ↑
ClassD ClassE
一般的にはどうしたらよいのだろうか?と言う話
0983デフォルトの名無しさん
2011/08/10(水) 15:41:01.32★★Java質問・相談スレッド147★★
http://hibari.2ch.net/test/read.cgi/tech/1312958339/
0984デフォルトの名無しさん
2011/08/10(水) 16:26:22.22お前の書き込みそればっかだよな
0985デフォルトの名無しさん
2011/08/10(水) 18:32:37.89サーバサイドだけにsetterを公開すればいいじゃん
0986デフォルトの名無しさん
2011/08/10(水) 18:36:28.58くらいあんとにはらっぱーだけをこうかいしろ
0987デフォルトの名無しさん
2011/08/10(水) 19:18:28.391.田中君に鈴木君のインスタンスを持たせる。
2.鈴木君は田中君への命令を自分の変数にセットして田中君を呼び出す。
3.田中君は鈴木君のメソッドを呼び出して鈴木君からの命令を受け取る。
4.他の人が鈴木君を騙って2の処理で田中君を呼び出しても、3の処理で
鈴木君のメソッドを呼び出したときに鈴木君の変数に値がセットされていないから
命令を受け取れない。
こんなのではダメ?
0988デフォルトの名無しさん
2011/08/10(水) 20:10:11.420989デフォルトの名無しさん
2011/08/11(木) 11:16:53.86そうすると、社外の人が作ったサーバーサイドクラスから変更ができるよね?
0990デフォルトの名無しさん
2011/08/11(木) 11:22:24.21ほぼ、それをやっている。
公開情報からハッシュを生成して、サーバーサイドに上げる。
公開情報にsetterを用意して、正しいハッシュ提示した場合のみ変更し、
正しく無い場合はエラーを戻している。
これの問題は、
公開情報クラスにpublicなsetterを作らなければならないこと。
そのほかには、
サーバーサイドのとあるクラスが公開情報クラスをロックし続ける、ってやつ。
なんかあまりうまくいかなかったのであきらめたけど。
0991デフォルトの名無しさん
2011/08/11(木) 11:23:07.60kwsk
求めているのはそれっぽい、というオーラを感じる
0992デフォルトの名無しさん
2011/08/11(木) 14:42:30.53もうパスワードでいいじゃん
ていうか設計がきもい
誰に聞いてもその設計はきもいって言うと思うよ
0993デフォルトの名無しさん
2011/08/11(木) 14:46:59.200994デフォルトの名無しさん
2011/08/11(木) 15:03:20.17てか、自分でもキモイので質問しているんだけど・・・
早い話が、
Javaでポリインスタンス化が簡単にできれば話は早かったりする。
最新の実装では、(うまくいくか分からないけど)次のようなコードを書いている。
○公開情報(マスター)をサーバーサイドのサブクラスとして定義
○マスターのコピーインスタンスをRead Onlyで生成
基本的に参照はコピーインスタンスで行う。
参照が必要なたびに、サーバーサイドクラスがコピーインスタンスを生成
うーーん、これまたきれいじゃないけど・・・
0995デフォルトの名無しさん
2011/08/11(木) 15:41:13.68許可情報持たしたクラス(仮にXと呼ぶ)でも作ればいいんじゃない?
・読み出し専用のクラスの場合
必要なデータのリストをXに持たして、サーバに登録
→ サーバへの要求には常に登録したXを渡す
情報が欲しいなら、データを要求するメソッドを呼ぶ。サーバはXを見て、必要なデータだけコピーして返す
もし、書き込み要求をしてきても、許可が無いからエラーを出す
・書き込みもしたいクラスの場合
↑と同じだが、登録のときに書き込みもしたい旨を伝えておく。
→ 事前に決められたクラスにだけ書き込み許可を出したいなら、
Xに登録要求してきたクラスへの参照を持たせて、instanceofでチェックするとか
大本の仕様・要求ってクラス(の持つ機能っていうのか?)で解決する類の問題じゃないと思うのだけれど。
0996デフォルトの名無しさん
2011/08/11(木) 16:55:49.59private Tanaka tanaka;
private String meirei;
public void setTanaka(Tanaka tanaka) {
this.tanaka = tanaka;
}
public void setMeirei(String meirei) {
this.meirei = meirei;
}
public String getMeirei() {
return meirei;
}
public String tsuuchi() {
tanaka.henkou();
}
}
public class Tanaka {
private Suzuki suzuki;
private String meirei;
public Tanaka(Suzuki suzuki) {
this.suzuki = suzuki;
}
public void henkou() {
meirei = suzuki.getMeirei(); //鈴木君が田中君に聞きに行く。
}
}
0997デフォルトの名無しさん
2011/08/11(木) 16:58:13.89public static void main(String[] args) {
Suzuki suzuki = new Suzuki();
Tanaka tanaka = new Tanaka(suzuki); //1.田中君に鈴木君のインスタンスを持たせる。
suzuki.setTanaka(tanaka);
suzuki.setMeirei("右向け左"); //2.田中君への命令を変数にセット。
suzuki.tsuuchi(); //3.田中君へ通知する。
}
}
0998デフォルトの名無しさん
2011/08/11(木) 17:01:47.20まあ、それは否定しない
0999デフォルトの名無しさん
2011/08/11(木) 17:10:45.36変更があるという通知をするだけで実際の変更処理はそれぞれのクラスに任せる。
田中君の命令を変更するメソッドはないので他のクラスは田中君に命令できない。
変更がある場合は通知のみで実際の変更処理は田中君のほうから鈴木君に聞きに行く。
最初からオブザーバーって言ったほうが早かったか。
1000デフォルトの名無しさん
2011/08/11(木) 17:14:34.37サーバとクライアントがあると(VMが分かれてると)、どっちにしろあんたの言う
> 基本的に参照はコピーインスタンスで行う。
> 参照が必要なたびに、サーバーサイドクラスがコピーインスタンスを生成
とおんなじようなことが発生する訳だけど、理解してる?
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。