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


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

☆★Java質問・相談スレッド179★★



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

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

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。

前スレ
★★Java質問・相談スレッド178★★ [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1466119015/

285 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 07:28:50.84 ID:KV+MzcfO.net]
そりゃ大人数のコード生産作業員でよってたかってつっつき回すためのもんだからな
並行作業の可能性を最大限に高めた結果だよ
少人数で開発するんなら全く用のない代物

286 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 09:15:16.50 ID:AprIhAhG.net]
spring使い方分からず挫折w

287 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 11:18:20.96 ID:ULTlBHaA.net]
Struts2の教本、リファレンス本って何かありますか?
オフラインで作業することになって紙媒体がどうしても必要なのですが…
お勧めあれば教えてください

288 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 20:42:38.20 ID:xi5DQ4Wq.net]
昔あったけど今もう手に入んねんじゃねえかな
本家サイトプリントアウトしてソース落としとけば大抵の事には対応できんじゃね

289 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 19:59:36.34 ID:+A6pO+1x.net]
下記のコードのようにHashMapのバリューの中にキーと同じ値が入ってる場合は
HashMapを使ってキーから取得するのではなく配列かListでループ回して一つ一つ参照した方がいいですか?

public class OuterClass {
enum TEISU {
ABC,
XYZ;
}
HashMap < TEISU, InnerClass > hashMap = new HashMap<>();
private class InnerClass {
TEISU teisu;
int a;
}
}

290 名前:デフォルトの名無しさん [2016/12/05(月) 21:22:50.35 ID:QSM/VTnr.net]
はい。

291 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 21:34:41.21 ID:avq6c4ls.net]
>>285
多くなった時に検索速度が遅くなっても良いからメモリ節約したいか、それともメモリは少々多く食っても検索速度を速度を一定にしたいかで決めれば良いのではないかな。
まあ、ハッシュ使っても変な風に片寄れば探す時に時間はかかるかも知れないが、頭から全検索するよりはましだろう。

どのぐらいの量のデータを扱うかにもよるかな。とても少ない場合はハッシュ使うと遅いなんてことも起こるだろうし。

292 名前:デフォルトの名無しさん mailto:sage [2016/12/06(火) 11:34:26.01 ID:2BRWQah0.net]
>>285
keyがenumならordinal()をindexにしてList使ってやるんでもいいし。

293 名前:デフォルトの名無しさん mailto:sage [2016/12/06(火) 12:11:22.06 ID:JFjd4rsO.net]
いやEnumMap使えよ



294 名前:デフォルトの名無しさん mailto:sage [2016/12/07(水) 23:37:44.20 ID:J4L2md49.net]
そういやenumの値をキーにするなら普通に考えて数は少ないな。

295 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 19:10:09.33 ID:o4YIlcAn.net]
メモ帳でコード書いてる学校で importするパッケージ・クラスがわからないと質問されそうです。その調べ方をどう教えたらいいのでしょうか?

296 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 19:18:50.52 ID:aI8hpPNX.net]
設計書

297 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 20:09:16.13 ID:0Kyij71T.net]
教える側もこれって斬新だな

298 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 20:13:16.98 ID:7h5Didi7.net]
眩暈しそうだな、大学ノートに鉛筆で書いた方が罫線ついてて見やすいのでは

299 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 20:25:24.21 ID:1Bl08ctB.net]
俺たぶんもうメモ帳じゃ書けないわ

300 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 20:40:08.68 ID:2dVIpL0u.net]
付箋紙貼っておく

301 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 21:10:42.33 ID:msYwe41j.net]
>>291
HTMLのAPIドキュメントでページ内検索して出せばいいんじゃない?

302 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 21:36:51.65 ID:/aGxLpEu.net]
>>291
そんなレベルの学校出た生徒なんてどうせ全員底辺コーダーになるんだから、
派遣先の人にサンプルコードを要求してそれをコピペしろと教えとけばいい

