Java入門・初心者質問スレ Part.3 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/04(火) 20:41:11.59ID:y0EcmGB0
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.2
http://echo.2ch.net/test/read.cgi/tech/1478863511/
2017/05/28(日) 18:43:34.75ID:QwjzxVOm
作家の座談会によると、
スッキリは、無名の著者が、2, 3年掛かって作ったとか聞いた

イラスト代とか、途方もなく、お金が掛かっているプロジェクト。
大赤字からスタートしてるんだろ

無名の著者で、売れるかどうかも、分からないような本だった

理由は知らないけど、スッキリの編集者は、転職したらしい
2017/05/28(日) 18:53:19.68ID:x9tOFMEC
>>554
mainメソッドにのみ記述した場合はインスタンス作成されませんが
2017/05/28(日) 19:37:02.55ID:1i8XYM/R
メインメソッドが既にインスタンスなんだが
バカなんだから思い込みだけでレスつけるなよ阿呆
インスタンスの定義が何かわかってんのかお前
2017/05/28(日) 19:41:04.59ID:wvAEkP6f
>>555
だから元を取るために必死にダイマしてるの?
2017/05/28(日) 19:44:08.81ID:rKdLC74L
>>557
知ったかで人を阿呆呼ばわりするのはどうかと
メインメソッドにstaticって付いてるのの意味分かってる?
2017/05/28(日) 19:45:36.04ID:x9tOFMEC
>>557
なんでいきなりキレられてるのか全然わかんないんだけど
メインメソッドがインスタンスになることはできないよ?
2017/05/28(日) 19:47:27.86ID:1i8XYM/R
クラスローダーがmainメソッドのあるクラスを読みこんだ時点で
mainメソッドがインスタンス化するんだよ阿呆
小学校からやり直して来いアホども
2017/05/28(日) 19:50:14.15ID:1i8XYM/R
メモリの概念すらわかってなさそうな馬鹿しかいないとかビックリだわ
HelloWorldは魔法の言葉か?w
2017/05/28(日) 19:54:14.22ID:rKdLC74L
メソッドがインスタンス化で草生えるわ、JavaScriptかってのw
2017/05/28(日) 19:55:52.87ID:tr4rluHU
>>560
Appクラスにmainがあるとしたら、mainはApp.classというひとつしか存在しないインスタンスのメンバーだよ
2017/05/28(日) 19:55:55.36ID:rKdLC74L
まあクラスオブジェクトをインスタンスって言うならそうだろうけどな
2017/05/28(日) 20:03:51.11ID:1i8XYM/R
インスタンスじゃなかったら何なんだよ?wwwww
メモリ上に実態がないのにアクセスできんのか?www
専門学校生レベルの奴はチンポでも弄ってろよ阿呆
567デフォルトの名無しさん
垢版 |
2017/05/28(日) 20:15:26.83ID:qHRbOIzL
>>566
聞く前に自分で考える癖を付けようよ
568デフォルトの名無しさん
垢版 |
2017/05/28(日) 20:57:22.72ID:VccFyu7h
>>554
自分の書いた部分以外では、な。
569デフォルトの名無しさん
垢版 |
2017/05/28(日) 21:04:50.30ID:VccFyu7h
>>566
涙拭けよ
570デフォルトの名無しさん
垢版 |
2017/05/28(日) 21:35:45.78ID:QPUrPhGM
Javaから入るのはよくないけどな。
2017/05/28(日) 22:58:57.33ID:vFbXjviW
>>554
new クラス名 ってやって初めてインスタンスができるのではないのですか
2017/05/28(日) 23:00:44.44ID:Y/jTFKWE
>>570
どういうところがよくないの?
2017/05/28(日) 23:02:53.89ID:Y/jTFKWE
>>571
ライブラリ内部でインスタンス作ってるケースも普通にあるからね
newを自分で書くときは、あくまで自クラスでインスタンス作るときの場合に使うってだけ
574デフォルトの名無しさん
垢版 |
2017/05/28(日) 23:08:25.60ID:QPUrPhGM
>>572
コンピュータとオブジェクト指向プログラムが乖離しすぎているから。
2017/05/28(日) 23:26:56.70ID:6qJqAaY9
>>574
それJava云々じゃなくてオブジェクト指向自体に疑問を呈してるってことだろ?
2017/05/28(日) 23:36:35.46ID:wvAEkP6f
文脈的には単に初心者が手続き型プログラミングとオブジェクト指向型プログラミングを
一気に覚えようとするのは好ましくないくらいのニュアンスじゃないの
2017/05/29(月) 00:27:00.16ID:lFCv8yRy
オブジェクト思考言語が手続き型言語ではないという説は初めて聞いた
2017/05/29(月) 00:45:21.43ID:KqfCApyh
>571
インスタンスって言葉に惑わされてるだけ
mainメソッドという処理を行うためのstaticな領域は既に存在する
その中で書かれた処理は順次あらたに領域が確保されていくだけ
処理を行うための領域が存在したないただのクラスはnewして初めて領域が確保される
2017/05/29(月) 01:13:01.57ID:JZ+YO2S6
staticの概念が難しい・・・・・・
言われてる事は分からんでも無いんだけど、理解出来てる気がしない
2017/05/29(月) 08:27:06.94ID:C0b3SugI
int[]よりArrayList<Integer>の方が型安全ですが、固定長なら配列の方が高速に動作しますよね?
普通はどちらを取るものですか?
2017/05/29(月) 08:51:58.84ID:BkgkdtpP
型安全とは?
2017/05/29(月) 10:09:34.31ID:krahuleL
>>578
入門者にstaticとか領域とか申されましても……
待ってくれたまえ ことばの洪水を ワッと いっきに あびせかけるのは
583デフォルトの名無しさん
垢版 |
2017/05/29(月) 10:17:19.00ID:QVs41rDP
>>581
<>でクラス指定しとくと他のクラスのインスタンスへの参照入れられなくなるってことじゃね?
2017/05/29(月) 10:30:59.28ID:SygdXyO8
>>580
普通はどちらかのみ使うではなく、用途によって使い分けるじゃね?
2017/05/29(月) 11:00:42.17ID:xnEvchj+
>>584
Effective Javaでは配列はあまり推奨されてないようなので、実際のところどうなのかなと思いまして
2017/05/29(月) 12:47:36.03ID:wRfxx2EJ
>>580
なにをもって配列の方が速いって言ってるのか知らないけど、ArrayListも中身は配列だからw
587デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:17:24.11ID:xpUPwHwO
>>585
しかし ArrayList は文字通り中で配列使ってるよ。
なんだったらソース見てみな。
588デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:17:59.69ID:xpUPwHwO
か、かぶった。リロードし忘れた。とほほ。
589デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:18:05.22ID:6ZDN/iGx
>>586
コレクションだよな。
590デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:20:40.27ID:6ZDN/iGx
>>586
配列のようにしか使わないなら配列の方が早いだろう。
591デフォルトの名無しさん
垢版 |
2017/05/29(月) 13:54:37.23ID:WVHDxzCz
「スッキリわかるJava入門」インプレス
昨日購入しまして、早速取り組み開始。
130P程読み進み、例題で「数あてゲーム」を書けってのがありまして、
それを何も見ないで考えて書いて出来上がり走った時の達成感
[ヵンド→]*☆*ヽ(*´Å`*)ノ*☆*[ウレ千→]
この気持ち忘れず最後まで読破します。

チラ裏失礼
2017/05/29(月) 15:08:34.74ID:qlUWK/sD
次はデバッグの楽しさだなw
2017/05/29(月) 16:59:09.15ID:npKTVoCQ
普通のArrayよりArrayListばっかり使ってるわ
可変長の配列の方が個人的にイメージしやすいし

普通の配列は書く時は直感的だけど、ArrayListでは使えるメソッドが使えなかったりするから不便でしょうがない
594デフォルトの名無しさん
垢版 |
2017/05/29(月) 18:40:35.39ID:s4hVHfzU
お疲れ様です。
今度、springでwebアプリケーションの業務
をすることになり2週間程学習をしているの
ですが全く理解出来そうにありません。

自学しようにも、インターネットの情報は
少なく感じますし、spring究極入門という本も
買ってみたのですが、何ヶ月かかるか
わからないほど自分には難しいです。

どのように学習を進めて行けばいいでしょうか?
2017/05/29(月) 19:00:48.24ID:hK31qQAt
基本的な事という事を承知の上で質問いたします
nextInt();で生成した乱数が 0〜10だった場合はこの処理をそうでなかったら10〜20かチェックそうでなかったら...
という処理は可能なのでしょうか...?
r = New Random()
for(int s = 0; 10 <= s; s++){
if(s = r){
//処理...
}
}else for(...){
//処理
}
と書きたいのですがelse for が構文エラーになってしまいます....
何か他の方法があるのでしょうか
2017/05/29(月) 19:16:34.05ID:JOJKTbqr
>>595
なんでforループになるのかわからん
書いてることそのまま翻訳したらこうならねえ?

int r = new Random().nextInt(21);

if ( r <= 10 ) { /* ... */ }
else if ( r <= 20 ) { /* ... */ }
2017/05/29(月) 20:58:21.92ID:KqfCApyh
正直フレームワーク系の本って買うだけ金と時間の無駄
最低限アノテーションの使い方とインジェクションの作法覚えて
ググりながらspringプロジェクトをローカルで作成して適当に
簡単な認証システムでも作ってりゃ覚えるだろ
springつってもいくつか種類あったと思うけど
2017/05/29(月) 22:54:19.91ID:hK31qQAt
>>596
すいません説明不足でした、100ならこの景品、80〜99ならこの景品、60〜79ならこの景品、というようなコードを書きたいのでそれでは思い描いた通りにならないのですよ...
for(int s = 0; s <= 100; s++){
if(r = s){

//処理

}
}else for(int t = 101; t <= 200 ; t++){

//同上
}
というように書きたいのです...
2017/05/29(月) 23:15:03.72ID:npKTVoCQ
>>598
そもそもelse forなんて構文無いだろ
書くならこれで良いだろ?

package test;
import java.util.Random;
public class Main {
public static void main(String[] args){
Random rand = new Random();

int n = rand.nextInt(100);
System.out.println(n); //デバッグ用に表示

if(70 <= n && n <= 100){ //70~100まで大当たり
System.out.println("大当たり!");
}else if(40 <= n && n < 69){ //40〜69まで中当たり
System.out.println("中当たり!");
}else if (20 <= n && n < 40 ){ //20〜39まで小当たり
System.out.println("小当たり!"); // 19以下ははずれ
}else{
System.out.println("外れ");
}
}
}
2017/05/29(月) 23:34:58.26ID:9PSXRaA2
>>594
最初にこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

Spring Framework 4 プログラミング入門、掌田津耶乃、2014

アスペクト指向も出てくる
2017/05/29(月) 23:40:17.48ID:KqfCApyh
評価2.5のゴミみてぇな本を勧めるなよwwww
目次見ただけでゴミってわかる
こういう読むだけたいして意味も価値もない無駄な知識を入れようとするから
フレームワーク関連の本は糞で初心者はさらにわからなくなるんだよ
2017/05/29(月) 23:48:53.76ID:hK31qQAt
>>599 様の通りにやってみたところ正常に動作しました、
こんなバカの質問に答えていただきありがとうございました
2017/05/29(月) 23:53:29.49ID:r7OgtnEw
>>601の話聞くよりは本読んだほうがマシだと思う
604デフォルトの名無しさん
垢版 |
2017/05/30(火) 00:16:24.33ID:xiJHA6at
>>603
ただのあの本は前提知識がある人向けただからな。
2017/05/30(火) 00:22:56.26ID:HpOG2ZPb
掌田は地雷だから
2017/05/30(火) 00:35:53.61ID:yvdd5Rk1
フレームワークの本に3000円とか金ドブもいいとこ
しかも3年前の生ごみとかありえんわ
2017/05/30(火) 01:20:31.09ID:2FSzpxmb
ほとんどの言語・フレームワークは、掌田だろ

JavaScript, Rails 5, Spring とか、
Unity, Unreal Engine も掌田
2017/05/30(火) 01:22:58.17ID:6dJw7tnc
個人的にはむしろフレームワークの方こそ本か何か体系的に入門から学べるものがあった方が良いと思うけどな
ネットの情報だけだと大事なところ端折ってあったりある程度分かってる人にしか通じなかったりで大変な部分もある
独自フレームワークとかになるとベースを理解してなきゃ話にならないし
2017/05/30(火) 01:59:53.28ID:H7vYKQcq
たまに入門書に親殺された人居るけど色んな意味で謎
Java勉強し始めたら、スッキリ・明解・やさしいの3択じゃね?
2017/05/30(火) 02:22:50.04ID:zApK3OKs
そもそもフレームワークなんて必要なくね?
2017/05/30(火) 02:37:54.92ID:2FSzpxmb
漏れは、柴田望洋・林晴比古・高橋麻奈・猫でもわかるの粂井康孝などの言語学者よりも、

掌田津耶乃・山田祥寛・宮本信二など、
フレームワーク・開発系の本を書ける著者を、上に見てる

この人らの講習会も、1日4万円とか高い
2017/05/30(火) 06:44:19.91ID:XoWmMRXk
漏れとかリアルタイムで使うやつ初めて見たわ
使われてたの10年くらい前なんでしょ?ww
613デフォルトの名無しさん
垢版 |
2017/05/30(火) 06:57:02.83ID:ChA7tHQK
>>610
自分でこしらえるか?
豪の者だな
614デフォルトの名無しさん
垢版 |
2017/05/30(火) 10:27:24.55ID:pjqd0kNY
漏れ漏れ詐欺
2017/05/30(火) 12:30:57.86ID:nOhBpO6Y
仕事でC#ばかりやっているのでJAVAもかじっておきたいとサーティファイという団体が主催する能力認定試験1級を申し込んだのですが、試験は何の変哲もないテキストエディタでコードをガチで書くのでしょうか?受けたことのある方がいらっしゃったらお聞きしたいです。
616デフォルトの名無しさん
垢版 |
2017/05/30(火) 13:04:49.18ID:xiJHA6at
>>610
Javaにはオレオレフレームワークが多くて結局、ソースコードを見るはめになる。
617デフォルトの名無しさん
垢版 |
2017/05/30(火) 13:05:39.80ID:xiJHA6at
>>608
それはそのフレームワークを作っている人間どもが不親切なんだよ。
2017/05/30(火) 16:53:33.56ID:fjPf+h/e
学校通ってますが
講師の先生の話を聞いてるより
スッキリわかるjavaを読んでる方が
良くわかると言う悲しい状況になっている(´・ω・`)
2017/05/30(火) 17:54:50.62ID:bCOz8Dem
新入社員で研修だけど講師がCOBOLとCしか実務経験ない人がJava教えてるからスッキリしか読んでない
2017/05/30(火) 18:29:35.07ID:tKJtC0l3
Javaの資格は修飾に役に立ちますか?
2017/05/30(火) 19:07:03.04ID:YLdyGF6/
>>620
javaとjavascriptが違うものということを知っているというレベルの証明にはなるかな
2017/05/30(火) 19:07:10.57ID:nOhBpO6Y
>>620
javaとjavascriptが違うものということを知っているというレベルの証明にはなるかな
2017/05/30(火) 19:53:54.13ID:x+NZDIHN
JREにはJavaで動くJavaScriptのインタプリタが付属している、ややこしいことに
624デフォルトの名無しさん
垢版 |
2017/05/30(火) 21:34:17.85ID:1UzYBAXD
>>618
先生に本を見せてあげなさい
625デフォルトの名無しさん
垢版 |
2017/05/30(火) 23:31:59.88ID:kr6O87Nm
JAVAの検定を受けるにあたり、試験で使うTeraPadというテキストエディタを
入れてみたのですが、これって、実務でも使うものなのでしょうか?

