くこか
6 :
デフォルトの名無しさん:2011/10/18(火) 20:45:15.71
はじめまして
今度JOGLを勉強しようと思っているのですが、ダウンロードできる場所と
インストールの方法が良く分かりません。
java.netの説明がたくさんあるのですがそこに行っても、ダウンロードできません。
よろしかったら教えてください。
スレ違いだったらすいません。誘導していただければ幸いです。
7 :
デフォルトの名無しさん:2011/10/18(火) 22:51:07.71
こっちの方が速いage
8 :
◆QZaw55cn4c :2011/10/19(水) 02:52:06.72
>>7 こっちはテンプレートを間違えている。(前スレ)
誘導されますた
.aaaaa { background: url(URL1) }
.aaaaa { background: url(URL2) }
.aaaaa { background: url(URL3) }
↑と数種類ある画像をランダムに読み込ませたい場合はどこにどのような文字を記入すればいいでしょうか?
Stringオブジェクトの場合、
String str = new String();
System.out.println(str);
と、System.out.println()にオブジェクト名だけ指定してやればその内容の文字列が出力されますが、
これを自分で定義したクラスで行うためにはどうすれば良いでしょうか?例えば下記のように
オブジェクトが持つフィールドの値が出力されるようにしたいです
http://pastebin.com/tt435gKi
>>11 class Hoged {
private String str;
Hoged(String dstr){
this.str = dstr;}
public String toString(){
return str;}
}
class deHoge{
public static void main(String[] args) {
Hoged h = new Hoged("test");
System.out.println(h); // => testと出力されるようにしたい
}
}
たぶんこんなかんじ
javaの更新お知らせがPCの右下のタスクバーから出るんだけど
あれってどういう仕組みですか?
あんな感じのアラート作ってみたいんだが、ググってもわからんです
誰かヒント下さい
>>13 java タスクトレイ
でググるとわかるよ
>>14 おぉ!すばらしい!ありがとうございます!
ArrayListクラスでx〜y番目の要素を取り出したい場合、forループで一つ一つ別のリスト等にうつしていくしか無いでしょうか?
subList(int,int)があるじゃん。
subListじゃだめ?
C++のソースコードをJAVAコードに自動変換することって可能ですか
可能です
んじゃしてみせろやぁ!
>>20 これで行けそうです
ありがとうございます
24 :
デフォルトの名無しさん:2011/11/03(木) 12:02:01.78
Tomcatのロゴが前に出してるのは、右前脚ですか?左前脚ですか?
>>24 これで行けそうです
ありがとうございます
雄猫トムの足で何するんだw
直接Javaと関係ないんだけど、聞かせてください。
Chrome、Safariで観覧してるクライアントPCにJava(JRE)がインストールされているかを、
Webページで、できればJavaScriptで判定する方法ってありますか?
最終的にはJavaWebStartを動かしたいんですが、
最近のChromeとかに対応したリファレンスが少なくて。。
29 :
28:2011/11/11(金) 11:16:24.07
30 :
デフォルトの名無しさん:2011/11/13(日) 11:05:28.49
antでは、循環参照をしているクラスのコンパイルはできるのでしょうか?
Eclipseでは、どうでしょうか?
試せば1分でわかるだろ
できます
javaのjava.util.regex.Patternって'.'にマッチさせることできないの?
"\."って書くとエスケープ・シーケンスが無効ですって怒られるんだけど
馬鹿なの?Javaなの?死ぬの?
Java6の日本語JavaDocは、なかったことにされたのか。
国際化開発者用作業サイトからしかダウンロードできない。
(いつ消えるかわからない。)
過去バージョンのJDK,JREリリースのダウンロードURLもなかなかたどり着けないし。
特定のバージョンの特定のリリース番号のJDK,JREを使いたいという顧客もいるのに。
OracleになってJavaは少しづつ先細りしていっていきそう。
>>33 馬鹿だし、Javaだし、氏んだ方がいいかもな。おまえが。
>>34 Oracleの対応がアレなのは確かだが
6以外はEOFでしょ既に。
それでも使う企業はサポート契約するからダウンロードURLがどーとか関係ないし。
EOLだw
ま、いっか。
>>35 そういう無駄レスいいから出来るのできないの?
残念ながら出来ない。馬鹿には。
えーんえーん
正規表現として解釈される前にコンパイラにリテラル文字列として
解釈されるからね。"\\." にしなさい。
>>33 Java言語仕様調べる気のないやつは素直に
java.util.regex.Pattern#quote(".");
使っとけ。
Pattern.LITERALの方がお似合いかもしれない
片山にベストアンサー賞を与えます
ベストアンサーを与えます(キリッ
名無しの皆さん糞コテに負けた気分はどうですか?
知らない奴なんかいないぞw
無知晒して恥ずかしいことにそろそろきづけ
当然おっちゃんも知ってたで
(⌒ー'  ̄: : ヽ ナよ ミ⌒':  ̄ `)
(_i -、T: : : : ::l ー ゝ : : :/r T´
)= |: : : : ::| _ 'ー l | !: : : / =ノ
T_, ハ: : : :< _,人_ __ '´ ヽ白∠ |: : ::ク ら
`ーyクー'´ (ノ ) y 冫方乂 V ,.、__ノ
/⌒ ヽ ノ レ `て へT ´ __v__
_r|こ|r、_人__/ '; 言舌 ヽ 言侖 / ⌒ <三三;>
 ̄ヾ____ノ | │ ⌒) l L 」 {::5! ´_ノ
|___,l 是頁 { こ | __ | |\_ ) _う
/××× |/)))⌒ヽ __,__ ナよ ( ( __ノー (ゝ⌒マ´
/××× / ̄ ̄/'⌒ノ { r十 __ / ヽ ', T ト)
┬┬ ┬/: : ::/ノ =/ `´ (ノ ) / 人 ', ( ̄ >
l l |l: :/∪ 只 _ < / }_ } /ノ ) )_
r__ノ V /ん、_ノ (._`` ヽ つ ヽ つ  ̄  ̄
/ >' ̄ ̄_____________
/ \__ ___ x \
l ヽ.,___ )⌒)) > ) ) \
じゃあお前らこれ知ってるか"ソ\"
おっさん、今は Unicode な時代ですよ。
UnicodeってUTF-8?
なにそれこわい
56 :
デフォルトの名無しさん:2011/11/14(月) 13:23:47.73
57 :
片山博文MZ:2011/11/14(月) 16:28:25.38
ふふふ、諸君はわたくしに勝てるかな。。。
>>54>>56 まったく違う。基本がまるでわかってないから、そんな変なこという。
ListってArrayList?
に似てる
実は微妙に違う
>>59>>60 まったく違う。基本がまるでわかってないから、そんな変なこという。
>
>>54と
>>59は日本語の並べ方は似てるが全く違う。
なら
>>61が正しいってことじゃ?
何が言いたいのか日本語でおk?
>>63も頭わるいなw
UnicodeとUTF-8は微妙に違う、はデタラメ
ListとArrayListは微妙に違う、でおk
Javaスレなんだから、それらの概念を
UMLでも使ってモデル表現してみればすぐ分かる
>>59は「UnicodeってUTF-8?」というレスが「ListってArrayList?」という文章に似てると主張している
>>60は「UnicodeってUTF-8?」と「ListってArrayList?」が微妙に違うと主張している
>>61は「UnicodeってUTF-8?」と「ListってArrayList?」が全然違うと主張している
60はわかってる可能性もあるぞ
リピートパターンという定型レスのデザインパターンにマジレスしてるわけなんだけどな
↑59のいいわけでした
ジャバラーの皆々さんは設計とデザパタの鬼ですから全ての事象について明快じゃないとマインドが落ち着かなんですよ
あれ?「い」が抜けてたw
やっぱり「い」がないだけでも落ち着かないですよねw
Directshow javaをつかってるんだが、サンプルにあるRTSP_Publish.javaを実行しても、
java.net.ConnectException: Connection refused: connect
というエラーが出るんだが、これってそのまんま動かないサンプルなの?それとも、俺の使い方がおかしい?
ちなみに受け側として、SimpleStreamClient.javaというサンプルも実行してるんだが、こっちでも
de.humatic.dsj.DSJException: RTPSource could not resolve streams, no data received
といったエラーが出るんだ
誰かどうすればいいか教えてくれないだろうか?
76 :
デフォルトの名無しさん:2011/11/16(水) 16:07:42.64
J2SEのAPIドキュメント日本語版で今ダウンロードできる最新版はどこにあるの?
J2SEの最新版はもうEOLじゃないのか。
Oracleのが部分的に日本語だろ、たしか。
というか、英語で読めよ。
英語は低脳が読むもんだ
(⌒ー'  ̄: : ヽ ナよ ミ⌒':  ̄ `)
(_i -、T: : : : ::l ー ゝ : : :/r T´
)= |: : : : ::| _ 'ー l | !: : : / =ノ
T_, ハ: : : :< _,人_ __ '´ ヽ白∠ |: : ::ク ら
`ーyクー'´ (ノ ) y 冫方乂 V ,.、__ノ
/⌒ ヽ ノ レ `て へT ´ __v__
_r|こ|r、_人__/ '; 言舌 ヽ 言侖 / ⌒ <三三;>
 ̄ヾ____ノ | │ ⌒) l L 」 {::5! ´_ノ
|___,l 是頁 { こ | __ | |\_ ) _う
/××× |/)))⌒ヽ __,__ ナよ ( ( __ノー (ゝ⌒マ´
/××× / ̄ ̄/'⌒ノ { r十 __ / ヽ ', T ト)
┬┬ ┬/: : ::/ノ =/ `´ (ノ ) / 人 ', ( ̄ >
l l |l: :/∪ 只 _ < / }_ } /ノ ) )_
r__ノ V /ん、_ノ (._`` ヽ つ ヽ つ  ̄  ̄
/ >' ̄ ̄_____________
/ \__ ___ x \
l ヽ.,___ )⌒)) > ) ) \
82 :
デフォルトの名無しさん:2011/11/19(土) 16:27:53.63
。。。
この過疎り具合
85 :
デフォルトの名無しさん:2011/11/26(土) 01:24:19.57
べつに過疎ってるわけじゃなくて重複してもう一方が進行してるだけなんだけどな
86 :
デフォルトの名無しさん:2011/11/28(月) 10:47:50.12
糞スレ保守
swingでGUI作ってるんですが、JPanelの中にJPanelを入れると描画がめちゃくちゃになってしまいます。
コンテナの中にコンテナみたいなやり方は出来ないのでしょうか?
おまえもプログラムしたいなら「めちゃくちゃ」のような抽象的な単語は使わないようにしたほうがいいよ
WindowsXP SP3
Tomcat7
の環境で
@HTML→AServlet→BHTMLで遷移するとBのHTMLが文字化けします。
@とBは同じHTMLですが@は文字化けしません。
ServletのdoPostの中では単純にHTMLをforwardしてるだけなのですが原因はわかりません。
Tomcat7で何か設定がたりないのでしょうか?
HTMLのHEADのmetaタグには文字コードをセットしてます。
ブラウザで受け取ったソースのエンコードはなんになってるのよ
とりあえず、文字化けしないエンコードを探してみたら
UTF-8、Shift_JISあたりは試してみました。
これはHTMLの<meta〜>の記述が悪い可能性が高いですか?
試してみました、じゃなくて、なにで送ったツモリで、なにで受け取ってるのよwww
なにがなんだかわからないけどエンコードのせいだと思ってるのか、そもそもデータが壊れてるのか、
オマエの話じゃ何にもわからねーよ
おまえはなんで切れてんだよw
糞スレ保守
誰もまともに答えないし保守いらないだろ
98 :
デフォルトの名無しさん:2011/11/29(火) 00:48:40.94
IDE使わずに書いてるとエスケープ文字で起こることあるな。
そんなのIDEでチェックできるんだから素直に使えばいいのに。
Tomcat7ってEncoding Filter必須じゃないの?
俺の場合、servletやjspだけじゃなく
ただの静的ファイル(index.html, hoge.xml)も
ブラウザでURL叩いて表示すると文字化けした。
それで結局
HttpServletResponse.setEncoding(utf-8);
でエンコードするフィルタを通して
HttpServletResponse. PrintWriter or ServletOutputStream
を使って出力しないと設定ファイルをどういじっても日本語でなかったよ。
6から変わったんだと思う。
Javaなんたらっていう資格は持ってた方がいいの?
1級って難しい?
>>100 その何たらが何か書かねーと答えられる奴いないだろボケ。
少なくともJavaがらみで「1級」なんて認定してる資格は全部ゴミだと思っていい。
取るならOracle認定Java資格シリーズ(OCJ-P, OCJ-WC, OCJ-Aなど)。
それでもよほど高位じゃないと「勉強して資格を取れる程度には継続的な努力ができるのね」くらいの評価にしかならないが、それでもないよりはマシだ。
102 :
デフォルトの名無しさん:2011/11/29(火) 19:40:57.17
ArrayList<Integer>の配列を作り方をおしえてください
>>102 嫌です。そのぐらい自分で調べましょう。
自分で検索をしようともしない人に、プログラミングは出来ません。
104 :
デフォルトの名無しさん:2011/11/29(火) 21:39:03.23
糞スレ保守
>>104 101は口は悪いが一応答えてるだろ。
回答内容に問題があるならツッコミいれてやれよ
一人がずっと質問者に対していちゃもんつけてるからな
CとJavaScriptをちょこっとかじってからJavaやっているけど
配列の宣言だけはマジでイラ壁だな
なんであんなワケワカランチンな記述にしたんだ?
なんたら○級は日本のへんな団体が認定しているゴミ資格だからな
低級でもいいからOJC関連を取った方が受けは良い
JAVAプログラミング能力認定試験って取った方がいいの?
PHPをちょこっとかじってからJavaやっているけど
変数の宣言だけはマジでイラ壁だな
イチイチ宣言するの面倒だろ
PHPみたいに自動でやってくれよ
>>111 1級はとってもいいかも
2級以下は余裕でとれるから、ほとんど意味ないと思う
どうせとるならOCJ-Pがんばれ
>>102 ArrayList<Integer> list = new ArrayList<Integer>(10);
訂正
ArrayList<Integer>[] list = (ArrayList[])new Object[10];
Nコアでちゃんと動くマルチスレッドプログラムが
N未満のコア環境下でデッドロックを起こすような
Javaでのシンプルな例ってないですか。
「ありえない」理由があるならむしろ大歓迎
プログラムからavailableProcessors()とかで
直接コア数問い合わせるのはなしということで
いくらなんでもおまいら
>>102 をバカにしすぎだろ?
ArrayList#toArray(Integer[])
120 :
117:2011/11/30(水) 11:51:13.80
俺はネタで書いたつもりじゃないけど。
>>118 「未満」で「コア」なの?「以上」「スレッド」じゃなくて?
ある一瞬にN以上の投票が無ければ進めないような処理ならNコア未満なら絶対に先に行けないと思うけど、
こういうのをデッドロックと呼ぶのか知らんしNコア以上あっても普通うまく動かないだろうね。
>>118 無限ループスレッドから永遠にコアを奪えない実行系とかでないかぎり、
「ありえない」と予想
そんなJRE聞いたことないけどなー。いつGCすんだよ
>>118 デッドロックは知らないが、
ひとつで動いても、ひとつ未満なら動かないな。
どうでもいいがnew Integer[0]だろ
どうでもいいなら黙っててください^^
>>116 残念。それはClassCastException。
まずはスレッドダンプ取ることからはじめてみようか
>>121 >ある一瞬にN以上の投票が無ければ進めないような処理なら
>Nコア未満なら絶対に先に行けない
Javaでサンプルがあるならぜひよろしく
sevletに詳しい人いませんかー
Androidアプリ(言語はjava)のオンラインゲーム開発してるんですが、プレーヤー情報とかの管理を
どうすればいいのか悩んでいるとservletで管理すればいいんじゃねと言われました。
色々調べてみたけどデータのやり取りの仕方が全くわかりません。
でも絶対それでできるって言われるんですが…
ServletってCGIみたいなものを作るためのものじゃないの? 認識不足?
開発予算はいくらなんですか?
>>131 これは
>>130 に対する質問で合ってる? 違ったらすみません
予算とかよく全然わからないけど、大学の研究でやってるのでこのぐらい大きいサーバーが必要とか
そういうことは考えなくていいと思います。
Tomcat立ててstrutsなり使ってセッションとかDBとか使えばいいんじゃないの
strutsでググれば1から10まで詳しく乗ってる
# strutsはJavaのめんどうな設定を難解な独自xmlに詰め込んでさらにわかりにくくした欠陥品だとおもうのは俺だけだろうか
>>133 どうせ高学歴なゆとりだろ
こういうゴミは相手にせずスルーしろ
java のアクセスレベルって無駄にあるけど
protectedっていらねーだろw
隙間産業的に用意はされているけど
public
private
指定無し
で十分なはず
おまえがそう思うんならどうたらこうたら
139 :
デフォルトの名無しさん:2011/12/01(木) 00:00:48.34
おとといからJavaでプログラミングを勉強し始めた物なのですが、
勉強のために簡単なゲームをするプログラムを作ってみました。
今自分で確認したバグは、数値を入力する時に、
1)Enterキーのみを押す→異常終了
2)数値以外の文字、記号を入力→異常終了
3)指定した想定した範囲外の数値を入力→エラーにならずに正常に動作してしまう
以上の3つです。
ググッて見て参考のソースコードを見たのですが、よくわからなくて挫折しかけています。
教科書をもっと先のほうまで読めば自然とわかるようになるものなのでしょうか。
ご教授のほどよろしくお願いします。
参考にした教材は以下のものです
Eclipseではじめるプログラミング(1〜6)
(
http://www.atmarkit.co.jp/fjava/rensai4/java5eclipse01/java5eclipse01_1.html)
スッキリわかるJava入門(1〜2章)
(中山清喬/国本大悟 著、インプレスジャパン 発行)
長文失礼しました。
140 :
139:2011/12/01(木) 00:02:30.32
あげてしまいました、すみません(汗
めんどくさいからリンク先は見てないけど、変数のデータ型が数字なのかなあ。そもそも、おれはcしか知らなかった。
>>139 その程度のプログラムなら
動作しなかったソースを貼ってから質問汁
>>136 package privateは他のJVM系言語でよく削られてるね。
protectedは普通に使うと思うけど。
144 :
139:2011/12/01(木) 00:36:32.29
145 :
139:2011/12/01(木) 00:37:23.81
パスワードは139です。
146 :
139:2011/12/01(木) 00:46:10.92
>>141さん
変数のデータ型はStringです。java.util.Scanner.nextLine()で入力してから、
Integer.parseInt()でintに変える際に、文字が入力されているとエラーが出ます。
if()を使ってStringの中身が数値かそれ以外か判断する命令がないものかと検索したのですが、
よくわからなくて。
>>144 俺もJava素人だけど、Class1つにこれほどプログラムをまとめるものなのか?
VBか古いC的な組み方のように思える
148 :
139:2011/12/01(木) 00:51:37.37
>>147さん
Java初心者というか、プログラミングの初心者で、
まだClassの使い方とかもよくわかっていないんです。すみません。
Classについて勉強すれば、もっとスッキリしたプログラムになるんですか?
この調子でまだまだ続くのか?
Class = 命令の分割化
class Init 初期画面と終了確認画面
class Battle 戦闘処理
class Filed 移動処理
少なくとも3つには分解するって話
ソースコピペより、そのソースから移動処理摘出して
あれこれ改造する所から始めたほうが良い
他の板から移動してきました
毎日更新される、あるニュースラジオサイトに、その日のニュースの音声ファイルへのリンクと書き起こし文が掲載されたページへの
リンクがあります
mp3と、抽出した書き起こし文の、一括ダウンロードを自動でやりたくなりました
java入門書を図書館で借りてきて読んで、見よう見まねと入門サイトのコードの切り貼りで、コンソールからなんとか動くようになりました
読み取り中のURLやMP3はコンソールに System.out.println(url[i]); みたいなコードで順次表示させ、進捗状況を確認してました
今回SWINGをつかってGUI化し、コンソールの変わりにテキストエリアを使い、上記コードは area1.append(turl[i]); みたいなかんじに変更しました
すると、ファイル取得用のボタンを押してから、プログラムがDL作業に入った数分間何も変化がなく、DL作業が終わった時点で一気にテキストエリア
に終了した作業内容が書き込まれるようになってしまいました
ググるとスレッドを使った初心者には高度なコードの話しか見つけられんでしたが、これをテキストエリアに順次表示させるようにするためには、
やはり簡単なコードの修正じゃなく、スレッド等の勉強を積まないと無理でしょうか
>>146 >if()を使ってStringの中身が数値かそれ以外か判断する命令がないものかと検索したのですが、
変換かけてtry~catchで拾うか、正規表現でマッチを取るか、ズバリのメソドは無い筈。
>>153 ありがとうございます
さっそく試します
>>150さん
冗長なソースを読んでいただいてありがとうございます。
Classについてもっと勉強して分割できるようにがんばってみます。
>>152さん
わざわざ検索かけていただいてありがとうございます。
やはりズバリの命令はないんですね。
>変換かけてtry~catchで拾うか、正規表現でマッチを取るか、
が何を意味しているのかわかるようになるまで勉強してみます。
>>155 java.lang.NumberFormatExceptionで例外をキャッチ
>>155 正規表現が、そのものずばりだと思うけどね。
簡単な数字の判定程度なら、すぐ分かるからググってみるといい
>>155 ひとつのクラスあたり30行くらいを目処に設計するとわかり易いと云われている。
プログラムの機能各にクラスを分けるといい。
ひとつのクラスを30行くらいってきつくね?
1クラス, 1メソッドみたいにするのか?
ヘタしたらファイルヘッダとimport宣言と
クラスのドキュメントコメントとクラス宣言だけで終わりだな
どうにもならんがjavadocコメントがあると読みにくいとは思う。
1ファイル 200行超えるのは避けたいがファイル数が増えまくるのも嫌
30行/メソッドまでみたいな話はCleanCodeで見たよ
メソッドというか、1画面で見渡せる範囲で処理をまとめると、作業効率がいいって話なら、25年ぐらい前から実践してる。
画面は人それぞれだしそれはちょっとどうかな
あ、けど行数もコーディング規約によって変わるしいいか
165 :
デフォルトの名無しさん:2011/12/01(木) 19:36:26.47
ソケット通信が難しい…
サーバー側からCドライブのフォルダの中のファイル名送ろうとしてるんだけど
クライアント側で出力すると1行目しか読み込んでない…
ほうほう
>>165 まず簡単なテキストの送受信から確認したら?
ソケット通信が難しいだと?
簡単に扱うためのソケット通信なのにw
へぇ〜
アセンブラは機械語より簡単ですよね
事実簡単だろ。紙でアドレス計算した連中なら、全員賛同するはず。
まんこ
変に抽象化しすぎてかえって複雑になるってJavaワールドのお家芸だよね
ソケットで送るって話をしてる最中に、Cドライブのファイル名がどうのと言い出すあたりの混乱振りは、どうにもならないだろ。
>>173 悲しいかなjavaに限った話ではない。
マトリョーシカ職人養成言語
javamailを使ってメールのやり取りのあるサイトを作成しています。
現在、サイトの独自ドメインのメルアドで送信しているのですが、
高確率で迷惑メール扱いになってしまいます。(携帯へのメールなど)
なにか対策はないでしょうか?
gmailを使うとか、SendMail()に迷惑メールではないと明示するパラメータがあるとか。。。
送信側で迷惑メールではないってフラグを付けられたら全て迷惑メールがそのフラグを付けると思いませんか?
179 :
177:2011/12/02(金) 10:46:01.79
レスありがとうございます
それは思います。しかし、救済策はないのかなぁとか期待してしまいました。
要するに
>>177 は迷惑メールを届けたいのだ、という認識でOK?
携帯の場合、「迷惑メール扱い」にするのは、クライアント側だから
Webでユーザーにお願いするしかないでしょ
PCだと、変なタイトル付けるとなりやすい感じ?
182 :
177:2011/12/02(金) 11:00:56.62
いえ、サイトのユーザーに通知メールを送るだけですので悪意などはまったくありません。
とどのつまり、そんな悪用可能な方法は無いと言うことですか。。
183 :
177:2011/12/02(金) 11:03:43.92
>>181 ありがとうございます!!!!!
わかりました。タイトルの見直しと、注意文を掲載する形を取りたいと思います。
糞スレ街道をこのままどんどん突き進め
確か、メールのヘッダのなんたらとかんたらが同じじゃない奴は迷惑メールの可能性が高いとかいうのがあった気がするけど、その辺は大丈夫?
>>185 ありがとうございます!!!!!
なんたらとかんたらを別にしたら解決しました。
な〜るほどね〜
送信者認証が無いメールは高確率で迷惑メール行き
”本気”で対応したいならDomainKeysとかDKIMとかでググればいいかと
staticメソッドの利便性を教えてくれ!
通常ならnewで作って普通に呼び出せばいいのに
特別な呼び出し方でスコープも分かりにくいから旨味が無いわけだが
static変数は別だけど
192 :
◆QZaw55cn4c :2011/12/02(金) 23:14:02.61
>>191 特定のクラス一つに強制的に所属させる、という分類法に機能的・意味的にそぐわないメソッドを無理やりにどこかに押し込める、いわばオブジェクト指向万能論者にとっても必要悪・目の上の瘤的な存在なのでは?
日本語でおか
クラスの設計について質問です。
CSVを書き込むCSVWriterというクラスを作り、実際の出力はwriteCSV()が行うとします。
この時CSVWriterはjava.io.BufferedWriterを継承させたいのですが、そうなると
利用者から見てwrite()、writeCSV()どちらを使えば良いか迷うことになります。
このとき、write()を実行された場合はどういう動作が適切でしょうか。
196 :
151:2011/12/03(土) 01:04:00.97
先日質問させていただいた
>>151です。
>>153を参考にSwingとTimerでも一度ググッたら、関連するページがいっぱいヒットしました
http://www.javamex.com/tutorials/threads/invokelater.shtml このサンプルどおりボタンの処理をスレッド化したら解決しました
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Thread omoimessoddoThread = new Thread() {
public void run() {
omoimesoddo();
}
};
omoimesoddoThread.start();
}
});
本来上記ページのサンプルにあるSwingUtilities.invokeLaterを使用するコードもつけたのですが、
ひょんなことからコードをコメントアウトしても動いてます
重いメソッドが動いてる間にもボタンが操作可能になってしまってるのが関連してるのかもしれないですが
そのへんはぼちぼち直していきます
ありがとうございました
197 :
196:2011/12/03(土) 01:07:10.18
コード貼り付け失敗すまそ
うざい
>>195 そもそもインターフェイスが合わないからWriter以下を継承するべきではありません
Writerを引数に取る独立したクラスにしましょう
数学関数を集めたクラスを作ったとしていちいちオブジェクト化したくないじゃない
スタティックメソッドで計算結果を得られればそれで十分じゃない
リプレースを連続で使用する場合
前のリプレースで置換した文字列は無視することはできますか?
例えばある文字列を、"あ"を"あい"に置換した後、"い"をいうに置換する場合
最初の"あ"が"あい"に置換された"い"の部分を無視するとか
い を いう に変換した後、 あ を あい に変換する。
>>203 これはただの例なので文字は連続しているとは限りません
"え"を"おえ"に置き換えるという部分もあるので単純に一度置き換えた箇所以外の該当文字をリプレースしていく方法はありますか?
連続で使用する場合は、
前の置換を利用したい場合、利用したくない場合、色々あるから、
置換の順序を考慮してするのが簡単。
ジャヴァ関係ないねん
>>204 自分でエディタ使って一括置換する場合にどうすれば考えてみれば早い。
自分なら、一つ目はありえない文字列(「@@1@@」みたいな)に置換しておいて、
その後で二つ目の置換をかけ、最後に最初置換した文字列を本来の目的の文字列に置換する。
うわぁー
そりゃスンゴイわぁー
>>207 実はオリジナルの暗号文作成ソフトであ、から ん、までの一つ一つの文字を置換したいので効率の良い方法ありませんか?
ありません
いや、まあ、それもどうかと思うが
>>210 ひらがなの暗号化なら、
サンデー今週号の「史上最強の弟子ケンイチ」にすばらしい方法が出てたぞ。
>>212 ちょっとした言葉遊び程度の暗号です
ひらがなを置換して変な文章作成するソフトで複合化はルールに従った置換で簡単に出来るのですが、
一文字一文字を暗号化していくとなると難しいです
昔、GGって言うジョークソフトがあったんだが、知ってる奴いないよね?
知りたくもないです
休みになると必ず元気になる荒らしはもう何年も飽きないよな
どれだけ無趣味なんだお前
>>215 それ一度置換した文字は読み直す必要ないじゃん。1パスで処理できる
そもそも何回も先頭まで戻って置換し直しなんて処理にはならないじゃん
>>196 SwingWorkerでググるとよろし
>>202 リプレース前の文字列が1字に限られるんだったら、文字列の頭から順に処理していくだけで済むんじゃないの?
そうでなくとも、未リプレースの文字なのかリプレース済みの文字なのか判別できるようにしとくだけで良さそうだけど。
>>219 例えば
string a="あいうえお";
a.replase("あ", "あい").replase("い", "いう")•••;
ってことですか?
パッケージ名やクラス名に日本語を入れると、実行時コンパイラ中で文字化けするのか
java.lang.ClassNotFoundExceptionとなってしまいます
これを問題なく実行できるようにする為にはどうすれば良いでしょうか?
メソッド名やフィールド名に日本語を使うのは大丈夫でした
また、Eclipseを使っていますが、TextFileEncodingはUTF-8に設定しています
質問いいですか。java始めて一年くらいの初心者です。簡単なテキストのすごろくみたいなの作ろうと思ってます
diceクラスのdiceRollメソッドでint型のdiceNumberに値を入れて、
panelクラスのpanelDownメソッドでpanelNumber(残りのパネル枚数)を50に設定して、
panelNumber = panelNumber - diceNumber; return panelNumberでdiceの出た目の数だけどんどん枚数が減っていく仕様にしたいのですが、
playクラスのplayGameメソッドで、dice();panelDown();と続けて実行して、最後にshowクラスのshowPanelメソッドで
System.out.printf("残りのパネルは%d枚です",panelDown(panelNumber));としているのですが、
パネルの残り枚数が50から変動しません。いろいろ試してみましたがだめでした。何かアドバイスをください。お願いします
わかりづらいようでしたらもう少し詳しく書きます
>>222 一旦ローマ字にリプレースして、あとから戻せ。あ行は最後に戻せ。
>>224 panelDownのなかでdiceNumberが幾つか確かめろ
あと、panelNumberはなんでpanelDownの引数なの?
panelDownの中から見るpanelNumberと引数で渡しているpanelNumberがブツなら引数で渡すことないし、
別のブツなら上書きされてねーんじゃねーの?
コード見せて欲しいところだけどただの凡ミスで自己解決エンドだろうな
>>226 ×panelDownの中から見るpanelNumberと引数で渡しているpanelNumberがブツなら引数で渡すことないし、
○panelDownの中から見るpanelNumberと引数で渡しているpanelNumberが同じブツなら引数で渡すことないし、
>>223 パッケージ名やクラス名に日本語を入れるのはやめとけ。
コンパイル後にファイル名になるのでJVMの外の世界に影響が出る・・つまりOS依存部分が出来てしまう。
230 :
デフォルトの名無しさん:2011/12/04(日) 17:58:25.99
Java Tutorialはなぜ公式PDFがないのか。
何でもかんでもPDFにしたがるのは日本だけだからな。
一まとめの文書量が多いとPDF使うよ。
PDFは形式が決まった書類でもなければ極力出力したくないなあ
ワードファイルとか受け取りたくないから文書はPDFでやりとりねといったら、
エラーログもPDFで送ってきた馬鹿を思い出したw
皮肉もわからん極楽蜻蛉
235 :
◆QZaw55cn4c :2011/12/04(日) 20:53:55.19
>>233 いまや pdf がセキュリティホールの一つ。
GUI のウインドウを出して、それにコマンドラインで
命令を送って制御したいと思っています
独自コマンドをいくつか定義して、それに加えて
UNIX 標準のコマンド等(less, grep, リダイレクトなど)を
組み合わせて使用できるようにしたいです
cygwin のターミナルから GUI プログラムに向けて
メッセージを送信するといいのかなと思いましたが
別々のプログラム間でどのように
メッセージを送信すればよいか分かりません
どなたかやり方分かる方教えて下さい
237 :
デフォルトの名無しさん:2011/12/05(月) 10:52:15.00
すみません、質問です。
System.out.print() や System.out.println() を実行した後に、
その出力した値を文字列として得たいのですが、どうしたらいいでしょうか。
System.out.print("AAA");
System.out.print("BBB");
String str = /* 何かを実行することで、"AAABBB"を取得 */
ということをやりたいのです。
System.setOut() を使えばできそうなのですが、なかなかできません。
System.setOut() の引数の型が Writer であれば、StringWriter を使えるのですが、
引数の型が PrintStream なので使用できません。
何か良いアイデアはありませんでしょうか。
>>237 ありがとうございます
ポート開くのはセキュリティ的に少し怖いのですが、
何か安全対策の方法はありますか?
オーバーライドやオーバーロードなんて厨二っぽい名前すぎて混乱していたけど
オーバーライドの重要性(つーか必須)はよく分かったけど
オーバーロードって要らなくね?
ようは
if(変数の数==1)
Method1();
if(変数の数==2)
Method2();
みたいなもんでしょ?(型で判断もしてくれるけど)
同じメソッド名で混乱を招くだけじゃね?
read1とかread2みたいなメソッド名であふれたクラスを使いたい奴も居るんだな。
C/C++出身者が大好きだろ。func1,func2,funcEx,_func
オーバーライドやオーバーロードを厨二っぽい名前って言ってる時点でおかしい
そもそもプログラム用語ってのは厨二受けしやすい
クラス
オーバーロード
ファイナリィ
ストリーム
ヌルポ
>java very.irritating.poor.eternal.force.Blizzard
>相手は死ぬ
「厨二っぽい名前」とか「厨二受けしやすい」とかはどういう意味ですか?
abstractって、受身(エラーチェック的)の@Overrideに対して
絶対オーバーライドしろや!的な継承をさせるためだけの物なんだな
しかも引数の数と型まで限定させてさ
そのくせ中身は空っぽ
ウゼェ存在だなwwww
>>248 何をいってんだお前は?
中身が空っぽなのはお前の頭蓋骨の中だろ(笑)
だなw
251 :
デフォルトの名無しさん:2011/12/05(月) 17:26:50.97
すみません、質問ですが
<?>
ってどういう意味ですか?[]と同じ配列の意味でしょうか?
キャストじゃなかった?
日本語にしようぜ
クラス 教室
オーバーロード 過負荷
ファイナリィ 最後
ストリーム 小川
ヌルポ ガッ
>>234 「ゆとり乙」のことですね。
分かります。
>>254 マジレスするとC++のJIS見れば大体日本語になってる
逆に分かりにくいんじゃないかと思うけどね
Aが5ならBが1
Aが4ならBが2
Aが3ならBが3
Aが2ならBが4
Aが1ならBが5
↑みたいになる便利な関数なんて無い?
-
259 :
デフォルトの名無しさん:2011/12/05(月) 21:10:55.30
つりとおもった
262 :
デフォルトの名無しさん:2011/12/05(月) 22:12:30.32
お願いします。form とtextとinputタグが禁止タグになっているのですが、ブログで
メールフォームが使えないのを使えるようにしたいです。
document.write('<input type="text" name="name" />');
のようにするらしいのですが、
<INPUT type="text" size="31" name="email"> (文字)</input>
の場合はどう書けば良いのでしょうか?
nameの後ろの /は</input>の代わりなんでしょうか?それともまた別に
document.writeから記述しないとのでしょうか?
http://ameblo.jp/daiyu39/entry-10970539941.html を見てもよくわかりません…誰か教えてください…
<FORM action="chamamail/chamamail.cgi" method="POST">
<TD width="432" valign="top"><input type="text" size="31" name="お名前"> (苗字だけ)</TD>
<TD><INPUT type="text" size="31" name="email"></TD>
<input type="submit" value="確認する">
↑こういうところが禁止ワードに引っ掛かります。
http://ameblo.jp/wazameba/entry-10736090264.html に紹介されている
<div class="createTag"><!--
<[ で禁止タグを囲むやり方も試しましたが、よくわかりません…
禁止ワードには引っかかりませんが、文字も入力フォームも表示されなくなってしまいます。
(多分書き間違えてるんですが…)
名前と電話とアドレスの入力と確認ボタンのみのシンプルなメールフォームです。
263 :
デフォルトの名無しさん:2011/12/05(月) 22:27:09.08
<div class="createTag"><!--<[FORM action="/chamamail/chamamail.cgi" method="POST"]>--></div>
<table width="554" border="0"> <tbody><tr>
<td width="108" valign="top" align="left">●お名前</td> <td width="432" valign="top">
<div class="createTag"><!--<[input name="お名前" size="31" type="text">(苗字だけで結構です)</input]>--></div> </td></tr><tr>
<td width="108"><br /></td> <td><br /></td> </tr><tr> <td width="108"><br /></td><td><br /></td></tr><tr>
<td width="108" valign="top" align="left"> </td>
<td><div class="createTag"><!--<[input name="email" size="31" type="text" />"]>--></div></td> </tr> </tbody></table>
<p align="center"> </p><div class="createTag"><!--<[input type="submit" value="確認する"> </input]>--></div><br />
と書いてみてもやっぱり禁止タグが有りますと表示されます;;
苗字だけで結構です(笑)
266 :
262:2011/12/05(月) 22:44:18.76
素でスレ間違えました…。急ぐので他の板に移動しますノシ
出来た人に千円あげます。
こないだ,rootのパスワード破って5000円もらったから、結構です。
268 :
デフォルトの名無しさん:2011/12/06(火) 16:08:17.03
short s[] = new short[3];
s[0] = 1;
s[1] = 0;
s[2] = 3;
Arrays.sort(s);
for(int i = 0; 3 > i; i++)
System.out.println(s[i]);
これで
0
1
3
になると思うのですが、
0
0
0
になります。どうしてでしょうか。
270 :
268:2011/12/06(火) 16:33:48.21
ああ何でだろ
short s[] = new short[10];
とかにしたらダメだ
271 :
268:2011/12/06(火) 16:46:03.86
自己解決しました
JavaのストリームオブジェクトのBufferを完全に空にする方法ってどうしますか?
一旦例えば yamadaという文字を読み込んだオブジェクトはずっとこのデータを
バッファに保ったままですよね?
>>273 バッファ感がない。
ずっとあるのは気持ち悪い。
読んでも読んでも、ネタが尽きないバッファ?
276 :
デフォルトの名無しさん:2011/12/06(火) 22:57:10.30
製作板の人みんな冷たいおorz
バッファサイズ0にすればいいですよ!
278 :
デフォルトの名無しさん:2011/12/07(水) 00:58:57.66
SunのThe Java Programming LanguageはOracleのサイト上で公開されていますか?
日本が豊かで美しい国であるといくら標榜しても、リアルの日本社会ではお金を払わない人に対してまともな教育や医療は提供されません
280 :
デフォルトの名無しさん:2011/12/07(水) 12:00:11.65
(´・ω・`)お昼だよ
281 :
デフォルトの名無しさん:2011/12/07(水) 13:06:20.46
このファイルを以下のコードでエンコードすると文字化けします。
ファイル末尾の]の文字を削除すると正しくエンコードされます。
自動判定ではなく文字コードを指定しているのだから、
本来どのような内容でも正しくエンコードされるはずですが、
なぜでしょうか?
http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4924 File f = new File("D:/encodeTest.txt");
byte[] src = TestUtility.read(f);
Charset c = Charset.forName("SJIS");
String encoded = new String(src, c);
System.out.println(encoded);
public class TestUtility {
public static byte[] read(File f) {
byte[] res = new byte[(int) f.length()];
try {
FileInputStream fb = new FileInputStream(f);
fb.read(res);
fb.close();
} catch (IOException e) {
e.printStackTrace();
}
return res;
}
}
>>281 文字化けしてるかどうか、どうやって確認してるの?
283 :
281:2011/12/07(水) 14:24:37.88
>>282 コンソールの出力です。
ファイルの先頭に”あ”と入れたり、末尾を一文字削ったりすると全角文字が正しく表示されますが、
何もせずにやると全角文字が化けます。
>>283 一旦リダイレクトして、テキストエディタとかで開いたら?
285 :
281:2011/12/07(水) 14:42:19.74
な〜んてな。
SJISなんて文字コードはないMS932でやれ
if(x==1)
print(x);
else
print("else");
print("hoge");
この一行省略機能って多様している?
最初は紛らわしいと思っていたけど、使い始めたら多用している俺ガイル
でも
if(y==0){
〜〜〜〜〜〜;
}
って書く癖をつけておいた方がいいのかな
ブロック文じゃなくて式文おく場合は改行しないとかで縛ってるな。
Javaじゃやらないが
if (y==0)
{
}
else
{
}
が実は好きです
基本
if(y==0){
〜〜〜〜〜〜;
}
一行の時は
if(x==1) print(x);
else print("else");
print("hoge");
と書くな。ifやelseだけで改行するのは1行の情報量が少ないのに行が増えるし
ifやelseだけじゃ文章としての意味を成さないから意味がわかる構造として;まで改行しない。
if (y==0)
{
}
だと文脈ぶった切りな気がするので、そういえばやらないなぁ。Cから入った人にしか見ないし。
ifだけのとき
if (y==0){};
{
};
こうにも見えるしね。空行に;置くかどうかは悩む。
どうでもいい
マ板でやれ
c++で、boost::optional<T>に慣れすぎて、javaでも似たようなことをしたいのですけど、
どういう風にすればできますかね?
型一つ一つについて有効無効を作っていくのは面倒すぎます。
という、ヘルプを求める質問をしようとして、もう少し調べてみたら、
「ジェネリック」というキーワードにたどりついたのですが、これでいけそうですかね?
javaにスライシングは無いのかと考えていたのですが、そうではないようです。
簡単に確認できるプログラムを紹介してもらえませんか?
(参照をコピーするのだからデータ部が切れるということがないと思っていた。)
おいおい、みんな分かってるから釣られる必要はないぞ
{
};
>こうにも見えるしね。空行に;置くかどうかは悩む。
どういうこと?
>>297 馬鹿か?
なんでそのたった一行上が見えねえんだよ
文字の表示が32x4キャラクター程度の環境かもしれないじゃないか
今年専門学校に入学してjavaやってるんだが
ふと思ったんだけどゲームの開発とかってなんでjavaじゃなくてC++なんだ
プログラミングならゲーム開発に限らずjavaだけで何でも出来そうな気がするんだけど
ランタイムが普及していないし嫌われる
GUIが使いづらい
値型がない
プラットフォーム固有のAPIが使いづらい、使っちゃいけない空気がある
GCのせいじゃね?
ユーザー定義の値型さえあればそこまでGCを恐れることもなくなるんだけどな
ゲームで値型が使えないのは結構ウザいよ
値型があったらGC恐れる必要がないとか……
GC避けのためには、ないよりはあったほうが楽に決まってるだろう
Vector3D型とかをプリミティブ型感覚で平気で使えるのはJavaじゃ考えられないでしょ
GCってなんぞ?と思ったが
javaに搭載されているメモリクリーナーのガーなんとかか
値型はポインタの事か?
javaの勉強に切り替えて数ヶ月だけど
プログラム用語はC++の表現のが好きだな
何で無知を晒すの?見ててコッチが恥ずかしいんだけど
C++やっててJava数ヶ月も触ってそれはちょっと…
javaに限らずgcでレンダリングがカクカク止まるのは、loading... とかの初期化のときにメモリをガバッと確保しておくテクニックで回避できたんじゃないの?
問題はメソッドの中だけで使う一時オブジェクト
エスケープ解析もあんまり大した効果はないみたいだし
最近プログラミングを勉強し始めたものです。
簡単なゲームを作ろうとしているのですが、
while(ture){
// 素早さが互いに同じとき
if (Battle.compareAgility(hero, enemy, suffix) == 0) {
System.out.println("互いに牽制しあっている!");
continue;
// Heroのほうが素早いとき
} else if (Battle.compareAgility(hero, enemy, suffix) == 1) {
System.out.print("主人公の攻撃");
continue;
// Enemyのほうが素早いとき
} else if (Battle.compareAgility(hero, enemy, suffix) == 2) {
System.out.print("敵の攻撃");
continue;
//↓発生してはいけない
} else {
System.out.println("case1:発生してはいけないメッセージ");
}
}
で、Battle.compareAgility(hero, enemy, suffix)の戻り値は0〜2にもかかわらず、
一番下のelseに入る場合があって困っています。
int型の値を戻すようにしているのですが、もしかしたら小数点以下の値が入ってしまっているのでしょうか?
ご教授願いたく存じます。
ご教授は死ね
>>310 エスケープ解析はそうでもないの?
自動オンにしてあるけど興味ないから測定したことないけど。
そのようなオブジェクトを考えるなら、クラスベースのときは関数スコープの変数を考えずにインスタンス変数(とくにprivate)にするとオブジェクト指向が提唱する種々メソッドがそのまま活かされる。
とくにjavaに限ればクロージャの仕様がまだ議論中だからオブジェクトを隠しておくような利用法はキャシュとかプールとかの古典的な小手先技を使うしかない。
ネックになってるゲッターを仕方なくvoid getPosition(Point result) みたいに変更したときは屈辱だった
>>311 Battle.compareAgilityの戻り値が本当に整数で0〜2か疑うべき
ジャバ教本はほとんど初心者向けしかなく初級(経験1年以上)・中級者向けの解説はさわり程度で深くは書いてないから、javabeans get/setの利用を理解できない(get/setの必要性を感じない)のも仕様がないよね。
別にbeanのためだけのものじゃないしbeanじゃないなら別に変形してもいい
>>312 レスありがとうございます。
不用意に「ご教授」という言葉を使ってすみませんでした。
近いうちに死ねるようにがんばります。
>>317 ためしに
int compareAgi = Battle.compareAgility(〜,〜,〜);
if(compareAgi == 0){
互いに攻撃しない;
}else if(compareAgi == 1){
主人公の攻撃;
}else if(compareAgi == 2){
敵の攻撃;
}else{
エラーメッセージの表示;
}
にしてみたら、エラーメッセージの表示をぜんぜんしなくなりました。
intってちゃんと書いてなかったから、
戻り値が整数じゃなかったみたいです。
ありがとうございました。
>>314 むしろjavaではライブラリの互換を維持してapiや基本ルールを変更しないことが重視されるから、weakpointをprofilingしてそこをrefactoringするのが奨励されるから、そのような関数宣言を追加するだけで済むなら今は納得いかなくてもその決断は正しいと思うよ。
>>300 BF3辺りを全部javaで作ってから言ってくれ。
Javaなら難しいけどC++なら簡単だよね!
糞スレ保守
326 :
デフォルトの名無しさん:2011/12/09(金) 05:43:22.96
糞スレ定期あげ
C#だとゲームにもよく使われてるけどあれもGCだろ?
>>327 あれはGCがわりとクライアント寄りにチューニングされてるし値型もポインタも使えるし
プラットホームのAPI呼び出しもやりやすい
ゲームプログラムなんて単純だからC++でも苦にならんよね
C#だとDirectX使えるしなあ
バインディング書いてJavaでDirectXなんて使おうものなら原理主義者に抹殺されるわ
やったらそこそこ歓迎されると思うぞ。
面倒だから誰もやらないだけで。
DirectXは神だからな
ここまでMinecraftの話題なし
板違いだボケども
>>310 そこらへんは世代別GCみたいに短寿命オブジェクトの効率的なGCのが役に立ちそうな。
r ‐、
| ○ | r‐‐、
_,;ト - イ、 ∧l☆│∧ 良い子の諸君!
(⌒` ⌒ヽ /,、,,ト.-イ/,、 l
|ヽ ~~⌒γ ⌒ ) r'⌒ `!´ `⌒) よく頭のおかしい技術者やデザイナー気取りのバカが
│ ヽー ―'^ー-' ( ⌒γ ⌒~~ / 「誰もやらなかった事に挑戦する」とほざくが
│ 〉 |│ |`ー^ー― r' | 大抵それは「先人が思いついたけどあえてやらなかった」ことだ。
│ /───| | |/ | l ト、 | 基礎が何故大切か理解できない人間にまともな商品は開発できないぞ!
| irー-、 ー ,} | / i
| / `X´ ヽ / 入 |
>>336 横着せずに自前でgetStackTrace()をダンプするのがよし。
JDKのソース読めるんなら可能でしょ
>>338 もちろん、toString() をコピペして MAX_FRAMES のを書き換えれば簡単に済むことなんですけど。
やっぱそれしか無いですか。そんなおバカな方法しか残されていないんですか。
コピペ、コピペ、コピペ プログラミング推奨言語なんですかね、javaって。
コードの再利用とかできないんですね。
同じコード2度書くな、って言われたことがあるけど、それは絵に描いたモチなんですね。
わかりました。横着せずにコピペします。
今どきジャヴァを使うのは馬鹿野郎です
DirectXの差なんかね
もしウィンドウAPI的なのを作るとしたら
Swingともうひとつの奴(忘れた)どちらがいいんだ?
ジャヴァに対して変な期待をしてはいけません
長い文字列で、部分の数文字を同じ数の文字列で置き換えるのに
元の長いのを分割せずに一発で置き換える方法ないですか?
ありません
そうですか。
>>339 toString()に期待しすぎだろー。あんなもん所詮はデバッグ用途。
java.util.List の toString()実装が全要素を表示してくれないかなーとか
一瞬思うことはあるけどさ。したら怒られるだろーなー
質問サイトのJava系のとこに_ranco_って性格捻じ曲がったやつがいるんだけどお前らの誰か?
オレオレ
>>341 まあ設計とか参考になるから一度はswing使ってみたら
それから自分ならswingで作られたアプリを使いたいかどうか考えればいい
俺は使いたくないけど
BufferedReaderで受け取った文字列をString型に変換して格納したんですが
Unicodeエスケープされた文字列がそのまま(\u3089のように)格納されてしまいました。
これを元の文字列に復元する方法を教えていただけませんか
いや、エスケープかますReader実装とかJREにないから。
たぶんそれが元の文字列だよ。
もしプロパティファイルのエスケープ解除するのなら
それはProperties#load()の役目
OpenCSVを利用し、文字列と数値の2カラムで構成されたCSVファイルを読み込み
文字列を一意のユニークID(整数値)にして、ユニークID(整数) 数値 という形で出力させたいと
考えていて、string型のhashCode()メソッドを利用して実装しました。
(具体的な用途としては、csvをMySQLに読み込み、文字列のハッシュ値を計算して問い合わせることが出来るようにすることです。)
その結果、240万件のうち20万件のハッシュ値が衝突しました。その後の調査で、問題のレコートの一部に、
UTF-8の4バイト文字(機種依存文字、そのマシンでは文字化け)が含まれていることが分かりました。
さらに調べてみると、hashCode()にはこのような文字列を送ることは推奨されておらず、
またhashCode()についても算出されるハッシュ値のユニークさを保証するものではないとのことでした。
恐らく表示は出来なくてもそれぞれの文字を表す一意な文字コード自体はそこに存在しているはずなので、
何らかの方法でハッシュ化は出来るはずと考えているのですが、UTF-8の4バイト文字を扱え、
またユニークなハッシュ値を生成できる方法をご存じの方がいらっしゃいましたらご教示願います。
なお、今回利用したソースは以下の通りです
public class Main {
__public static void main(String[] args) throws IOException {
____CSVReader reader = new CSVReader(new FileReader("raw.csv"));
____CSVWriter writer = new CSVWriter(new FileWriter("hashed.csv"));
____
____String[] nextLine;
____while ((nextLine = reader.readNext()) != null) {
______String[] outData = new String[] {String.valueOf(nextLine[0].hashCode()), nextLine[1]};
______writer.writeNext(outData);
____}
____writer.close();
__}
}
そこでSHA-512ですよ
355 :
デフォルトの名無しさん:2011/12/10(土) 20:33:01.23
MySQLが4バイトのUTF-8ぶった切ってるだけじゃないの?
>>354 ありがとうございます。
テーブルをパーティショニングするため、10進数でなくてはならず、
MySQLの仕様上、bigint(9223372036854775807)を越えてしまうと、扱えなくなってしまうため、
あまり高度な暗号化は使えずにいます。
>>355 説明が足りず申し訳ありません。
事前にhashCode()関数で数値化した上で、ハッシュ値 数値(double型、出現確率の対数)
という形に編集し、それをMySQLに読み込ませています。
ハッシュがユニークってなwww
>それぞれの文字を表す一意な文字コード自体はそこに存在しているはずなので、
unicode表か何かのポイントをそのまま足していけばいいんじゃね?
javaの勉強しているけど
Exception絡みってそんなに覚える必要あるの?
実務だとtry catchで括って常に例外処理対策しまくりんぐのコードになるん?
だからマ板で例外スレが賑わってるんですわ
PrintWriterクラスについて質問です。
ほとんど全ての参考書、入門サイトではPrintWriterを使う際はBufferedWriterをラップして使用するようにと書かれています。
しかしPrintWriterクラスにはFileやStringのみを引数にとるコンストラクタが存在しており
実際、BufferedWriterをラップしなくても問題なく使えるように見えます。
結局のところ、PrintWriterを使用する際はBufferedWriterをラップせず直接Fileを引数にとっても全く問題無いのでしょうか?
だとすれば、何故参考書などではわざわざ回りくどい方法を教えているのでしょうか?最近仕様変更などがあったのでしょうか
これに関してググってみたのですが該当する内容の記述がこの一件くらいしか見つからず
ttp://oshiete.goo.ne.jp/qa/7111420.html ここでは内部でBufferedWriterを生成しているのでBufferedWriterをラップしてもしなくても変わらないということを言われているのですが
この一件だけでは信じていいかどうか怪しいので質問させてもらいました。
>>360 んなスレあんのかよwww
と見てきたら、本当にあったは・・・・
なんとなく肌で感じ取れた。thx
チェック済み例外は失敗で完全に決着しちゃったからな
あと、いるのは、山の小動物系。
春からSEの俺にテスト工程で何をどうやるのか(EclipseでJunitを使い〜みたいに)を教えてくれ
大体業界標準と言うか決まったものを使って決まったやり方で同じようなことをやるとは思うんだけど・・・
>>361 PrintWriterは必ずラッパーとして使わないとバグるでしょ
>>361 PrintWriterや他にInputStreamReaderも同じ議論になりますが、バッファー・クラスを使わずそれらを直接使う方法でも大きな問題は生じません。
それでもなぜバッファーをはさんむのが推奨されるのかについてはストリームとネイティブI/Oについてもう少し勉強しないと理解できないでしょう。
>>366 JUnitって使い方は知ってるけど、業務で使ったこと無い。
>>366 おまえはSEなんかより雑用係として活躍するがお似合いだw
相対パスでディレクトリを指定ってできないのん?
>>353 何の制約も無い文字列のバリエーションは、intよりずっと多いんじゃないかな。
だとすると、intの範囲に全ての文字列が収まる椅子は無い。
入力される240万件だかを元に変換規則を作るなら、テーブルをつくるのが手っ取り早いのでは?
ザコは黙まっとれ
要するにgperfみたいなのがあれば解決?
ザコは黙まっとれ
gperfってソースコード吐くんでしょ?
200万通りとかやれるのか?
381 :
350:2011/12/11(日) 08:41:17.52
で、テストって何やるの?
テストケースを書いて○☓をつけていくんだよ
>>353 ハッシュテーブルによる高速化テクニックは、
ハッシュ値からO(1)のオーダーで衝突レコード群にアクセスできる
仕組みがないと意味ないよ?衝突減らしたところでどうなるものでもないよ?
MySQLにそんな仕組みあるの?
素人ほど車輪を再発明しようとする
MySQLなら普通にINDEX作れ
自称プロさん、今日も元気だなw
>>385 申し訳ありません。今は240万件の小さなデータでやっていますが、
最終的には21億レコードのテーブルを投入したいと考えていて、
そのままの形では16時間かかってもインデックス作成が出来ませんでした。
方法を模索していく過程でパーティショニングという方法に辿りつきましたが、
ここでは整数値でテーブルを分割しなくてはならないというルールがある
(日本語マニュアルではascii関数が使えることになっているが、実際には利用できなかった)
とのことで、今回の整数化という方法に至った次第です。
暗号化、文字コードを10進数に変換し横に並べていく(そのまま足してしまうと、1+2と2+1が同値になり、順番を考慮できなくなる)
方法についても検討しましたが、高度な暗号ほど長くなり、それを10進数に変えるとbigintの制限幅を大幅に越える結果となり、
文字コードを並べる方法についても、文字列が長くなれば同様のことが起こりうるため結局断念しました。
もうあきた
俺も、SEなんかより、雑用係で活躍したいわ。
どっかにそういう求人ないか?
パーティショニングに「ハッシュ値が衝突してはいけない」という
制約は、たぶんどこにもないと思うが…
21億レコードも扱う設計が悪い
>>390 ゲーム系だと、「開発支援」てポジションは結構あるよ
休み専用プロ嵐wだから相手するな
>>391 パーティショニングのユニークキー制約のことを言ってるんじゃないか?
別に20万件だろうが100万件だろうが、それはそれとしてスルーするのが一番幸せになれるがw
399 :
395:2011/12/11(日) 13:30:31.62
おもいっきり安価忘れたわ
>>386とかのことね。こいつ何年もjava系スレ荒らしてる屑だから
なぜ日本ではJBossが流行らないのか
>>388 >ここでは整数値でテーブルを分割しなくてはならないというルールがある
なにこれ?
見つかった文字列に順番に番号振っていって表作ったらいいじゃん
21億っつってもDBに突っ込めるんだったら問題ないんじゃね
それだと、パーティショニングする意味なくね?
>>405 じゃあ、採番用のテーブルは文字列でパーティショニングしようぜ
JBossってなんの意味があるの?
JSFって今でもまだ使ってるとこあるの?
Threadのyieldの効果がわかりやすいソースを教えてくれませんか?
一時休止って何をやっているのかイミフなんで
sleepとjoinとは一目瞭然だったけど・・・
yield を学習する前に
google の使い方を学習するほうがいいと思う
久しぶりにjavaを使ってみたが、swing→javafxへの進化がすごいな
swingはクラスの見通しが悪いけど、javafxはめちゃくちゃわかりやすい
デザインもかなりよくなっている気がする
swingには馬鹿には越えられない壁がある
バカでも使えるツールじゃなきゃ、職場で使えねーじゃんかよ
今ならnetbeansがあるからそうでもないが、ただし依然として馬鹿には越えられない壁は高くそびえ立つ
Nimbusとかどうなってしまったんや…
頑張って使ったからといって出来上がったのはユーザーに毛嫌いされるクソUI
swingはsynthを勉強すればカスタマイズできるんですが、そういう見栄要素的なものもちゃんとやった方がいいですよ。
DOS窓上でjavac kurasu.java java kurasuとコマンド打つとウインドウ開くけど
javac kurasu.java applet java kurasu.javaだと何も開かずプログラム終わるんだけど
何でですか?
間違えました。下段は
javac kurasu.java
appletviewer kurasu.java
です。
コンパイル時も実行時もエラー出ないのですがウインドウが開きません。
appletviewerでアプレットをシュミレーションする方法って上段、下段の二通りですよね?
趣味レーションしたいならyahooやokwaveで聞けばええやん
あ、既に聞いてたのかwwwwwwwwwwwwwwwwwwwwwwww
mainメソッドがあれば、普通に画像関連のコンポーネントは呼び出せるから
javac 〜〜.c
java 〜〜
でもグラフィックプログラムは起動するんじゃないかな。
Appletなら、Htmlの埋め込みがどうちゃらがいるんじゃないかな。
javaで画像データのバイト配列をStringに変換する時は
str = new String(byte);
で良いのでしょうか?
初歩かもしれないのですが教えてください
無名クラスを使わずに異なる複数のクラスのメソッド内で
同じオブジェクトと渡すにはどうすればよいのでしょうか?
使いたいメソッドはオーバーライドで、引数の設定ができないという状況です
無名クラスを利用するならこんな感じでよいのですが・・・
class mainClass{
public static void main(String arg[]){
ClassA obj = new ClassA();
new 無名クラス1(){
@Override
void method(){
println(obj.method2());
}
}.method3();
new 無名クラス2(){
@Override
void method1(){
println(obj.method2());
}
}.method3();
}
class ClassA{
int method2(){
〜〜〜〜〜
return xxxx;
}
}
すごいな・・・これ・・・
何がしたいのかわからないという点では今年ナンバーワンかも。
>>425 フィールドを宣言してコンストラクタかなんかで渡す
static なオブジェクトなら
質問があります.
JavaCCの付属のjava1.5の文法を読んでいるのですが
PrimaryPrefix := ( <IDENTIFIER> "." )* "this"| 他のマッチ条件...
とあります.ここでいう<IDENTIFIER>は識別子です.
上記の定義によると
aaa.bbb.this
みたいなExpressionにマッチするように書かれているのですが,Javaでそのようなコードを見た記憶がありません.
どなたか具体例,思いつかないでしょうか?
ちなみにソースコードの静的解析プログラムを作成しています.Javaの勉強初めて半月ぐらいで余り詳しくありません.
Class Obj にmetho()がバインドされているとき
meth();
this.meth();
Obj.this.meth();
は全てObjインスタンスのメソッドコールとして同じ意味です。
特に匿名内部クラスでOuter,Innerと区別する必要があるときによく使います。
jarというのは、windowsのc言語でいう、.libや.dllみたいなものと考えていいのですか?
>>429 GUI使ったプログラミングだとよくあるね。
Swingとかが廃れてるので余りサンプルとして見かけないだけだが、最近はAndroidで頻繁に使う。
>>431 .exe も
433 :
429:2011/12/13(火) 20:46:35.27
>430,432
ありがとうございます.
>>431 ソースコードをzipに固めたようなもの
例えなんかで理解したら余計分からなくなるよ
例えて言うとclassファイルをzipでまとめたような感じ
そのものじゃねーかw
何かの個数を表すとき何て名前にしてますか?
numberOfComments だとちょっと長いかな
unko1
unko2
appletをhtmlに埋め込むとき
appletタグって使っちゃ駄目なの?
objectで指定するの面倒臭すぎるんだけど
なんでだめなの?
HTML5でAPPLETタグは一応廃止らしいじゃん?
>>442 アプレット用<OBJECT>タグはSun製の"HTML Converter"に吐かせるもので、
あれは人間が書くもんじゃない。
最近のアプレット事情はどうか知らん
htmlconverter.exe ならJDK7でひっそりと消えた。
おとなしくAPPLETタグ使うことにします
というかJavaアプレットはオワコン
宿題スレとか見るとApplet作る課題が結構あって驚く
特別な準備が必要ないからじゃないかな
ペケボタンで閉じるお呪いとか、初っ端から説明面倒だしな。
Autodesk Softimage Mod Tool 7.5で出力したlws形式がJava3Dで読み込めませんでした・・・。
Lightwaveには手が出ないのでModToolを使ったのですが、もしかして正規のLightwaveを使わないと
読み込めないんでしょうか?
ArrayListに値を入れて画面に表示させると"[]"と","がつくのはなぜ?
新設
ArrayList#toString()が勝手につける。
457 :
454:2011/12/14(水) 22:23:33.29
>>456 ありがとう
ArrayListの親クラスAbstractCollectionのtoStringが呼ばれるのか
本屋言ったらJAVAの本ありすぎてどれ買えばいいかわからん買った
このスレでおすすめみたいなのあります?
ひとによる
461 :
デフォルトの名無しさん:2011/12/15(木) 12:14:23.89
classを生成して、そのclassを利用する事で生成されるものがインスタンス=オブジェクト
そのclassを参照して得られる結果のプロセスがスレッド
で、あってますか?
何となく理解してるつもりなんですが、コード読み書きしてれば理解深まるもんなんですかねぇ
> classを生成して、そのclassを利用する事で生成されるものがインスタンス=オブジェクト
ちょっと変。
> そのclassを参照して得られる結果のプロセスがスレッド
なんか変。
>>462 お菓子classがあって
チョコレート
100円
って属性を持ってる。これがインスタンス
お菓子classを利用して
買う
あげる
払い戻す
って動詞的なのがスレッド
はぁ、もう全然分からなくなってきた
classを利用するとき引数あったらスレッド。それ以外はインスタンス
これでどうだ!(´;ω;`)
全然違うw
メソッドじゃね?って突っ込み待ちか?
>>465 ああ、スレッドじゃなくてメソッドだった
もう少し勉強するか…
本気だったんかいw
いや、たくさん勉強する必要がある
>>467 いや、メソッドとスレッドを間違えたのはアヤです。
ま、メソッドとインテントの違いはよく分からんw
因みにこんな状態で来月からJavaの開発案件で仕事なんだぜ
もうダメだwwww
インテントじゃなくてインスタンスだった
もう寝るわ
インテントはアンドロイド用語だ
明解Java入門編を3回
同じ著者のアルゴリズム云々Javaとかいう本を1回読んだが
未だにJavaがよく分からない俺はプログラマ向いてないのかな?
向いてないねー
向いてない人がプログラマーになると本当に悲惨だから
プログラマーはプログラミングが心の底から好きな人だけ
にしておいたほうがいい
>>477 目次を見た限りでは微妙感が漂ってるような
オブジェクト指向編も目次だけだとちょっと微妙かなーって気がする
いまJAVAを勉強しているのですが、アプレットで3つほど単体でゲームを作りまして
それをまとめるアプレット(ボタンを押すとゲームが切り替わる)というのを
作りたいのですが、ゲームはそれぞれ独立して作ってあるので、
それをどのようにまとめればいいのかが分かりません。
どなたか教えて下さい。
>>480 Eclipse IDE for Java Developers
>>482 ありがとうございます
ダウンロードして使ってみます
入門サイトを見ながら覚えています
public static void main(String[] args)
と
public static void main(String args[])
は
まったく同じですか?
この世に全く同じものなど存在しないのだ
コンパイル後の結果は同じ。
型情報が分断されているかいないかという意味では違う。
みんなちがって みんないい
ありがとうございます
eclipseのほうで生成された前者のコードで書いていきたいと思います
Javaスレがこんなに過疎っているのはオワコンだからですか?
趣味には人気がないからじゃね
以下のコードを実行すると0と表示されるのは何故でしょうか?
1と表示されることを期待しているのですが何故0になるのか分りません
int k;
int a = 1;
switch(a){
case 1:
k = 1;
case 2:
k = 2;
default:
k =0;
}
System.out.println(Integer.toString(k));
自己解決
break;を忘れてました
APIマニュアルのCollections.sortメソッドに書いてある「自然順序付け」って何ですか?
java.lang.Compareble#compareTo()による順序付けの事。
JavaでCUIで対話形式のコマンドツールを作りたいの。
定番のライブラリがあったら教えてほしいんだがー。
$ java -jar Foo.jar
foo >
foo > hoge
ほげっ
foo > fuga
ふがっ
foo > piyo
ぴ…ぴよ…
foo > quit
さいなら
$
なツール。
497 :
496:2011/12/16(金) 16:20:34.25
ちなみにヒストリ機能とか有ればなお嬉しい。
↑押したら前のコマンドが候補にでるとか。
JythonのコンソールとかがJava-Readline使っているな
Javaには物理エンジン無いんですかね
探しても日曜プラグラマー作みたいなのしか見つからん
501 :
496:2011/12/16(金) 19:28:30.11
>>498 ぽにょ、Pure 100% Javaじゃないと、ヤダ!
JDK7があるのでOracle認定Javaプログラマ試験もそのうちSE7になりますか?
>>496 定番のライブラリと言うのは漠然としてるけど、どういう機能が欲しいわけ?
それとそのライブラリを使うのが目的なのかそれを参考にして一から自分で作るのかも分からん
「↑」トリガで何かしたいのなら、System.inやConsoleは役に立たないし、
PureJavaは無理だろーなぁ。
JTextAreaの改造でもいいわけ?
sqlplusのうような感じで、コマンドプロンプトからログインして
独自に対話形式でコマンド実行をするようなアプリだろ
JavaでString型で文字列を与えたら、その訳語を返してくれる辞書APIとかないですかね?
例えば、「call」と検索したら、「名づける 呼ぶ 称する みなす 電話を掛ける」みたいに訳語の一覧を返してくれるようなもの。
やっぱり無理矢理イースト辞書使うしかないのかな。
つ String#getTranslation
クラス変数が初期化済みかどうか確認する方法はありますせんか?
アクセスしてみて、ぬるぽ例外が出るか確認するしかないですか?
class A があって、
A a = new A()
したときに、
if(a == null)
はできないみたい(参照だから?)なので、何か他の方法が必要です。
511 :
デフォルトの名無しさん:2011/12/18(日) 10:55:54.90
クラス変数に対して
クラス変数 == null にすればいいだろ
>>510 new してるんだから a は初期化済みだろう?
「初期化済みじゃない」という状態はどういう状態のこと?
staticイニシャライザ内でシングルトン用意とか、
そんな話ではとエスパー。
ソース中にstaticイニシャライザは何回書いてもいいので、
staticメンバとstaticイニシャライザの宣言順でなんとか工夫すべし
そんな仕様の微妙なところにべったり依存したコードはちょっと…
そんな工夫()するくらいなら明示的にstaticメソッド呼ぶようにするべき
515 :
510:2011/12/18(日) 12:14:28.48
>>510的なソースが何故エラーを吐いていたのか良くわからないのですが、
>クラス変数 == null
できました。
どうしてコンパイルできなかったのでしょう…。
気がついたら解決していました。
staticイニシャライザは勉強になりました。
Javaってプリプロセッサがないみたいですけど、
cでいう#ifdef _DEBUG による変化はどうやっておこすの?
設定ファイルに_DEBUGみたいのを書いておいて、ifで分岐する感じ?
Javaでプリプロセッサ使ってはいけない決まりはないぞー。
cppとか使えば普通に#ifdefとか書けるはず。全力で嫌がられるだろうなー
最近の人はm4とか使うんだろうか。AntやMavenにもマクロ展開タスクはあるはず
実行時にクラス単位でデバッグON/OFFするなら
Class.desiredAssertionStatus()
もいいがあまり活用する人を見たことがない。
ていうかassert文で十分やん
printfデバッグで十分
普通はjava.util.loggingのLevelでメッセージ種別の抑制するよね。
log4jの方が人気あるけど
520 :
デフォルトの名無しさん:2011/12/18(日) 14:45:16.72
swingでこんな↓感じでボタンを表示させています。ボタンを押すとボタンが無効になるのではなく消えるようにしたいのですがどうすればいいでしょうか?
JPanel panel1 = new JPanel1();
panel1.setLayout(null);
JButton button1 = new JButton("1");
button1 setBounds(0,0,100,100);
panel1.add(button1);
覚えとらんがsetVisibleとかなかったか
eclipseとか使ってるなら、button1.set・・のとこでコードアシストして
全部のセッターをながめといたほうがいい。
全部ながめてたら日が暮れた。謝罪と賠償を要求する
523 :
デフォルトの名無しさん:2011/12/18(日) 15:04:34.22
>>521 eclipseは使ってないのでsetVisibleの方でやってみますね
524 :
デフォルトの名無しさん:2011/12/18(日) 15:09:19.40
>>521 おぉ
ありがとうございます。
おかげで解決できました。
つか、IDE使えよ
eclipseもNetBeansでも好きな方でいいから
javaはIDEと組み合わせてこそ真価を発揮するもんだぞ
java単体だとクソ言語
IDEがないと使い物にならんのにIDE向きの言語として作られてないから糞なんだよ
Eclipseの実装は、プラグインを作った奴だったら分かると思うが、
バギーで糞だからな。わけもなくぽこぽこ誤作動するのも頷ける
しかし、NetBeansはその実装は知らんが、
型の探索で簡単な操作でEclipseで出来たものが用意されてなかったり
ストレス溜まりまくり。
結論:詰み
531 :
デフォルトの名無しさん:2011/12/18(日) 18:29:58.51
最初に
int num = 1;
と宣言し、そのあとにボタンが押された時のイベントを書きました。
そのイベントに num++; と書いたのですが
「ローカル変数 num は内部クラスからアクセスされます。finalで宣言される必要があります。」
とエラーが表示されます。
しかし、final int num = 1; とすると 「num に値を代入することができない」
とエラーがでます。
この悪循環を回避するにはどうすればよいでしょうか?
532 :
デフォルトの名無しさん:2011/12/18(日) 18:31:25.05
あとjavaのだめなとこは何ですか?
バカにはあつかえないこと
ローカル変数numに内部クラスからアクセスするのをやめたら悪循環を回避できると思うよ
>>531 int numをフィールドにし、finalをやめる
あとお前にはjava無理だわ
そんなに叩くなよw
>>531がだめなのは明らかだけど
538 :
デフォルトの名無しさん:2011/12/18(日) 19:42:13.23
初心者なんでわからないことがたくさんあるんですよ
オレも!オレも!
あんまりいじめるなよ
JAVA叩きの原動力はどこから来てるのですか?
545 :
デフォルトの名無しさん:2011/12/18(日) 21:29:24.78
>>536 できました!!
ありがとうございます。
おまえら、何だかんだ言ってもJava好きなんだな
独学C++1ヶ月後
独学Java3ヶ月目に入ったけど、結構好きだよ
初心者はJavaから入って、クラスを覚えたら好きな言語に行けばいいんじゃね?と思う
eclipseのリファクタリング機能があるから結局Javaが一番作りやすい。
549 :
デフォルトの名無しさん:2011/12/18(日) 22:19:53.80
swingでボタンを押している間色が濃くなりますが、どうすれば濃くならないようにできますか?
あ
Eclipseを上手に扱ってる自信がない
全機能の2割すらあやうい
ここはお前の日記帳だ
機能はコロッケパンを食べた
abstract void eat(コロッケパン p);
>>549 setPressedIcon()でなんでも好きなビットマップ貼れるぞ。
getIcon()結果をパクるのもまたよし
557 :
デフォルトの名無しさん:2011/12/19(月) 12:28:28.95
クライントからサーバーへフォルダアップロードするのってJavaだと難しい?
ファイルのアップはよく見るけど、フォルダをアップするのはできないの?
>>555 使いこなしたら40割の仕事ができるってことか・・・ゴクリ
>>558 じゃあ給料据え置きで4人分の仕事をやってもらおうかw
>>557 フォルダとファイルの違いが分かるまでここに来ないでください
>>557 ディレクトリパスや単にディレクトリ名が欲しいだけなら文字列だけでいいだろ
サーバーに同じディレクトリが欲しいなら、その文字列からサーバーにディレクトリ作るだけ
java7の日本語のjavadocを探しているのですがみつけられません?
もしかして、翻訳されていませんか?
最新の日本語javadocは、java5でしょうか?
7は正式版でてる。日本語ページが更新サボってるんだな。
class State {
boolean a;
boolean b;
boolean c;
}
みたいな状態を表すオブジェクトがあって、aとbとcの値が満たされるまでブロックされるような仕組みが作りたいんだけど、Lockでちまちま作るしかないのかな?
aとbとcはそれぞれ別のスレッドから値が設定される。
setA(boolean a)とsetB(boolean b)とsetC(boolean c)とメソッド作って
呼び出された時にそれぞれ内部のbooleanセットする処理の下にさらに
if(a&&b&&c) notifyAll();って書けばいい
569 :
デフォルトの名無しさん:2011/12/19(月) 17:52:02.76
>>556 押したときの画像は変わりますが、画像のまわりが濃くなったままでした
clathpassコマンドで、"."を指定しないとコンパイル時はエラー出ないのに、
実行時エラー出るのは何でですか?コンパイルするにはパスを指定しないと
いけないと思うのですが。何故コンパイル通るんでしょうか?
実行時にはコンパイル時よりもたくさんのクラスが必要なんだよ
いやだから何で"."指定してないのにコンパイルできるのかなと。
Dateの機能はわかりやすいのですが
Calendarの機能がよくわかりません
Calendar.YEAR MONTH DATEとやったら
1年 2月 5日
と出ました
どこの数値を見ているのでしょ?
Mavenでjdk7でコンパイルが出来ません。pom.xmlには以下のように設定しました。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
どう設定すればjdk7でコンパイルできるようになりますか?
エラーくらいかけ
断る
断ってどうするw
だが断る!
wikipediaの「GNU Compiler for Java」を見ると、
>AWTとSwingの2つのグラフィカルAPIをGNU Classpathに
>サポートさせることに現在多くの労力が投入されている。
>AWTとSwingの両方のフルサポートは間近であり、
>AWT/Swingアプリケーションを実行するために
>サン・マイクロシステムズから提供されたランタイムを(※!?)
>使用する必要性は遠からずなくなる見通しである。
とあるのですけど、※の部分は、AWTとSwingだけのランタイムがあると言う意味ですか?
それともJREのことですか?
もしもAWTとSwingをつかったアプリを、現在もネイティブコンパイルできるならば利用したいです。
前者のことであれば、ランタイムが置いてある場所も教えてもらえませんか?
JREのほう。
あとOpenJDKがオープンソースライセンスで出てから
GNU classpathは活動停滞してるっぽいが。
ネイテブですか?
windowsならjavaはあきらめてc#に素直に切替えた方が頭いい選択だと思いますよ
OpenJDKって何がいいの?
どちらも結局クラスファイルができるのではないの?
であれば、OpenでもOpenでなくてもいい気がする。
FedoraのようなOSにも始めから含ませることが出来るとかいう感じ?他には?
gnu classpathにはジャバ・ソースのexe化とかnative accessのクラス(jni,jna結合)などもっと炸裂してほしけどopenjdk,jcpの動向の様子見だろうか
exewrapやJsmoothでexeファイルを作成すると、逆コンパイル不能になる?
結局クラスをアーカイブして、JREに送り出す機能を持たせただけで、クラスファイルがあるのと同じか?
AOTなら素直にExcelsior JET買った方が早いんじゃね?
Linuxなんか使わずに素直にMicrosoft Windowsを使った方がいいですよ
Windowsでは今のところJavaもちゃんと動きますしOfficeやIDEだって一流モノですから
いつまでもLinux+Javaなどといったポンコツ環境を使わずに素直にWindows+NET+C#のご利用をお薦めします
>>584 GNU classpathはJava標準APIのオープンソース実装作るのが目的。
なのでOpenJDKができてからは活動が停滞してる。
AOTコンパイラはGNU Compiler for Javaの方ね。
こっちもGNU classpathに引きずられて活動停滞してるけど。
gnu classpathにはjcp縛り(利害と投票)やうるさいこと(gpl縛りだから)や煙たいこと(侵害訴訟)がなく
ジャバの第一義的著作権者もgnuのことは一応認めてるからジャバのハック環境として活動するのを期待してる
classpath本体よりIcedTeaの方に注力するんじゃなかったか?
JavaでNICのプロミスキャスが使えるフリーで非GPLのライブラリってあります?
…。
ん?
native使ってcのライブラリを呼べばいいのか?そうか…。
せっかく文章作ったから書き込んでしまえ。知ってたら教えてください。
593 :
592:2011/12/20(火) 12:48:17.28
ん?
よく考えたらJavaを覚えることが目的でしたので、非標準ライブラリやcを使ったら勉強になりませんな。
目的を吐き違えるところでした。
困ったな…。
char c1 = 'D';
char c2 = 255;
char c3 = (char)(c1 + c2);
String hog = String.format("%02x%X", (int)c1[0], (int)c2);
最後の行のc1,c2でオートボクシングつかうよ、ってeclipseが言ってるのですけど、どういうことでしょう?
String[]にすると言ってます。
オートボクシングを使わない式だとどうなりますか?
それは何をしようとしてるの?
public interface Test {
Test a();
}
インタフェースの使い方は大体理解しているのですが、上記のようにクラス型(インタフェース型?)のメソッドの場合の使用方法が全くわかりません。
もし、ここがString型やdouble型のメソッドなら、子クラスでオーバーライドするようなメソッドを作って同じ型のデータを返したりすると思うんですが・・・
どういうデータを扱うものなのでしょうか?
String型やdouble型などのデータをインタフェース型に変換して使用するものなのでしょうか?(変換できるのかはわかりませんが・・・)
何か他の使用方法があるのでしょうか?
お願いします。
こちらこそヨロシクお願いします
600 :
595:2011/12/20(火) 16:01:20.02
警告(警告:この文字は、エンコーディング MS932 にマップできません)
が出ましたが、クラスファイルは出来ました。
実行もできました。
>それは何をしようとしてるの?
1byteの符号無し整数をどうやって取り扱えばいいのか動かして考えています。
各バイトの符号無し整数を使えるか、Ascii文字列だと予めわかっている場合はどうするか、など。
(検索したら後者はStringのgetbyte("utf-8")でいけるみたいですが。)
(前者は、ビットシフト使うしかないのかな。)
>>600 データとしては byte で持っておいて計算する必要がある場合は事前に & 0xFF する。
>>600 ビットシフト云々より、Java言語を扱うためのプログラミング・スキルが決定的に劣っていると思いますよ
>>598 継承とかインターフェースについてもっと勉強したほうがいいと思うよ
605 :
595:2011/12/20(火) 16:41:55.51
言葉足らずで申し訳ないです。
http://codepad.org/jRagKDPX ↑のような構造のUDPパケットを
javaのDatagramPacketに受け取ったあとに、取り出したいが方法がわからない感じです。
>>602 レスありがとうございます。
了解です。
その方法しか見つけられていなくて、これは扱いにくいからもっとスマートな方法があるのではと勝手に期待していました。
>>603 昨日初めてJava触ったのだから、スキル云々言われても知らん。
606 :
598:2011/12/20(火) 16:45:09.54
>>601 Test a();はたぶん子クラスでメソッドをオーバーライドすると思うんですが、その際の中身をどのように記述するのかがわからなくて・・・
例えばString型のデータを処理する時に、インタフェース側にString型のメソッドがあれば、子クラスでもString型のメソッドでオーバーライドすれば文字列とかを返すようなメソッドが出来ると思うんですが、
Test a();のようなクラス型のメソッドの場合に、そのような型の違うデータを処理したり出来ないのかなと思いまして。
そもそも、インタフェースでそのクラス型のメソッドが宣言されてる時の使用方法が全くわからず詰まっていたので何か聞ければと思い質問しました。
分かりづらくて申し訳ない・・・
>コンパイルエラーだな。
ん?
うちでもコンパイル通るんだが、うちの設定何かおかしいのか?
pleiadesのAllInOneなんだが。
610 :
598:2011/12/20(火) 17:12:22.63
>>609 何か参考になるサイトありませんか?
このことに関してピンポイントに言及しているサイトが今の所見つからないので
>>608 > char c1 = 'D';
> String hog = String.format("%02x%X", (int)c1[0], (int)c2);
こんなもん通るわけないだろ。
>>606 Tast a()というのは引数無しで戻り値としてTest型のインスタンスを返すメソッドのこと
つまりTestインターフェースを実装したクラスのインスタンスを返せばいいし、極端な話 return null;でもいい
> String hog = String.format("%02x%X", (int)c1[0], (int)c2);
> String hog = String.format("%02x%X", (int)c1, (int)c2);
そりゃ直せば通る罠。
>>612見て分からないって相当……
っつか、newとかどこにつけるんだろ?
608です。
>そりゃ直せば通る罠。
こりゃひでぇ。
眠くて自分が何してるかわかってないみたいだ。寝るよ。。。
そんな頭で大丈夫か?
さようなら
ここにはもう来ないで下さい
ど、どうしてもっていうなら・・・別に・・・
来ても・・・いい・・・けど・・・
>>598 こんな話じゃないかと華麗にエスパー回答
interface Test<Q>{
Q a();
}
実装する側のクラスでQをStringとかに変更すればいい。
総称とかジェネリクスでググれ。
もっと簡単な話じゃないかな
そのインターフェースを返すメソッドを実装しようとしたとき、実装するクラスでは何を返せばいい?って質問だとエスパー
インターフェースはnew出来ないから返しようが無いと思い込んでいるようだけど、
そのインターフェースを実装したクラスを返せばいいんだよ
624 :
デフォルトの名無しさん:2011/12/20(火) 21:27:51.84
ClassA classa = new ClassA(){xxx}
たまにこのような中括弧の使い方を見るんですが、どのような意味なんでしょうか?
構文の1つなんでしょうか
コンストラクタ
無名クラス
627 :
ど:2011/12/20(火) 21:39:30.17
javaとかCとか全くわからない初心者はどういう入門書買えばいいですか?
Javaとか全くわからないのにどうしてこのスレで質問するのかわからない
入門書なんてどうせロクなのがないから適当に買えばいいんじゃないの
>>627 近所の図書館にある適当なJavaの本
あとはネットで十分
数千円出して買う物じゃねーよ
>>629 そりゃ詳しい人たくさんいるからですね
近いうちに図書館のぞいてみます
Javaの参照型とプリミティブ型で質問。
IntegerはObjectの派生クラスなので、参照渡しになると思った。
showInt()にIntegerオブジェクトを渡して、関数内で値を書き換えた。
読み出し元も同時に値が書き換わると思ったが、変わらない(つまり1のまま)。
なんで??
class javaAppTest00 {
static class myAnimal {
public String name;
}
static void showInt( Integer rInt ) {
System.out.println("-- before =" + rInt.toString());
rInt = 100;
System.out.println("-- after =" + rInt.toString());
}
public static void main( String args[] ) {
Integer iV = new Integer(1);
showInt(iV);
System.out.println("iV =" + iV );
}
}
myAnimalクラスは使ってないから、無視してちょうだい。
実行結果はこれ
-- before =1
-- after =100
iV =1
java以外の他の言語の勉強経験があるんですか?
Integerは String 同様、不変クラスだから変わらないんじゃね?
StringBuffer や Builderみたいのがあれば可変すると思うが
ええーーー
そうなんーーー
なにこの腐った言語仕様
>>637 お礼が先だった、ごめん。
教えてくれてありがとうございます。
なにこの腐った言語仕様w
ならどうしてjavaなんですか?
c/c++で十分いいじゃないですか?!
参照渡しとおぼえてるのがおかしい
>>640 Androidで開発するためにJavaを覚えているのだよ。
>>641 ええー
だって本には、プリミティブ型と参照型があるって
書いてあったもの。
糞仕様だったからJDK5で追加されたStringBuffer
JDK7あたりで要望があれば追加されるんじゃね?
C++11(だっけか?)も痒い所に手が届く修正をしたっぽいし
言語仕様くらい読め
>>644 そうだといいんだけど・・・。
ここでつまづいてしまったら、
この先どうなるんだと正直不安。
なんだ不変クラスって。
知らんぞ。
>>645 入門書を読んでる。
言語仕様はまだハードルが高い。
不変クラスというのは内部の状態を変更できないように作ったクラス
そうでないクラスと言語上特になにか違いがあるわけではない
C++的に言うと、フィールドを全部privateにしてすべてのメソッドにconst付けたら不変クラス
>>648 どうもありがとう、助かります。
でも、なんのために不変クラスが存在するんだろう?
>>649 不変クラス=変更したくないオブジェクトにして渡す時に使う
んだと理解。
今回の場合のように、関数に int の参照を渡して
関数内で値を書き換えて、呼び出し元の値も変えたい場合、
どうしたらいいですか?
セッターを使う
>関数に int の参照を渡して関数内で値を書き換えて、呼び出し元の値も変えたい場合、
>>632はc/c++的にも本当にそういうことをしたいコードなんですか?
int[] とか AtomicInteger とかを渡す。
>>649 不変オブジェクトだとマルチスレッドで取り扱いが楽だから。
>>632 C++みたいに参照渡しがある言語やってて
参照の値渡しと参照渡しの区別がつかないのはシャレにならんぞ。
>>652 きっかけは、本に「Object型をつかえば参照型だ」
とあったので、本当かよと思って Objectの派生のIntegerを
使ってみたら、期待してない結果になったからです。
c/c++的に、本当にそうしたいコードかどうかですが、
今は必要ナッシング。
>>655 参照の値渡し=ポインタ=アドレス渡し
だと理解してまつ
>>651 セッター?
オブジェクトを渡してセッターか・・・
試してみよう!
>>654 int[]は想像できた。
AtomicIntegerは知らなかった!
>>654 なるほどね〜
みなさん、助言ありがとう
とてもたすかります。
糞仕様のjavaなんかよりも、少し勉強して慣れているc99やc++11の方をしっかりとやった方がいいんじゃないですか?
>>657 最近のC/C++は int* で渡されたポインタ書き換えると
呼び出し元のポインタも書き換わるのか?
ちゃんと理解してんならレス乞食だし、理解してないなら阿呆。
>>659 いやAndroidで開発をすると言語がJavaなので仕方なし。
NDKでC++も使えるけど、NDKの解説本があるかどうか
わからない。ほとんどはJAVAを使った解説本です。
javaかwindowsかわからんけど、javaしてた最中の話だからここで聞かせて。
JNIを使ったプログラム書いたのだけど、
その中で「System.loadLibrary("Sample2");」をしたら、
そんなのみつからねぇよ、って怒られた。
ディレクトリあちこちに格納して試してたら、System32だったら動いた。
このディレクトリってどこで設定すればいいの?
ポインタは鬼門だからね
c/c++を3年以上やっていたとしても、ポインタについて正確に理解していない人は結構多いよ
>>662 JavaのSystem.getProperty("java.library.path") で取ってこれるところとか、
Windowsだと環境変数PATH、Unix系だと環境変数LD_LIBRARY_PATHあたり。
3年やって分からないんじゃ脳が腐ってるだろう
>>661 そんな状態でjavaを勉強するより、c++のポインタとアドレスを正確に理解した方がスキルはのびると思いますよ
本人はスキルを伸ばすより、仕事でAndroidに回されたんだろw
C使いが半ば強制的にJava(Android)をやらされているケースは多い
そしてJavaを叩くw
それじゃ3年やってもポインタを理解できるはずはないな
>>669 だいたい理解できた。
基本、値渡しなんだな。
今回の場合は、showInt()にポインタを渡したが
=で100を代入したつもりでいたが、
ポインタをInteger(100)のアドレスに差し替えただけ。
だから、呼び出し元の値は変わらない。
呼び出し元の値を変えるには、
int[]を受け取ってアクセスするか、
セッタでアクセスする(=ポインタを間接参照してアクセス)
これで合ってますかね??
>>670 付け加えて言うと、Integerは不変クラスだから、
代入できない。=一時オブジェクトが作成されそれが
設定される。関数のローカル変数として。
っつーことだよね?
基本値渡しというか、値渡ししかない。
たまに参照型は参照渡しですとか嘘書いてある参考書もあるけどな。
test
>>672 そうそう!
だから読んでて混乱するんだよね。
>>626 お礼遅れてすいません、ありがとうございます。
クラスを作成しないで実装する場合に使うのですね。
>>672 c/c++ポインタについて正確に理解してますか?
おお〜なんだこの伸び方
みなさん、どうもありがとう!
勉強になりました
糞スレ保守
662です。
>>665 ありがとう。
表示してみて納得できた。
windowsでは、環境変数pathと同じなんだね。
eclipse-pleiadesのAllinoneつかってるのだけど、windowsの環境変数pathに対して、いくつか追加しているみたいだ。
いつの間に追加したのだろう…。自分でやったのかなw?
682 :
デフォルトの名無しさん:2011/12/21(水) 01:26:51.64
自分はiphoneのアプリを作りたくて、情報を集めてみたところ
iphoneならobject-c、androidならjavaのeclipseが適していると知りました。
そして気が付けばjavaでアプリを完成させてしまっていました。
javaのアプリからiphone用のアプリを作成することは可能でしょうか?
ここで聞くより、それ系の板を探して聞け
>>677 参照渡しって言ったら、普通エイリアスを言うよ。
Javaは単なるポインタの値渡しだろう。
(ry
これからJNIやるのだけど、
Java→C++(※1)→Java→C++(※2)→Java
※1で作成したオブジェクトって、※2の時点でメモリ残せるのかな?
Javaにポインタだか参照だか(これから調べるんだが)を戻しておけばOK?
>>687 1JVMに対して多プロセスを割り当てることはないから、
JNIのネイティブ側で割り当てたメモリはプロセスが死ぬまで有効。
C++側で再度オブジェクトを取得するには、
1. globalな管理クラスを用意しておく
2. オブジェクト自体をsingleton or globalにしておく
3. Java側ラッパクラスを作成し、生のポインタをlongにキャストしてもっておく
など。C++側が大規模ならswig使うと楽。
690 :
687:2011/12/21(水) 06:17:39.11
うわ、ありがとう。
これほど親切なレスがもらえるとは思ってなかった。ありがとう。
少し脱線して、gcjでビルドしてみてるのだけど、DLLのインポートライブラリ(.lib)をリンクできなくて困ってる。
エスパーしてもらえないだろうか。
ttp://freepg.fc2web.com/java/topic_gcj_003.html ここを参考にして、SWTがないprintfなJNIつかっていて、
<arg line="" />に何を追加すればいいのかわからない。
ANT使わなくて、バラバラでコマンドラインでもいいのだが、オブジェクトへコンパイルするところまでしかわからない。
c++以外からもjavaに入ってくる人も多く、現在ではc,c++をやらずjavaから入る人も多いので、c++の参照が一般的に言う参照というわけではありませんよ。
またjavaでは参照(c++エイリアス構文)はないのでjava言語上で参照といえばcと同じくポインタ渡しのことです。
java,c,c++の参照はそれぞれ意味が違いますが、それぞれの言語のポインタについてちゃんと理解してると使い分けられるはずです。
jniでc,c++やメモリの知識が必要になりもしポインタについて適当にしてるとバグがどこにあるか分からずjavaスレッドからネイティブ・リソースへアクセスするよなものはいつまで経っても作れないでしょう。
>>690 あなたのスキルレベルではgcj,swt,jniはまだ早いってことでしょうね
PCスペックと通信技術の向上によってJ再評価される環境がきたっていう感じだね
所詮サーバーとAndroid専用
>>695 AndroidがJavaでなければ、Javaは使わなかった。
Javaは廃れ気味なん?
親切な皆さんに聞くのも失礼な話だが
java.sql.ResultSetのカーソルについて
はっきり理解できないので教えてください。
カーソルはファイルポインタのようなもの(まだデータベース側に
SQL検索結果の結果セットがあって、それにたいする参照)なのか、
結果セットが既にアプリケーション側にメモリ(オブジェクトの配列)
として存在していて、配列を操作するイテレータなのかよくわかりません。
ResultSetから詰め替えるまでConnectionをclose()してはいけないと思うので
たぶん前者かなとは思うのですが。。。
Javaアンチさん毎日ご苦労様です^^;今日こそ効果ありますか?
Javaの場合は、アンチというより使ってるから嫌いって人が多いと思うよ
例えばgcj,swt,jni,jna,lib(dll)ならネイテブなわけで、いつまでもjavaでそんな苦行をやるよりもwindows,c#を使うのが素直じゃないですか?
その部分はネイティブ依存になりますが、これをモジュール化してこのモジュールを例えばjniから利用するのがjava,jvm(やunix)の目指すところです。
System.out.print(t*t);
と
T=t*t
System.out.print(T);
どっちのほうが処理早いんかしら
同じ
コンパイラは俺より頭がいい、はプログラミングの基本
全く同じではないだろ〜
後でTを使ってないなら最適化で同じになるよ
最適化なんてものが・・・
処理早いんかどうかはjavaでどうやって測るん?
-Xprofでもプロファイラでも SystemcurrentTimeMillis() でも好きなの使え。
単純なプログラムでもメソッドに分けてやるのと
1つのメソッドでずらずらと長く書くのとではどっちがいいのでしょうか?
個人でやってんなら好きにしたらいい。
仕事でやってんならコーディング規約に従え。
メソッドは10行以内厳守
720 :
デフォルトの名無しさん:2011/12/21(水) 17:34:43.97
Javaでプログラミングするときの開発環境っていうの?
ExcelVBAで言えばF11押して使うコード書いたりする環境のこと。
Javaではなにかインストールすると聞いたのですが、どのツールがいいですか?
調べた限りEclipseとかDoctorJavaがあるらしいけど、どれが一番メジャーですか?
ちなみにわたしは初心者です。
eclipse行った区
722 :
720:2011/12/21(水) 17:53:56.80
行った区とは?
723 :
デフォルトの名無しさん:2011/12/21(水) 17:54:27.50
ああ、ひょっとして一択のことか。どうも。
東京行った区
JDK1.6から-splashオプションが追加されましたが、
このオプションを指定した時と指定しなかった時で、
-Xmxでの指定可能最大サイズが異なります。
指定しなければ1400mなどの無茶な値も行けるのですが。。。
理由知ってる人いますか?
つーかこのスレッドに住み着いてる糞野郎は何なの?
回答する気が無いなら書き込むなよ。
流れるの早いんだよ。
やっぱID制が必要だな
2ちゃんねるも、本名公開にしたらもっと良くなりそう。
過疎板でしかも分野の専門スレとなると、議論するためのネタがなかなか出てこないんだよね・・・
クラスを配列として宣言する方法はググッたら見つかったけど、
配列じゃなくリスト(コレクション)として使う方法が分からず。
教えてください。
配列じゃなくリトリス(コレクション)として使う方法が分からず。
この板、なんでIDがないの??
privateになっているからIDを引っ張ってこれない
>>713 Javaは基本的に最適化ないだろ。
頼むからちゃんと確認しようぜ。
setBackgroundメソッドでウィンドウの背景に色をつけたいのですが、
デフォルトの灰色っぽい色のままで色が変わりません。
ソースは以下のとおりなのですが、
frame.setBackground(new Color(15,0,5));の部分がおかしいのでしょうか?
/**
* GameMainクラスの引数無しのコンストラクタ
*/
public GameMain(){
//フレームの生成
JFrame frame = new JFrame("STG ver0.0");
//ウィンドウを閉じる操作の実装
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//ウィンドウの背景色の設定
frame.setBackground(new Color(15,0,5)); //背景色の決定:R/G/B=15/0/5
//ウィンドウのリサイズの可否の設定
frame.setResizable(false); //リサイズ不可
//ウィンドウを可視化
frame.setVisible(true);
}
>>739 せめてググれ
frame.getContentPane().setBackground(new Color(15,0,5));
>>738 Javaは基本的に最適化ないのはどうやって確認したんですか?
おまえら中学生かw
Javaはコンパイル時の最適化はない。実行時のみ。
だからバイトコードは基本的には素直に変換される。
そして使用頻度が少ない部分には適用されにくい。
つまりC++のようなのを期待するのはダメ。
>>743 バイトコードはjavapで見れる。
ネイティブコードを確認する方法はわからない。むしろ教えてほしい。
>>746 >そして使用頻度が少ない部分には適用されにくい。
よくわからないんですが、使用頻度が少ない部分とは何で、適用されるというのは一体何のことですか?
>>749 最適化の事。使用頻度はVM側からみたコード片。
>>756 2011年現在のgcc,clでは
>>710のコードでC++ならどのような期待ができるんですか?
それと
T=t*t
System.out.print(T);
はC++,Javaならコンパイルエラーですがこのコードをあえて比べようとしているのは何かの意図があるんですか?
>>751 普通に疑問に思って質問してるんじゃなくて、単に嫌がらせか。
Javaはいい言語だけどJavaプログラマはクズだな。
>>754 おまえはレス乞食の分際でクズ以下の存在だろw
一応続けて説明するけど、
Javaはあえて最適化しないことによってJITの速度、
つまり実行速度を向上させてる。
そして蛇足だが、C++はコンパイル時に最適化しまくるから、
Javaで言うプリミティブ型の一時変数はほとんど残らない。
その代わりとして逆にgcc -O3なんかで具合が悪くなったりする。
ちなみに俺は
>>710ではないぞ。
クソ重い処理書くと3段階くらいでJITによる差し替えが行われてだんだん速くなるのが目に見えて面白い
訂正 JIT -> JITコンパイル
>>755 ジャヴァだとコンパイルエラーなのでそもそも揚げ足取りでもなんでもない
馬鹿のままだといつまでたってもジャヴァを扱えないから腰を据えてもうちょっと勉強した方がいいんじゃないの?
ジャヴァって言ってるの初めて見た
荒らすなクソガキ。いい加減にしろ。
>>757 C++でいうそのコンパイル時に最適化ってのはリンカーの処理もこみだよね
さらに2011年の現代的C++はwindows clあたりで止まっていてllvmとかはやっぱり眼中ないの?
最適化がどの程度の話を言っているのかは知らんけど、定数伝播とか
到達不能コードの除去程度ならちゃんとやってるよ
>>765 gccの最適化はリンカの処理じゃないだろ。
そしてllvmとかclangはまだ特殊な事例を出すのは詭弁にしかならない。
そんな事いったら最適化するJavaコンパイラだってある。
>>739 キチガイが自宅に乗り込んでくるかも知れないなんてまっぴら御免だな
java8はmoduleも入るって話なので従来の小手先技を競うレベルの最適化概念のままだと最適化処理はもはやハード・ソフトとも複雑すぎて最適化不可能になるでしょうね。
コードそのものでも最適化できるか決まるし、
型推論使おうが、動的再構成しようが、
低水準は結局その小手先技を競うレベルの概念だろ。
他の技術を貶めようとするのは感心しないな。
馬鹿には無理
SeekableByteChannelで上書きした領域って、
必ずしも元のデータが記録されていた部分を上書きしているとは限りませんよね?
SSDなんかの高度な均質化が行われるようなハードの話でなく、
一般的なHDDでの話なんですが、たいていどういう動きになるんでしょう
インターフェイスなんだから実装依存に決まってるだろ
俺が書いた糞実装かもしれない
>>773 そりゃJavaでなくてOSとかファイルシステムの話?
だったらソース見れるファイルシステムで勉強するのがいいよ。
仮想環境使えばHDDの空き領域でエミュレートできるし。
Javaの話だったら、指定された位置を上書きしないなら
そのSeekableByteChannelの実装はバグだから報告よろ。
>>770 moduleと最適化って全然関係ないんじゃね?
777 :
デフォルトの名無しさん:2011/12/22(木) 21:58:16.49
アクセスアナライザを作ってるのですが
DBのinsert(アクセスログのinsert)で時間がかかってる場合、
insert部分を別スレッドで走らせたりするとやっぱりどこかで問題が生じます?
779 :
デフォルトの名無しさん:2011/12/23(金) 00:15:14.90
自分の空いてるポートを探す方法はありますか?
おしえてください
なんで?
そこにポートがあるから
糞スレ保守
LCOBO COBOLC COBO COBOL OLCOBO
OBO OL BO BO BOL LC OL
BOLC BOL OLOBOLC LC LC LCOBOLCO
OLBOLCOB CO OBO OBO COB CO BOL
COBOLC BOLCOBOLCOB COBL COBOL BOLCOB
LCOBO COBLCO COBO COBOC COLCOBO
OBO OL BO BO BOL LC OL
BOLC BOL OLOBOLC LC LC LCOBOLCO
OLBOLCOB CO OBO OBO COB CO BOL
COBOLC BOLCO OLCOB COBL COBOLCOBOLCOB
jniのインタフェースのc++側は、
extern "C"のグローバル関数にならざるを得ない、
と思って間違いないですか?
間違いがあれば、エスパー的な指摘をいただきたいです。
javaでGUIを作る場合Swingがメジャーですか?
初心者が使うとしたら何のライブラリがよいですか?
C#
初心者ならRADでポトペタすんのがいいんじゃね?
RADのサポート具合で一番好きなIDE使え。
ライブラリはRADツールの都合で決定されるので選択権はない。
C#はいい言語ですよね。去年から勉強しております
eclipseで開発したいのでSwingかawtで迷ってます
793 :
デフォルトの名無しさん:2011/12/23(金) 11:17:37.02
6を入れなさい
7はまだ早い
わかりました
6を入れます
>>791 悪いことはいわない
素直にC#,Microsoftにしとけ
>>796 Microsoftのサポートセンターに電話して聞いてください(有料)
798 :
デフォルトの名無しさん:2011/12/23(金) 11:33:55.82
それでいいよ
ecliplseはやっぱ止めにしてNetBeansってのを入れてみます
今 JDK 6 Update 29 with Java EE ってのをダウンロードしてるんですが30分も掛かるなんて結構大きいです
でもこの待ち時間30分とファイルサイズがJavaの底力ですかぁぁぁ!!
楽しみだな^^
ワクワク^^
単にネット環境が貧弱なだけじゃね?
>>798 ありがとうございます
入れてきました
これからeclipseで入門サイトみながら作りたいと思います
javaの試験ってオラクルのやつとサーティファイ?のがあるみたいだけど
どっちが有力なのかな
ボラクル
オラクルの一択
そうなんだ、ありがとう
ちなみに、やっぱり難しいのもオラクル?
サーティファイは学生用、就活時にアッピルするためのもの、実際学生時に1か月勉強しただけで上級とれた
bOracleは人材の客観的な技術力の物差しに使われたりする、金がかかる。ブロンズならまあ簡単
ありがとう、参考にします
オラクルは金かかるんだね‥要するにプロ向けかぁ
809 :
デフォルトの名無しさん:2011/12/23(金) 14:07:02.90
プロって程ではないにしろ個人で取ろうと思ったらコストと手間がかかるのは確かだろうね。
でも個人でも初級(シルバー)位なら挑践してみる価値はあるのではなかろうか・・。
お金が許すなら・・・。
本人のスキルと高収入はそれに見合ったものとして強い相関がありますが、
資格保持や高学歴などの知識と、プログラミングやデザインのスキルとはどういう相関があるんですか?
811 :
デフォルトの名無しさん:2011/12/23(金) 14:45:25.44
相関なんてないんじゃないか?
要は(より高い)要求をこなせるかどうかで
資格はその水準を外部的に認定したもの(必ずしも証明ではない)
学歴に至っては仕事を始める切っ掛け
相関があるとすれば勤続年数か・・・・。
>>810 自分で少しは考えろよ
スレチだからあっちいけ
>相関があるとすれば勤続年数か・・・・。
コボル + オラクル = コンプリート
のことですね。分かります。
FileWriterなんだけど
追記方法がわからない
FileWriter fw = new FileWriter("hoge.txt");
fw.write("fooooo");
これを実行させるとhoge.txtが毎回fooooだけが入っている。
fw.appendにしても
foooo
foooo
foooo
foooo
foooo
と追記にはなってくれず、上書きになってしまう
>>791 awtはswingに置き換えられてる。
つかうならswing。あと、C#を進めるヤツがいるが
Listenerつくるの下手なヤツはC#つかうしかない。
うん。そーだね。
ええ?ちがうだろ。
>>815 C#にListenerがないとすると、JavaでいうListener類似の機能はC# 2.0 (ecma c#)までだとどういうモデルで行うんですか?
819 :
デフォルトの名無しさん:2011/12/23(金) 15:18:24.58
>>813 それよりも
劣悪な環境で耐えた年数=スキル です
あと簡単なことを初心者に分かりやすく教えて手っ取り早く手下に仕立て上げるスキルも重要です。
スレチスマソ
うちにコボラーがいるけどあだ名がコボちゃんでワロタ
サラリーマンにスキルもへったくりもないと思いますよ
え?今やコボちゃん貴重(希少)だけど・・・。
絶滅寸前のコボラーなんか興味ねーよ
スレチだから他所でやれ
824 :
デフォルトの名無しさん:2011/12/23(金) 15:45:32.35
へったくりという言葉はないけど
へったくれという言葉はあると思うよ
学歴やスキル云々なんかより、どの業界でも日本のサラリーマンは堪え忍び我慢をすることによって日々のオマンマにありつけるのですから、サラリーマンはいきがっちゃぁ駄目ですよ
オラクルの話題
DBと勘違いしてなくないか?
OJCはAやPやDとかでブロンズやシルバーじゃねえだろ
forループの中で変数宣言しない方がいいですか?
forループの中でしない方がよさげなのはインスタンス生成。
スコープを不必要に広げないという観点から言えば
ループ内でしか使わないものはループ内で変数宣言すべき。
>>826 thx
オーバーロードがあって追記型としてオブジェクト作るか決めるのか
public、protected、privateの違いはなんとなく分かるのですが、自分で書く際はどう使い分けたらいいのか分かりません。
どういう意図があってprivateなどにするのでしょうか?
C言語で全部グローバル変数にしてそれなりの規模のプログラムを作ってみたら分かるよ
peivateの意味なんて、それこそintenet普及以前から、
無限に説明し尽くされてるだろ。
>>832 敬語と謙譲語と一般会話用語の違いみたいなもんだ
お決まり的にその変数のアクセスレベルを上げて(private)
Java作法に習ってアクセスしたりするのに使う
その辺のアクセス権設定は慣れれば、分かるから
初心者はスルーした方がいい
教科書的な物や初心者向けサイトだと最初の方に出てくるが
もっと後に詳しく説明した方が良いと思う
CやってからJavaやった方が理解しやすい?
C#とJavaが近い
いえ遠いです
話をするレベルと、焦点の当て方で
近くにも遠くにもなる。
LCOBO COBLCO COBO COBOC COLCOBO
OBO OL BO BO BOL LC OL
BOLC BOL OLOBOLC LC LC LCOBOLCO
OLBOLCOB LCO OBO OBO COB CO BOL
COBOLC BOLCO OLCOB COBL COBOL OLCOB
PHPやってからJavaに入ったけど
変数宣言とか参照渡しの概念とかなんなのってかんじ
配列にぶち込んでコピーしたら実体もコピーしろよってかんじw
>>832 finalでないデータメンバーは基本private。
コードを直すときprivateメンバーは、クラスのメソッド以外からは、
参照できないので、クラスのメソッドだけ確認すればよく手直ししやすい
ってのは初心者向けによく言われる話。
オブジェクト指向の観点で言えば、オーバーライドが関係する。
データメンバーは、オーバーライド不可能なんで、スーパークラスの
データメンバーに直接アクセスされると、サブクラスはそのアクセスを
検知する手段が無くなる。だから、ただデータを設定するだけでも、
データはprivateにしてメソッド経由でアクセスさせるようになっている。
protectedは、Java以外の言語であれば、サブクラスがスーパークラスを独占して
操作するための手段。サブクラスから見れば、他のクラスが自分の
スーパークラスに、protected操作をしないことを保証できる。
残念ながらJavaだとpackageレベルではpublic同様なのでその効果は薄いが。
>>844 コピーするとおせーし、
COWもスレッドと相性わりー。
>>845 長い割には内容が薄いから、それなりに中級者向けにもうちょっと短く書けないの?
内容がないよう
どうみても中級者な話題でなく初心者向けの話だろ
質問者からしてプログラム始めて0〜2ヶ月(実質50時間未満)
というオーラを感じた
>>847 privateの目的:
・コードメンテの範囲を絞るため
・データの変更を検知するため
protectedの目的:
・スーパークラスに対するサブクラスの独占操作を提供するため
>>849 internalスコープも知らなそうだしな
Cすらやったことも無いだろうし
852 :
847:2011/12/23(金) 18:28:31.99
832だがやったの一時間だけだよ
何も指定しないとパッケージスコープになるのはC脳に媚びた結果産まれた設計Javaのミスの一つ
脳みそのミソ
>>845 このスレはブログ用のネタスレだと思って、たらたら書きたいならブログでやれよ
最近のjava,jsブログは妄想や愚痴が少なくなって多少は通読レベルになってはきたけど、能書はまだまだこの板以下のレベルばかりだ
デフォルトパッケージのデフォルトアクセスレベルがファイルスコープになるとか
どう見てもCを意識してるだろ
C風の配列の書き方とあわせて今となっては明らかに不要な仕様
パッケージスコープのおかげで、SimulaやC++のおともだち指定がいらん。
パッケージスコープは必要だが、デフォルトはプライベートでキーワードで指定するべきだった
>>856 初心者向けに書いたんだよ。
自分が上級者だと思うんなら、相談スレなんか来るな。
ソースでも書くか、底辺な言語スレじゃなくもう一段上のスレに行けよ。
internalデフォなのは、ソフト固有のクラスなら全部internalでいいからでしょ。
internalが多いsunのコードみてると、片っ端からメソッドをpublicにするのも
おかしな風潮だと思える。
>>860 相談スレに上級者がいなけりゃ
バカがバカに無用を教える場になるだろ
上級者を追い出すようなものいいは控えろ
>>856を追い出すのは構わないが
java初心者はandroidすれにいけよ
そうじゃないのは大学・専門の担当先生に聞くか、もしくはjavaではなくまずはc#をやれ
androidスレでJava的なこと聞くとJabaスレ行けと言われるお^^
C#はWindowsと運命を共にするんじゃないかな?将来性あるの?
.netの観点で言えば、組み込みでも動くし、Un*x系でも動くようになった。
オープンソースで開発してるし、Windows必須じゃなくなった。
仮にMacがOSの代表格になっても使うことは出来るぞ。
どっちかといえば、Javaの方が将来性としてマズイよな。
OracleがライセンスしたVMとGoogleのアレしか動かん。
>868
現実を混同するなよ。実質まだまだダメダメだろw
最近C#厨が出張おおいな。何か焦ってるのか
c# (win32 api)はwindows desktopのネイティブ開発(dll)用本命言語だから死ぬことはない
そのままmsの世界に馴染めばwindowsにいればいいし、ms,msdnに馴染まないならjavaに来れば戻って来ればいいし、mac,linuxなどwindows以外ならc#は完全無視でいい
といってもjavaは少し先に進むと英語の資料しかないから英語が出来ないなら結局c#しかないだろうね
C#の方が英語読めないと悲惨だろw
嘘を流布するなよ
そも、技術者が英語読めないとかアホすぎて話にならんわ
>>870 ライブラリを無視すれば言語的には十分動くぞ。
gnome環境も一部.net化されたしね。
おまえら Java8 の Project Lambda どう思う?
漠然と聞かれてもな……
大丈夫だよ。どうせまた延期だから。
結局 MICROSOFT 最強!!
ってことだなw
ま、DESKTOP PASOCONで開発すると言ったら今でもイコールWINDOWS OS上で開発するってことなんだし当然の結果か
また延期とか、マジ勘弁。俺はずっと楽しみにしてたんだぜ
(int i) -> { return i } か。だいぶまともになったな。
仕様書にマジでC#/Scalaをパクッたと書かれてて吹いた
>>877 たまぁーにLambdaつかいてぇなぁって局面もあるっちゃぁあるが、
たまぁーにだなぁ、たまぁーに。
それにそもそもJava SE APIがまぁだLamdaを念頭に設計されているわけではぁないのでぇ、あたりまえっちゃぁあぁたりまえかもしれんがなぁぁ。
それよりもだなぁ、俺ぁはタプルがほしいだよぉ。
タプルでたぷたぷしたいんだよなぁ。
あぁ、多値返却できるように、でもいいぜぇ。
>>882 セミコロン抜けてるからエラーだぞ、それ。
それそりもだなぁ、Swingの古めかしいコードかきなおせぇよなぁ
シングルスレッド設計のくせにVector使いまくりだろぉがぁよぉ
>>884 仮にタプル入れるのにしても、
erasureでない総称型入れる方が先になんじゃね?
>>886 引数戻り値で使ってるところは無理じゃね?
新しいもの好きならJavaFXに突撃すると良いよ。
それよりstatic final int FLAG = 0x1の嵐を何とかしてくれ
最初に言語とライブラリを設計したときにこんなもん通した開発者の正気を疑うわ
>>888 JavaFXってSwingよりも速い?
速かったら移行しても良いけど。
>>889 自分のコードならenumに置き換えろ。
他人のコードで手が出せないなら諦めろ。
>>890 Vectorとか使ってないから速いんじゃね?
Androidはパフォーマンスが落ちるからってあえてenum使わずにintオンリーなんだよな
ただの型名付きの数値にしとけばこんなことにならなかったのに
つくづく良かれと思ってやったことが裏目に出る言語だな
enumを使ってもXML-RPCとかJSONとかで他と連携するときは、結局Integer(やString)との対応表を要求されてなんだかなーって思うわ。
enumってそもそもenumerableの略であるから数値情報を持ってないとおかしいんじゃないかと。
enumの仕様はローカル変数モテるから便利っちゃ便利だよ
Androidみたいな貧弱な環境だと絵に書いた餅だが
enumerable=can be countedだから、数値情報もってなくてもおかしくはない
JDK7をインストールしあらJavaFXっていうのもインストールされてたんですが
これでGUIを作るとパフォーマンスとかいいですか?初心者が手を出すものじゃないですか?
デザインツールが無いから話にならん
>>895 個人的にはabstract enumとconcrete enumで親子関係できればもっと良かったのに……
>>899 個人的にはenumに型パラメータ付けられたらもっと良かった。
ラムダ本体よりもdefault methodは、実質java8からc++とほぼ同じく動的に多重継承を許すことで未知の問題が多く議論が収束しないからラムダ仕様から分離した方がいいし、もともと言語仕様で設計上排除してきたのだから多重継承を許すのはいけない。
少し考えてみたけど、interfaceでやったりinterface型を仕様拡張するのでなく、java8ではclass AbstractCollectionなど必要なクラスに個別にpararel,filterなどを付けるに留めて限定的サポートのみで抑える。
java.lang.reflectや、jre familyならAbstractCollectionに直接キャストを使うなどjava7では明示的キャストやライブラリapi呼び出し仕様にしておく。
そしてjava9でクロージャを入れて、Cloneableのようなinterfaceマーカー規約と、プロトタイプ指向(ducktyping or 出来れば動的バインド)な機能を導入するのが現段階での自然な拡大方法だろと思う。
>>901 多重継承になる場合は明示的にオーバーライドしないとコンパイルエラーだったような。
ダイヤモンド継承なら明示的なオーバライドが必要なのはわかるが
多重継承で明示的なオーバライド必要なん?
>>894 なんで対応表なんて必要なんだ?
kind.getXxxx();とかenumに値返すメソッド
つけりゃいいだけだろ。
なんでC#とJavaでこんなに荒れるんだ
俺はpublic final な変数がベストだと思ってる
>>902 いや、反対なんじゃなくて、コンパイラ実装が複雑になったり策定の議論がなかなか収束しないなら提供機能が抽象的すぎるか粒が大きいわけで、その機能のままでの提供は諦めるのも一つの設計上の考え方ではある。
多重継承はc++で20年近く成功してるから突然javaで導入しても別に問題ないし、libからは「今のジャバはabstractにもinterfaceにもmethod定義も書けるのか!」だし、userからすれば便利機能が増えたってことではある。
それでもしかし、言語設計者達は何を考え、そしてなぜこれを排除したのかをよくよく考えないといけない。
原始言語設計者に反論できる程でもなく、ただの便利な機能追加程度の認識ならご都合拡張のc++,c#その他と同じだし、その時点で言語としてのjavaの死を意味すると思うよ。
javaがこれからも強い型付けを特徴としていきたいなら、interface, abstract classなどのコンパイル時クラスに静的多重継承(直接の動的多重継承も)の導入は到底受け入れられない。
必要ならclouserやducktyping、mixin, traitなど新しく現代的なkeywordを導入すれば解決できる問題だろう。
>>906 誤解があったかもしれん
EnumType.KIND_A.getXxxx();
public finalと変わらんよ。
>>908 Java設計者のゴスリンは、次に言語つくるとしたら
interfaceは導入しないといってたな。あの人が多重継承煽ったんじゃね。
ダックタイピングってthrowsとか泥沼になりそう
現にラムダの最大の障害になってるんだし
>>904 表っていうか↓みたいなのだけど。
Foo(0), Bar(1), Baz(2), ...
あと、toXxxとxxxOfもつくらなきゃ。
これを自分で実装するのがめんどい。
ま、まんどいだけだけど。
めんどいほどでもないけど…。
いや、もういいです…;ω;
public final int に対するアドバンテージは、
* switchのcaseで重複した分岐条件があるとエラー
case Foo
...
case Foo
...
* 利用を強制できる
逆にディスアドバンテージは速度面?
>> 909
本質的な意味はもちろん変わらないよ。
どうせ参照専用だしアクセサ必要な場面ないかなーっと思ってるから
アクセサなしでスッキリ書くのが好きって位の意味だった
public final String xxxx;
private EnumType(String xxxx) { this.xxxx = xxxx; }
EnumType.KIND_A.xxxx;
「言語信者とテロリストとの違いは?」
「テロリストとは交渉できる」
>>908 クラスベースの言語にtrait導入は無理があると思う
>>917 その辺りはいくらオープンに議論をしてみても結局は、これからのジャバ言語はどうするかジャバ・プラットでどうやってwin-winで儲けようかなど、オラクルの中の人のさじ加減一つにかかっている
>>908 レアか頻発するかは別にして問題は起きると思うぞ。
古いコードと新しいコード混ぜたときに意図せず多重継承させちゃってました、とか。
default methodに対応してないリフレクション用のコードでは上手くメソッド検索できなくなるとか。
で、議論の方向としては問題が起きるのを少なくするにはどうするかって感じで
いまさら導入するべきか導入するべきでないかの議論はしてないと思うが。
なんで強い型付けだと多重継承は受け入れられないん?
>>913 基本的な話だけど、値を変更したりオーバーロード経由でのアクセスが必要なければ
データだからって別にprivateにする必要はないでしょ。
状態の変化がなければこういう使い方だってSunはしてるわけだし。
SJIS.ENCODER.convert(・・・);
SJIS.DECODER.convert(・・・);
IBM1112.ENCODER.convert(・・・);
IBM1112.DECODER.convert(・・・);
IBM1122.ENCODE.convert(・・・)R
IBM1123.ENCODER.convert(・・・),
一部ENCODER、DECODERの記述をミスった。
922 :
913:2011/12/23(金) 23:00:34.72
>>920 ん、俺あて?
どこが突っ込まれてるか良くわからん。。
糞スレ保守
>>922 同調してんだよ。全てが全てメソッド経由である必要はないってね。
列挙型って使い所が結構メンドくね?
TRUE,FALSE YES, NO, HIDE,SHOWぐらいだったらいいけど、
拡張子とか列挙型にすると対応する拡張子が増えたとき、
列挙型に値追加するわけにいかんから困る。
926 :
913:2011/12/23(金) 23:14:56.03
それこそ列挙値を追加する場面だろ。どこで困るんだ?
大量のswitch修正
列挙型以外でも、種類が増えたら困るのは同じなんだけど、
列挙型の使用は、感覚が安易になり局所的な使用しない場合が多いからね。
privateなインナークラスとして定義している場合ならいいけど。
型検索で修正範囲は一瞬で特定できるから列挙値使ってないより格段に楽なはず
switch使ってる箇所が多杉と感じるなら設計がまずいだけじゃね?
switch使うんだったらタイプセーフなんて幻想だからdefaultで例外投げること
それ忘れなければ別に文字列として扱うのと変わらん
>>929 設計がマズイのはそうなんだ。
switch 5個書くぐらいなら、 5種類メソッドもった
クラスをcase分用意した方がマシだからね。
logic = extMap.get( ext );
logic.switchA();
logic.switchB();
logic.switchC();
logic.switchD();
logic.switchE();
// 例なのでメソッド名のツッコミは勘弁。
>>931 意味分からん。
メソッド5個持ったら呼び分けなきゃならなくて、
switchが散在してる問題には何の解決にもならんでしょ。
logicインスタンスを切り替えるんだろ
呼び分けるっていう意味が解からん。
switch( logic ) → logic.switchA();
switch( logic ) → logic.switchB();
こうい風に置き換えるだけよ。
当然、他のソフトに転用できないけど。
保守性の面じゃこっちの方が寿命が長いじゃん。
>>933 自分の発言内での整合性くらいチェックしろよw
>>931でswitch5この代わりに5メソッド言ってるぞ
言ってる意味がわからんから小出しにせずに、
10行位のコードをbefore、after書いてみてくれないか
ExtCase case = extMap.get( ext );
case.switchA();
case.switchB();
こう書いたほうが分かりやすかったか。
case A
case B
:
case E
の代わりにメソッド5つ(switchA〜E)用意しましたってこと?
だったら、先のswitchが散在してる問題には何の解決にもならんでしょ。
皆さん恥ずかしがらずにコテつけてください
>>934 >クラスをcase分用意
って書いたじゃん。
まぁいいや。
before:
Ext type = Ext.valueOf( ext );
switch( type ){ ・・・ }
switch( type ){ ・・・ }
after:
ExtCase case = extMap.get( ext );
case.switchA();
case.switchB();
理解してるが命名センスが致命的に欠落してるのか
理解できてなくて必然的に設計がダメになってるのか
理解が不十分で何書いてるか理解せずに命名が荒れてるのか
判断に迷う。まあ本人がいいって言ってるからいいか。
名前は突っ込むなっていったろ。説明用なんだから。
さすがに誤誘導する名称じゃ失格でしょ。
理解してないからそうなってる可能性も高そうだけど
とにかくよ。switchをメソッドに、
クラスをcaseに割り当ててしまったほうが、
転用が効かないけど保守は楽ではある。
拡張子増えるたびに、クラス追加すりゃ済む話だからね。
列挙型は、ソースコード全部検索して、
問題が発生するかいちいち確認
しなきゃいけないのがやっぱり面倒。
それは同意。
switch書いたら負けかなと思ってる。
>>919 2chは暇つぶし目的なので、あなたの議論の相手ばかりできませんし時間が来ればそこでおしまい。
>問題が起きるのを少なくするにはどうするかって感じで
上述で凝縮してありますが、
もともとのラムダはワン・ライナーやS・A・M目的だったのでそのようなラムダ仕様でなんでもかんでも済まそうとしないで、ラムダ提案はS・A・Mとリテラルのみに特化します。
このときdefalut methodは、map,filterが必要ならjava8ではclass AbstractCollectionなどに全てのクラスに定義してjavaお得意のライブラリによる言語拡張とします。
言語リテラル・予約語レベルのちゃんとした仕様はjava9にまわし、かつinterfaceにdefalut methodを取り付ける強引な発想はせず、
interface仕様は(外部のstub/interface目的が導入理由なのだから)従来のままで、ラムダを拡張してクロージャなど素直に新機構と新keyword導入も考えの一つです。
例えば従来との互換性のためにinterfaceにfuncの定義がないときにdefault code blockを動的バインドをしたいだけなら多重継承と概念・機能は区別出来、
ラムダ(この場合は関数ポインタ)のアグリゲーションとしてクロージャ(と当該関数ポインタだけが使える内包的レキシカル変数拘束)を利用するコンセプトもあるでしょう。
default method仕様はラムダと分離して、大きな仕様策定とらえてbind予約語を導入してさらにクロージャとクロージャ・リテラルの利用法の一つとする。
またjava6,7以前では、coroutine,coreなどjava8移行の概念に依存しているようなブロック・ライブラリを使っている(インスタンスがimplementsしてる)なら
文法上良くてもコンパイルエラーとして-target 1.6などと明示させ(または実装の推論で切替え)、
default method仕様は従来の型システムにまったく馴染まないので言語に強烈に結合しない方がいいと思います。ただし、これは私が考えることではなくエキスパートの仕事です。
>なんで強い型付けだと多重継承は受け入れられないん?
第1にサンのjavaではjava言語としてそういう約束で今まできたからです。
第2にこれを崩すとC++などと差別化がなくなり、静的コンパイルや型システム(型付け)やクラス分類の概念がまったく変わります。
つまり、コンパイル時はinterfaceの契約どおりだったとしても後からなんとでも動的にダンピングが出来るようなものは、
もはやサンが設計したjava言語ではないと言い切れます。
個人的にはjava利用者に過ぎないのでどうでもいいし、java仕様はサン設計でなくオラクルの都合で決めていくことなので「多重継承?ああそうなの」程度ですけど。
>>945 多重継承は継承元が多数なだけで継承したクラス自体は
コンパイル時に唯一の型として定まるから動的とかの出番はないっしょ。
別の概念と混同してると思われる
Javaが使われる理由はライブラリとクラスプラットフォームだから
多重継承が増えたところで、Java信者以外は気にするひとは居ないでしょ。
大体言語作者自体も失敗だったって言っているんだから。
>>946 それを静的にしかも言語仕様上強制的にコンパイル後でも区別する目的で、コンパイル前に明示的にする意味でinteface,abstractがあったのでは?
リフレクションでクラスの型パラメータの型を取得する方法ってないの?
Foo<Bar> foobar;
だとBarが欲しい。
Foo<Bazz> foobazz;
だとBazzが欲しいんだけど。
>>948 誤解してる。
class Drived extends BaseA, BaseB{}
こう書けるだけけだぞ。
動的解釈の入る余地なんてないだろ。
あれれ?
enumの漫才はもう終了したんですか?w
953 :
デフォルトの名無しさん:2011/12/24(土) 01:15:11.07
文字列を例えば"A"で分割したいって時に、String#splitを使うと
"hogeAmoge".split("A") -> {"hoge", "moge"} ってなってしまいます(当然ではありますが)。
"hogeAmoge".split("A") -> {"hoge", "Amoge"} のように分割するメソッド、というかうまい方法ってなんかあるでしょうか?
>>955 ありがとう
"(?=A)"でできたんだけど、"AhogeAmoge"の場合
"AhogeAmoge".split("A") -> {"", "hoge", "Amoge"} になってしまう。
この場合も {"hoge", "Amoge"}にするにはどしたらいい?
あ、 {"Ahoge", "Amoge"} ね。
アホげ
ああ事故解決 キモいな正規表現
(?<!^)(?=A)
>>956 別に一番始めだけが問題になるんだから、それだけifで判定して
先頭がAなら一文字削った文字列に差し替えればいいだけでは?
>>954 ジャバのホゲホゲ漫才じゃなかったの?
どういうこと?
962 :
デフォルトの名無しさん:2011/12/24(土) 03:40:26.40
Shift_JISのテキストファイルを読み込んで、
String srcにする。
この時点でsrcはEclipseデバッグモードの変数ウィンドウで見ると文字化けしている。
new String(src.getBytes("UTF-16"), "Shift_JIS");
としても、まだ文字化けしている。
Shift_JISのInputStreamを文字化けしていないStringオブジェクトにするにはどうすればいいですか?
new String(src.getBytes("Shift_JIS"));
これは試したか?
>>962 自分が書いたコードが何してるか理解してないからそうなる
API読みなおしてきたらいい
>>964 しらん。
>>945に聞いてくれ。エスパーするなら多重分類とかそのあたりか
>>965 多重分類?
Javaは滅多に使わないC++の多重継承を排除して単一継承を売りにしていたけど、本当はJavaは当初から多重分類の言語設計だったということ?
ラムダとかクロージャとか動的多重継承とか、Javaではそんなの使わなくても上手くいってるのにJava以外の言語ではいつのまにかそんな難しいことやってたわけか
おいおい話の流れ位は把握してから質問してくれよ。
Javaにのってない機能を話してたんだから、現Javaの仕様にはないよ当然。
単一の言語しかさわらん人は概念すら知らないかもしれん。おまえが知ってるかどうかもしらん。
968 :
962:2011/12/24(土) 05:22:04.79
>>965 getBytes()の意味が良く分からない。
なぜエンコード指定が必要になるのか。
文字列のバイナリ表現をそのままbyte[]で得たいと思ったら、どうしたらいいの?
>>968 なんかデジャブを感じる。
たぶん過去スレみれば5回くらい同じ話題が出てる。
InputStreamReaderで検索しろ。
970 :
962:2011/12/24(土) 09:05:48.36
はあ・・・
>>968 テキストファイルのバイナリ表現なら、
Reader使わずにInputStreamで読み込めば良いだけ。
>>968 >バイナリ表現をそのままbyte[]で得たい
バイナリで読み込めよ。アホか。