303 名前:デフォルトの名無しさん [2016/12/08(木) 22:41:23.16 ID:1SK2lmQA.net]
教え方としてまずはメモ帳とかの何の言語サポートもない環境で教えてから eclipse 教えるとかの順番の方が良いと思うがな。



304 名前:デフォルトの名無しさん [2016/12/08(木) 22:45:57.29 ID:xQ0mWXyc.net]
>>299
ジャップの根性論は聞き飽きた

305 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 23:28:17.90 ID:7h5Didi7.net]
教え方としてはまずJUnitとLog4Jが先だ
他は役に立たないしこっちも期待してない

306 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 12:27:05.59 ID:r0mVuZmk.net]
プログラミング作法的な話で、JAVAに限った話じゃないんですが文字列処理とかで

str = str.replace(".", ",")

みたいにreplaceを呼び出している側と代入される変数が同じって言うのは、あまり
良くないんでしょうか?
(あとは hoge = xxx(hoge, ',') みたいに引数に渡した変数に代入するとか)

307 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 12:37:25.09 ID:AhKNtohh.net]
>>302
問題ないよ

308 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 12:49:11.27 ID:bG1axWcs.net]
javaなら問題ない
Scalaとかの関数型言語なら出来るけど普通はしない

309 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 13:12:02.16 ID:a6CzUBh6.net]
代入という認識がおかしい
Stringはfinal宣言されていて都度newされている

310 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 16:16:33.29 ID:4Jkws6z8.net]
少しずれるけど、静的に初期化することができなければって前提がある
定数プールで同じ値のは同じインスタンス

311 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 17:38:11.06 ID:cu/yECuQ.net]
>>302
それで問題になる言語の方が珍しい

312 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 17:47:48.20 ID:NF/ns1Fr.net]
cはもはや珍しいほうの言語なのか

313 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 18:02:18.64 ID:cu/yECuQ.net]
>>308
C



314 名前:
> str = str.replace(".", ",")
なんて書けたっけ?
[]
[ここ壊れてます]

315 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 18:40:09.01 ID:NF/ns1Fr.net]
cだと例えばstr = replace(str, '.',',')と書いたときに
途中でエラーが起きると元のstrに対して後処理できなくてリークさせてしまうのは割りとありがち。realloc()が有名だね。
javaだとstrに代入される前に例外で脱出してしまうから問題ない。メモリ開放だけが後処理ならgcもあるしね。

316 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 20:12:45.16 ID:bG1axWcs.net]
>>310
どういうこと?

317 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 00:02:22.19 ID:8Sb6wlYA.net]
知ったか乙

318 名前:デフォルトの名無しさん [2016/12/12(月) 00:42:01.42 ID:38wEAVQO.net]
あー。realloc()で元の変数に入れちゃうとエラーの時に元のポインタわからなくなってfree()不能になるね。

319 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 08:22:13.13 ID:aLE+Z42Q.net]
>>313
設計不良と言えなくもないと思うが、メモリー不足になる状況だとどうしようもないケースがほとんどでそのまま exit( ) することが多いと割り切ったのかも知れない

320 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 09:22:29.09 ID:9WBUJW2A.net]
>>314
ま、確かにrealloc()でエラーになったらとうしろというのかって感じではあるな。結局exit()で終わるしかない。

321 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 10:14:14.98 ID:5QBCzTqI.net]
スレチばっかしてんじゃねぇよハゲ

322 名前:デフォルトの名無しさん [2016/12/12(月) 12:42:34.42 ID:LEnzGoNW.net]
禿げンダッツ

323 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 18:11:25.15 ID:dJt4p8RH.net]
デフォルトメソッドの導入を決めるまでの検討過程を見てみたいのですが、公開されている資料などあれば教えてください



324 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 11:06:37.15 ID:vFnJFYnV.net]
mail.openjdk.java.net/mailman/listinfo
にある lambda なんちゃらのアーカイブ見るとか。