きっとIDEを使うんじゃないのかなと思うんですけど。。。
2017/05/30(火) 23:36:47.84ID:kWERrntF
クソみたいな環境以外なら普通IDEだがな、というかテキストエディタでコード書く言語じゃない
627デフォルトの名無しさん
垢版 |
2017/05/31(水) 00:03:40.79ID:IDPR98+O
Terapadはテキストエディタでもマイナーだよ。
628デフォルトの名無しさん
垢版 |
2017/05/31(水) 00:06:30.92ID:IDPR98+O
>>626
そういう決めつけはよくない。

初めからJavaは統合開発環境を使う前提で作られていない。
2017/05/31(水) 01:02:18.42ID:AHgBKhbQ
メモ帳で作成してUTF-8で保存
これで今まで普通にコマンドプロンプト上でコンパイルできて実行もできていたんだけど
最近方法変えてないのにコンパイル時「MS932にマップできません」とコンパイルエラーになるようになったんだけど何が原因でしょうか
class宣言のpublicの前に/ufeffとか言うのが勝手に挿入されてる?ようなのですが。心当たりがありません。
2017/05/31(水) 01:06:36.69ID:pEaTZtAB
ナムナム
2017/05/31(水) 01:10:47.45ID:AHgBKhbQ
ちょっと心当たりと言えば
最近フォントをricky dimeshedとか言うのに替えたくらいです
でもこれは関係ないよね・・・
2017/05/31(水) 02:54:05.98ID:eFZA2Mg7
>>629
普通にシフトJISで保存すりゃいいじゃん。
2017/05/31(水) 06:34:38.27ID:L84KcF4c
>>629
UTF-16選んでない?
https://ja.m.wikipedia.org/wiki/バイトオーダーマーク
2017/05/31(水) 08:26:49.11ID:AV1cHHAT
TeraPad とかなら、文字コードを指定できるけど、
メモ帳で文字コードを指定できるの?

