Java

The Get and Put Principle

『Java Generics and Collections』本の項目2.4のまとめ。 ワイルドカード使用に関する原則: 値をgetする場合は、extendsワイルドカードを使用 値をputする場合は、superワイルドカードを使用 getとput両方行う場合は、ワイルドカードを使用しない まずGene…

ローカル変数の具象、抽象

航海日誌: 静的型付け言語で,型は最後にダウンキャストしろ (http://cappuccino.jp/keisuken/logbook/20080304.html#p01) ここをエントリポイントとして、keisuke_nさん、kwatchさん、odzさん、lethevertさんが色々議論している模様。勉強になる。大雑把に…

キャストのタイミング

odz buffer: Genericsとcast (http://d.hatena.ne.jp/odz/20080221/1203611137) cast が入るのはメソッドを呼ぶ側であって、実装側ではないです。 やっと理解できました。odzさんありがとうございます。 それにしてもJavaのGenericsは貧弱すぎる。呼び出し側…

キャストの仕組み

昨日のつづき。 odz buffer: Generics と template (http://d.hatena.ne.jp/odz/20080220/1203513392) 昨日の日記に対してodzさんがコメントしてくれたみたいで、TがObjectになってしまう理由は分かった。以下、自分の理解。 仮にTがDuck型しか受け取らない…

Java GenericsによるDuck Typing

3-c1. Template in D: Duck Typingみたいなもの (http://www.kmonos.net/alang/wnd/topics/template.ja.html#duck) JavaのGenericsで同様なことをやろうとした。 class Duck { public void quack() { System.out.println("gaaa"); } } class Foo { public vo…

"汎用配列を作成します"エラーと戯れる

どう書く?org: アレイのuniq (http://ja.doukaku.org/comment/1029/) import java.util.Arrays; import java.util.LinkedHashSet; public class Unique { public static Object[] toUniqueArray(Object[] array) { return new LinkedHashSet(Arrays.asList(a…

Javaのニーズ

最近『Java Generics And Collections』でJavaを少しずつ勉強している。自分の知識は1.4で止まっていたが、1.5でGenerics周辺が言語仕様に入ったことによりコードが格段にすっきり書けるようになった。グラフィック関係を勉強したいが、書籍もたくさん出てき…

ワイルドカードを使ったイミュータブル

色々検索していたら、ワイルドカードを使ったイミュータブルという面白そうな話題を見つけた。以下で紹介されている本は、洋書の『Java Generics And Collections』という本みたいだが結構面白そう。 るいもの戯れ言: Java Generics and Collections (http:/…

sort (3)

今までのまとめ。パフォーマンスのために複雑さを犠牲にした狂気の沙汰言語Java。C++もよく分からないが、GCと文字列クラスによりC++よりだいぶマシなのだと思う。C#との比較は気になるところ。 配列は要素数が固定となるが、使用メモリが少ない。 ArrayList…

sort (2)

import java.util.*; class test { public static void main(String[] args) { ArrayList L = new ArrayList(); L.add("a"); L.add("c"); L.add("b"); System.out.println(L); } } /* 実行結果 */ [a, c, b] また少しだけ調べた。今日は出張で時間ないので少…

sort

Javaをこれから再勉強しようと思っている。『Head First Java 第2版』のサンプルPDFを見たのをきっかけに、sortを少し調べたが、sortはArrayListクラスには存在せず、2つのクラスメソッドを使う。配列の場合java.util.Arrays.sort()で、コレクションの場合…

Java 3D API

最近あるソフトを見たのがきっかけでJavaでGUIを作ることに対して肯定的な見方になっている。3Dグラフィックをやる場合もPython-Ogreも良さそうだが、信頼度や情報の多さを考えるとJava3Dを使うのは結構良いのではないだろうか? 以下、気になった書籍。 『P…

NVIパターン

メモ。下のリンクのコメント欄のNVIパターンのところを後で勉強するつもり。 気になったネタリンク: 独自言語 続 (http://d.hatena.ne.jp/kanoke/20071105)

Javaのオープンソース化

ついにJavaがオープンソース化。しかもGPLとは驚き。 http://d.hatena.ne.jp/t_yano/20061113/1163440273 Javaがオープンソース化して面白くなりそうな気もするが、でかい言語だし、色々手を出していると中途半端になるので、やはり勉強する言語は、Pythonと…