325 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 12:04:32.20 ID:3igqgjKo.net]
dtoってビーンと何が違うんですか?
値つめこむだけですよね?
あとdaoってダオって読むんですか?ディーエーオーでもよいのでしょうか?

326 名前:318 mailto:sage [2016/12/14(水) 13:02:34.18 ID:l6x+gG1y.net]
>>319
ありがとうございます。

327 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 16:12:41.19 ID:4RpExEkV.net]
>>320
概念が違う
DTOはデザインパターン、BeanはJava Beans仕様

328 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 23:36:54.13 ID:aYwhkQ/I.net]
JavaDoc作成時に作成する対象をアクセス修飾子以外で指定する方法はないでしょうか?
具体的にはstaticでないフィールド(事実上全てprivate)のみを出力したいのですが。

Jaxbで使用するXMLファイルのリファレンスを作りたい
→XMLやXSDを基にJavadocのようにリファレンスを作る方法を探すが見つからない
→XMLの要素は全てJavaクラスにマッピングされるからJavaDocで代用できるかも!
→XMLを作るだけの人から見れば要らない情報が多すぎてわかりにくそう
→JavaDocの出力項目の調整できないかなぁ    ←イマココ

と思い至った次第です。
自分でも変な質問だとは思うのですが、よろしくおねがいします

329 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 00:39:41.36 ID:V7DRptyX.net]
DoxygenでXMLフォーマットで出力してXSLTで表示したら

330 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 09:01:30.75 ID:XoYGRdtd.net]
RuntimeException(とその派生クラス)について
メソッド内で↑がthrowされる場合に、メソッドのthrows句に書いても書かなくてもコンパイルエラーになりませんが
省略するのとしないのどちらが一般的でしょうか?

331 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 10:08:17.35 ID:B3hFk1jH.net]
>>325
書かない
RuntimeExceptionのJavadocに説明されてるから読め

あと自分でRuntimeExceptionを投げるならJavadocの@throwsにはどんな時にどの例外を投げるのか必ず書いておけ

332 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 12:47:18.08 ID:tqcky6y/.net]
>>326
ありがとう
javadocのthrowsは勿論書いてます

333 名前:323 mailto:sage [2016/12/15(木) 22:04:39.91 ID:FfmBFsSz.net]
>>324
ありがとうございます。
DoxygenやXSLTを確認してみましたが、結構ハードルが高そうなので断念しました…

自前でJavaDoc的なHTMLファイルを出力する仕組みを作ってみようと検討中です。
はっきり言ってJavadocの凄さを身にしみて感じています…



334 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 00:19:49.58 ID:oD0nT6zl.net]
>>328
んなことするくらいならDoxygen使ってXMLにしてから
自作ツールでXML→HTMLの変換をやったほうが楽じゃないか?
XSLTのハードルが高く感じるのはわかるがDoxygenなんか普通に使うだけだろ

335 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 00:50:35.39 ID:hOA+S1Bc.net]
アホだろ、ほっとけ

336 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 21:54:24.30 ID:4hbUMcUq.net]
>>329
Doxygenは色々とインストールするのがハードル高そうで…

クラスからHTML作ってたのは単純にアホでした。
XSDがあるからそっちから作ったほうが100倍楽でした…

337 名前:デフォルトの名無しさん [2016/12/19(月) 02:44:46.91 ID:qrKF+qyJ.net]
String str =

338 名前:デフォルトの名無しさん [2016/12/19(月) 02:45:37.54 ID:qrKF+qyJ.net]
あれ

339 名前:デフォルトの名無しさん [2016/12/19(月) 02:46:02.48 ID:qrKF+qyJ.net]
エラー: シンボルを見つけられません
シンボル: メソッド parseInt(String)
場所: クラス Integer

となるんですが原因がわからず困ってるので教えてください。
バージョンは8です

340 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 08:13:30.97 ID:iGBlQxB0.net]
>>334
自分でIntegerクラスとか作っちゃって、java.lang.Integerが隠