ただし、TeraPad は、4バイト文字(サロゲートペア)を表示できないかな?

コマンドプロンプトよりも、PowerShell, PowerShell_ise を使えば?
入力文字コードも指定できるかも?

スッキリJavaは、どの道、会社の新人研修でも、
副本として使われる事が多いから、買って読まなきゃならない

講師がすべて教えるのは面倒だから、家でスッキリも読んでおくように言われる。
だから、スッキリが売れる
2017/05/31(水) 08:46:49.64ID:G90fYmhY
そんなに本の話がしたけりゃスレあるんだからそっちでやって
Javaのお進め図書・情報・url
ttp://echo.2ch.net/test/read.cgi/tech/1457392971/

>>629
メモ帳で保存するときのオプションで、文字コードシフトJIS選べば解決する
メモ帳でUTF保存すると全部BOM(バイトオーダーマーク)つけられるから面倒
2017/05/31(水) 11:20:38.49ID:nbJYiZYj
>>629
コンパイルできてたときは日本語コメントなくて、コメント書いたらエラーが出るようになったとか?
637デフォルトの名無しさん
垢版 |
2017/05/31(水) 13:35:48.00ID:ylYxKhrp
>>629
「/ufeff」が投入されるって、メモ帳が勝手にソースを改変すると言ってるの?
「最近フォントを替えた」って、何のフォントを替えたの?自分が何したのか解ってないぞ。
システムのデフォルトかメモ帳のデフォルトか…もしかしてeclipse?
ソースをバイナリダンプしてみた?コードはutf-8だったか?
メモ帳でソース書いてeclipseで読み込んでコンパイルみたいな変な事してないか?
2017/06/01(木) 00:48:52.75ID:t6ZFrgyA
ocjp bronzeの試験で javacコマンド云々とか
○○が追加されたバージョン云々
と言う問題は出題されるのでしょうか?
2017/06/01(木) 02:01:23.64ID:aYvEaLjY
https://ideone.com/G50BZD
while(sc.hasNext())を使って、空白区切りの数値をまとめて読み込んだあと
エンター(改行)が入った段階で処理を止めて、
そのまま計算に入るという感じなのですが

