キャストを明示的に行うコードを書くとか2週間に1回くらいですよね?ただしfindViewById、テメーはダメだ…!!Androidだと結構頻繁にキャストするハメになって苛立ちがマッハ。
2011-06-15 13:26:20キャストって何がだめなのか教えてよ先生 RT @vvakame: キャストを明示的に行うコードを書くとか2週間に1回くらいですよね?ただしfindViewById、テメーはダメだ…!!Androidだと結構頻繁にキャストするハメになって苛立ちがマッハ。
2011-06-15 13:27:35呼び出し側ではキャストしないけど呼び出され側で自動キャストするようなライブラリコードをたまに書いて罪悪感に駆られたりはする。
2011-06-15 13:31:28@R246 実行時にキャストした時にClassCastExceptionが発生する可能性があるのはバグの顕在化が遅いのでよくないです。毎回 instanceof でチェックするのはめどいです。なんで、Genericで制限を書けてコンパイラにチェックさせて楽するです。とか?
2011-06-15 13:36:05@vvakame んーんー?ClassCastExceptionが発生する時ってプログラマの不注意だと思うんだけど、それを防ぐのがGenericとかの制限ってことでいい?それはそれとして、キャストがダメってのがよく分からないっす
2011-06-15 13:45:04@R246 そもそも"ClassCastExceptionが発生しないようにする"という努力が古臭い感じですね。Genericの制限を受け入れることで、コンパイルエラーという形でClassCastExceptionが自動で検知できるようになるので楽しようよ、っていう。
2011-06-15 13:47:12@R246 なんで、機械的にチェックできる例外をアプリに忍び込ませうる"キャスト"という操作は基本邪悪だよね。っていう立場です。Androidの場合キャストしないとどうにもならん局面が多すぎて生きてるのが辛い…。って感じです。
2011-06-15 13:48:00@R246 一般的な労力では出来ないですね。Generic使わない限りコンパイラが検知してくれない(エラーにならない)ので、キャストが必要な所で毎回if( obj instanceof Hoge ) とかせにゃならんです。後は警告してくれるツール導入するとか…。
2011-06-15 13:56:19@vvakame なるほど。さっきのAndroidだとキャストしなきゃいけないって局面みたいに、Genericじゃ解決できない場合はどうすべき?Javaバージョン下がるとか、言語がJavaじゃないとか
2011-06-15 14:01:45@R246 仕方ないからキャストします…(´ω`) か、自分でキャスト不要なライブラリ(ライブラリ内ではキャストしまくり)を作って、ライブラリがバグってなければ安全に使えるようにするか、とか。 まぁ僕の言い分は使う言語を自由に選べる場合の意見ですね。
2011-06-15 14:03:33@R246 OKというか、自分がコード書くときにキャストするのはダサい。危ないし。っていう"これからやること"ベースの気持ちなので、十分にテストされたライブラリがキャストを隠蔽してくれるなら僕から見える世界ではキャストがないからそれでいいんだよあははは(゚∀゚)っていう感じっす。
2011-06-15 14:12:34