341 名前:されちゃってるんじゃね?

class Test {
public static void main(String[] args) {
System.out.println(java.lang.Integer.parseInt("334");
}
}

これだとどうよ。
[]
[ここ壊れてます]

342 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 10:12:42.53 ID:iGBlQxB0.net]
かっこが一個抜けてることに今気付いた
System.out.println(java.lang.Integer.parseInt("334"));

343 名前:デフォルトの名無しさん [2016/12/19(月) 12:03:16.65 ID:8oGZdC3n.net]
>>335
ありがとう、java.lang.部分が抜けてました。。
import忘れだった



344 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 12:22:14.46 ID:dGFRD1NA.net]
JAXBで下記のようなクラスを扱う場合、どのような指定にしたらよいでしょうか

class Data{
PhoneNo phone1
PhoneNo phone2
}
abstract class PhoneNo{
String number
}
class FixPhoneNo extends PhoneNo{省略}
class MobilePhoneNo extends PhoneNo{省略}

条件としては
○どのフィールドに対してセットしているかをxmlで明示したい
○どのクラスにマッピングされるかをxmlで明示したい
○できれば標準のJAXBで…
です
リストであればXmlElementWrapperでなんとかできたんですが…

345 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 14:23:03.95 ID:TWjb/FW7.net]
>>332-333
2chのバグだろう

書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" の代わりに、\" とエスケープすれば、どうだろう?

それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった

346 名前:デフォルトの名無しさん [2016/12/19(月) 16:01:51.76 ID:C2gHCNQF.net]
test=

347 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 20:30:01.47 ID:yx8yGp0N.net]
"

348 名前:デフォルトの名無しさん [2016/12/19(月) 20:44:54.19 ID:YHR5Ghte.net]
>>337
え?java.langはimport書かなくてもいい筈だが。

349 名前:デフォルトの名無しさん [2016/12/22(木) 13:13:50.00 ID:h0so1B2S.net]
singletonパターンは状態を持たない(immutable)クラスにしか使えないと聞いたのですが
これはマルチスレッドでの話で、シングルスレッドの場合はimmutableにする必要はありませんよね?

350 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 13:37:04.69 ID:gNaPdTdq.net]
>>343
なんか勘違いしてないかな?
Singletonは唯一のインスタンスを表現するときに使うのであって、それが状態を持つ持たないは関係ないというか普通に状態を持つだろ

マルチスレッド云々はその唯一のインスタンスを作るときに一工夫が必要というだけの話

351 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 14:03:18.86 ID:6Gi9DgtV.net]
Javaプログラマって、よく理解してもいないくせに変数がスレッドセーフだの何だのとスレッドについて訳の分からないことを抜かす奴が多いよな
誰に毒されたのか知らないけど、Javaでスレッドセーフだからどうのと言ってる奴がいたら疑ってかかるようにした方がいいよ
スレッドセーフであるか否か自体が直接問題になることなんてほとんど無いから、大抵は頓珍漢なことを言っている

352 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 14:14:34.96 ID:u+X4Mbv/.net]
おまえもな、素人さん

353 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 14:16:25.84 ID:1GV1Zp9H.net]
1990年代からタイムスリップしてきた奴なのかもしれないだろ



354 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 14:24:37.19 ID:GmJMxsCJ.net]
Javaは伝統的にわりと安易にスレッドを使う文化がある
Javaプログラマの平均スキルが他と比べてどうかはともかく、スキルの低い人もスレッドに触れざるを得ないことが多いので
とりあえずsynchronizeしとけば「スレッドセーフ」っていうのになるんでしょ?
みたいなのは実際多い

355 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 15:05:56.47 ID:E9q4nGYk.net]
いや、Javaに限らずだと思う
マルチスレッドが大変だ!と騒いで見せる輩も
カップ麺握り締めて「これ食っとけ」的主張してるにすぎない
麺っていうのはこうでね
スープってのはこうでね
何も怖がることは無いね
って論調はほぼ見られない