ideoneやpaizaなどのプログラミングコンテスト用のサイトでは上手く動くのですが
実際の実行環境(IntelliJ)上だと入力が終わらず困ってます
何かしらbreakする条件を付け足さないとダメなのでしょうか?
2017/06/01(木) 02:50:39.60ID:ZW4TAEqu
ScannerのhasNextの処理の中で再度入力を読み込むようにしてる処理があるから

ideoneとかはインポートしてるクラスの中身とか見れないから
Scannerの処理がどうなってるかわかんらし元々連続で入力受け付けるような仕様じゃないから
Scanner書き換えてる可能性が高い

そんな糞みたいなメソッドで判定するのは危険だからそういう癖は直した方がいい
入力内容を別の変数にでも突っ込んで書き直せ
2017/06/01(木) 03:09:51.62ID:aYvEaLjY
>>640
>ScannerのhasNextの処理の中で再度入力を読み込むようにしてる処理があるから
うおお・・・・・・マジか
根本的に変えないと不味いな
プロコンの所から引っ張ってきたけど、ヤバイ書き方だとは知らなかった
書き直すわ
2017/06/01(木) 03:21:14.59ID:ZW4TAEqu
書き直せとは言ったがあんな糞コードなんて誰も歯牙にもかけないレベルだから好きせぇやボケ
あと教えてやったんだから「ありがとうございました」って言え糞ボケ
2017/06/01(木) 03:39:42.54ID:aYvEaLjY
>>642
申し訳ありません
あまりの衝撃に素のネラーになってました

深夜に本当にありがとうございます
糞コードと言われないように、もっと良いコードを書けるように精進します
本当にありがとうございました
2017/06/01(木) 05:33:10.61ID:/JD/IgrT
礼無くてそんな頭にくるくらいならレスしなければいいのに
日常生活でも傲慢な態度してそうw
2017/06/01(木) 06:39:19.59ID:znDzbsA/
内弁慶の予感
646デフォルトの名無しさん
垢版 |
2017/06/01(木) 09:36:53.62ID:FovYQcy0
2ちゃん弁慶
647デフォルトの名無しさん
垢版 |
2017/06/01(木) 09:46:56.15ID:FovYQcy0
>>639
java.util.Scannerはデフォルトでは空白文字を区切りとするので改行では終わらない。改行も空白文字の内のひとつだから。
ではそのサイトではなぜ終わるのかというとおそらく入力をファイルからリダイレクトして読み込ませているためにファイルの終わりまで読み込んで終わっているんだろう。
これを標準入力がコンソールのキーボードになっている状態で実現するにはそのコンソールの設定にもよるが、多分WindowsだとCtrl+Zで、UNIX系OSだとCtrl+Zなのではないかと思う。
しかしやはりコンソール次第ではあるので何やってもダメかも知れない。
648デフォルトの名無しさん
垢版 |
2017/06/01(木) 09:54:54.45ID:FovYQcy0
間違えた。UNIX系OSはCtrl+Dだ。
2017/06/01(木) 20:24:47.86ID:hzk2NgYF
hasNextはEOFまでだね
647の手順でローカルでもできるしファイルからの入力でもいけるはず