356 名前:デフォルトの名無しさん mailto:sage [2016/12/ ]
[ここ壊れてます]

357 名前:22(木) 15:22:07.30 ID:u+X4Mbv/.net mailto: パーには分からんだろう []
[ここ壊れてます]

358 名前:デフォルトの名無しさん [2016/12/22(木) 16:20:17.22 ID:OgMG3ild.net]
2ちゃんにもスレッドがあるのです。

359 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 19:08:14.31 ID:mDlraXyL.net]
もう随分前から「とりあえずimmutableにしとけ」にシフトしてると思う。

360 名前:デフォルトの名無しさん [2016/12/24(土) 06:06:58.25 ID:oKfujRAW.net]
質問です
Scannerを使って標準入力させたいんだけど、最終行がカッコか否かに依存しない書き方を教えて欲しいです

やりたいこと:入力された値の最大値だけを出力
例(便宜上改行を\nと表記します)
入力:
1\n
2\n
3(\n)
出力:
3

3の後の\nがあろうがなかろうが同じように出力したいです。お願いします
ちなみに入力は一回一回エンターを押すのではなく、
1
2
3
をまるっとコピペしてから一回だけエンター押すイメージです

361 名前:デフォルトの名無しさん [2016/12/24(土) 07:01:56.03 ID:MvzacMfS.net]
>>353
hasNextInt() と nextInt() 使えばいいのでは?

362 名前:デフォルトの名無しさん [2016/12/25(日) 12:11:25.04 ID:/R0IoCKS.net]
>>353
へい

Scanner scanner = new Scanner("1\n2\n3(\n)");
Pattern intPattern = Pattern.compile("(\\d+).*");

while (scanner.hasNext()) {
 Matcher intMatcher = intPattern.matcher(scanner.next());

 if (intMatcher.find()) {
  System.out.println(intMatcher.group(1));
 }
}

363 名前:デフォルトの名無しさん [2016/12/28(水) 23:45:26.72 ID:lebcDiwS.net]
勉強している者ですが
インターフェイスがフィールドは必ずpublic static finalになるような仕様になっているのは
どういう理由からですか?

別にstaticじゃなくてもよさそうだし
必ずfinalにしないといけないのも不自然と感じるのですが。



364 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 23:58:45.55 ID:+cXdtPI1.net]
何を勉強してそんな話が出てきたんだ?

365 名前:356 [2016/12/29(木) 00:18:08.48 ID:WkynARab.net]
Javaを勉強してです。

366 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 01:22:03.23 ID:ICm4kcbN.net]
無駄に複雑になるからだよ
フィールドが多態性を持つとなると仮想メソッドならぬ仮想フィールドアクセスみたいなものが必要になる
static final なフィールドはインスタンスメンバじゃなくて単なる定数だから、
実質的にはどこか他のクラスに定数を定義するのと変わらんので特に害はないというわけ
害はないけど特に必要性もないので、C#だとインターフェース内では一切フィールド使えなかったりする

367 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 01:59:20.86 ID:30kHN7oe.net]
単なる定数に、インタフェースの名前空間を使って、区別しているだけ

元々、インタフェースにフィールド(メンバ変数)は持てない。
関数の実装も持てない。
つまり、メモリを割り当てるようなものは持てない

インタフェースとは単なる、マーカー・決め事。
実装先で関数を実装するという、ルールを強制する仕組み

368 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 09:41:30.42 ID:ICm4kcbN.net]
細かいけどインスタンスメソッドはインスタンスにメモリを割り当てないぞ
インスタンスメソッドは実際にはインスタンスではなくクラスに属していて、インスタンスの型情報を基に各クラスのメソッドを検索する
フィールドも同様にまずクラスを見てアドレスを求めればいいのでやろうと思えば技術的に難しくはないはずだよ
Java設計者が実装コストに見合ったリターンがないという判断をしただけ