礼無しで顔真っ赤のやつはずかしいな
2017/06/01(木) 23:03:41.54ID:vNOzF29i
Immutableなオブジェクト作るとき、Builderパターンを使うそうですが、↓のようなコードではダメなのでしょうか?
Builderだと、Mutableクラスのインスタンス作って、それを新たにImmutableクラスのインスタンス作って返してますよね?
↓のコードであれば、Mutableクラスのインスタンス生成1回で済むので、
Builderより省エネに思えるのですが、このようなコードではダメだから、流行ってないんですよね?

自分で見つけられた問題点は、mutableMemberDtoを書き換えると
immutableMemberも書き換わってしまうことです。ただ、これはそこまで大きいデメリットなのでしょうか?
他にも問題がないか、どなたかご指摘お願いいたします。
---------------------------------------------------------------
public class Main {
  public static void main(final String[] args) {
    final MutableMemberDto mutableMember = new MutableMemberDto();
    mutableMember.setName("javao");
    mutableMember.setAge(20);
    final ImmutableMemberDto immutableMember = mutableMember;
    System.out.println("His name is " + immutableMember.getName());
    System.out.println("His age is " + immutableMember.getAge());
  }
}
class ImmutableMemberDto {
  protected String name;
  protected Integer age;
  public String getName() {return name;}
  public Integer getAge() {return age;}
}
class MutableMemberDto extends ImmutableMemberDto {
  public void setName( final String name) {this.name = name;}
  public void setAge(final Integer age) {this.age = age;}
}
---------------------------------------------------------------
Builderパターンを参考にした記事
http://qiita.com/disc99/items/840cf9936687f97a482b
2017/06/01(木) 23:06:15.32ID:NqeRoS6b
>>650
そもそもImmutableの意味が分かってる?
分かってるなら大きいデメリットどころか無意味だということが分かるはず
2017/06/01(木) 23:32:03.74ID:vNOzF29i
>>651
わかんないです><;
教えて下さい>人<
2017/06/01(木) 23:42:20.35ID:NqeRoS6b
>>652
外側から絶対に変更できないというのがImmutable
この例だとMutableクラスの参照を保持しておくかMutableクラスかどうかを判別してキャストしてしまえばいくらでも書き換えられるのでImmutableではない
目指してるのはRubyのfreezeみたいなものだと思うからそんな感じのフラグ建てるメソッドを用意してセッター側でフラグ建ってたら例外返すようにしとけばいいかな
2017/06/02(金) 06:57:04.51ID:p54lEqX7
>>653
ありがとうございます!
てことは、ガチのImmutableにしかたったら、Immutableクラスをnewするしかないんですね
う〜ん、やっぱImmutableて地味にハイコストなんですかね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況