369 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:05:00.66 ID:NJpH4t/4.net]
>>361
> Java設計者が実装コストに見合ったリターンがないという判断をしただけ

その判断をした経緯を見ることができるサイトありますか? 書籍なら書籍名を教えてほしいです

370 名前:デフォルトの名無しさん [2016/12/29(木) 16:31:49.50 ID:1pBIOXSt.net]
interfaceがデータメンバー持てたらただの多重継承と一緒になるじゃん。
なぜJavaが多重継承を禁止してるかを調べた方がいい

371 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:35:12.28 ID:ICm4kcbN.net]
>>363
フィールドも宣言と実装を分ければいい話

372 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:36:06.13 ID:+/EAw155.net]
インターフェースは多重継承できるんだぜ
普段使わないけどな

373 名前:デフォルトの名無しさん [2016/12/29(木) 16:42:38.39 ID:1pBIOXSt.net]
>>364
そうする事に何か意味あんの?



374 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 16:49:31.22 ID:k+96c2nT.net]
>>365
あれってjava8のmapメソッドとかの互換残すためだっけ・・・
拡張メソッドを実装するとか、Java8ListみたいなListインターフェイスを継承したインターフェイス作るとか何か方法はあったと思うけどな

375 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 21:51:19.05 ID:30kHN7oe.net]
C++では、多重継承・ダイヤモンド継承がある

P ← A
P ← B

親クラスPを継承したクラス、A, B を同時に継承すると、
Pのメンバ変数の部分が、2重に確保される

P.x があるとき、A.x, B.x でアクセスすると、異なるメンバ変数になってしまう。
結局、多重継承はややこしいから、多くの言語で禁止された

インタフェースでは、メンバ変数を持たないから、こういう問題は起きない

376 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:12:51.66 ID:ICm4kcbN.net]
>>368
理解が甘い。
それだけの理屈だとメソッドもインターフェースに宣言できなくなっちゃうぞw
インターフェースで多重継承の問題が回避できる理由は、
インターフェースのメソッドは宣言のみで実装を持たないので、
継承階層上で同一のインターフェースがいくつ重複して継承されてようが
最終的にメソッドの実装は一つだけになるから。
そして、君はフィールドの宣言と実装は不可分であるという前提を暗に設けているけど、
C/C++のようにフィールドの宣言と実装を分離できる言語も存在する。
Javaがそうしなかったのは「そう判断したから」に過ぎない。

377 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:15:56.04 ID:y5tb/iei.net]
>>369
全然違う
メソッドは上書きして消してしまえばいいが、データだと面倒

378 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 23:23:19.66 ID:uVQYMOXa.net]
くだらねー言い争いの様相を呈してきたからそれ以上はここでやるなよ
でないと殺すぞ

379 名前:デフォルトの名無しさん [2016/12/30(金) 00:51:34.31 ID:h6FEfUa+.net]
>>363
土方に多重継承が使いこなせるわけないやろ。

380 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 01:10:45.64 ID:zRXiBWIE.net]
scalaのミックスイン好き

381 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 07:30:07.75 ID:rm5LlQ1U.net]
1日10レスもつかないこのスレでちょっとした議論を目の敵にするとかw

382 名前:362 mailto:sage [2016/12/30(金) 19:09:43.37 ID:OiZO02Sd.net]
出典を知りたかったんですがご教示いただけませんか

383 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 20:26:08.40 ID:xy7ekZk9.net]
実装コストというより、javaは混乱の原因になる構文は制限している
C#の場合条件付きでポインタ使えるけどjavaは使えなかったりするし



384 名前:デフォルトの名無しさん [2016/12/31(土) 00:38:21.18 ID:DQemjRmJ.net]
PとかAとか書かれるとPPAPが思い浮かんでしまう

385 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 09:01:04.95 ID:EtOYLbeq.net]
I have a jvm I have a func lang ah scala.






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

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

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