java

文字列比較を == して死亡どころか大爆死

public boolena empty(String s) { return (s == null) || (s == ""); } なんてJavaで書いちゃって死亡。 後者は "".equals(s) が正しいですね。すいませんマジすいませんでした。おのれJava!! とはいえ、JUnitでテストした関数だったんですよ。 問題ないじ…

OJTと題して実践投入させといて放置プレイさせといた結果がコレだよ!

とある新人の混沌魔書 (すてきなコード*1) class RozenSelectionChangedListener implements ISelectionChangedListener { private TableViewer table; (略) @Override public void selectionChanged(SelectionChangedEvent event) { ISelection selecti…

Map を iteration する際に思ったこと

Map<String, Object> map = HOGEHOGE; for(Map.Entry&lt;String, Object> entry : map.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); } こうしちゃう所ですが、 Map<String, Object> map = HOGEHOGE; for(String key : map.keySet()) { Object value = map.g</string,></string,>…

generic を組み合わせた Java さんの挙動がよく分かりません orz

static public <K, V> Map<K, ? extends List<V> > safePut(Map<K, ? extends List<V> > map, K key, V value) { List<V> list = map.get(key); if(list == null) { list = new ArrayList<V>(); map.put(key, list); // だめ // ↑The method put(K, capture#2-of ? extends List<V>) // in the type Map</v></v></v></k,></k,></k,>

public Void func(); って何返せばいいのかしら…

public Void func() { return …!? } という感じに、戻り値の型に void ではなく java.lang.Void クラスを指定した場合って何を返せばいいのか…。void だから放置でいいんだよね!? と、最初は思ったのですけれども、コンパイルしてみると「値返せよ。死ねよ…

Eclipse の TreeColumnLayout の使い方を間違っていて死亡

Tree を Table*1 のように見せかける為に、TreeColumn を利用して tree に ヘッダーを付けたりなんなりごにょごにょしたりするケースがあります。で、そのヘッダーの横幅ってのは、setWidth() で設定出来たりします……が、tree コントロールの大きさが変わっ…

やっぱり java の generic にムキムキしちゃうの - Genericな関数の型指定で死亡

class A<T> { static public interface IHashGetter<T> { public int getHash(T t); }; public A() { this(getDefaultHashGetter()); // ※↑コンストラクター A<T>(A.IHashGetter<Object>) は未定義です。 } public A(IHashGetter<T> getter) { // こっちが本線 } static <U> IHashGe</u></t></object></t></t></t>…

Eclipse プラグインで、動的に MenuBar に項目を追加する方法が分からなくて死亡中

Plugin.xml を書いて追加する方法は沢山出てくるも、Javaのコードからごにょごにょして *自前で Eclipse のメニューを追加する方法* が全く分からん…コードが公開されているとはいえ、何処を身りゃいいのかわからないよパトラッシュ… orz

Eclipse のレイアウトマネージャーの挙動がさっぱりさっぱりかしら(ムキムキしながら

help を兼ねて…(ぉ orz Eclipseな觶を知らない人への前説 widget ボタン・staic text 等、各種コントロールの総称。 composite 何にもないウィンドウ。static text (VC) とか、form (C#) とかに該当? この子として、widgetを配置していく。 table Windows …

プチ修羅場中に見つけたオーバーロードが出来なくてぐんにょりしてしまったケース

ソース import java.util.List; import java.util.ArrayList; public class a { class Kanaria{}; class Shinku{}; static void func(List<Kanaria> kana_list) { } static void func(List<Shinku> shinku_list) { } public static void main(String[] argv) { ArrayList<Kanaria> kana</kanaria></shinku></kanaria>…

javaに関数ポインタが無くて対抗した件に対する突っ込みに対するレス

ほんのちょっぴり(盛り上がった|大事になった)、1つ前のエントリー「Javaで関数ポインタチックなことがしたいよママン!」という話題。お二方からコード付きの突っ込みをいただきまして、大変勉強させていただいた感じで大変感謝であります。 そもそも何が…

javaの "郷" を知らないおいらは悩める子羊ちゃん - 関数ポインタがない事に対抗する

「オブジェクト と メソッド名の文字列を渡してリフレクションする」って、Javaのポリシー的にどうなんじゃろう……。 やっぱりあんまり良くないのかしら… class Food{ public void mix(Food f){}; }; class 乳酸菌 extends Food{}; class 卵焼き extends Food…

子クラスが親のprotectedなclassにアクセス出来ず - packageの癖がよくわからん

これはコンパイルおk Jum.java package makimaki; public class Jum<T> { protected class RozenMaiden { }; }; BigJum.java package non_makimaki; import makimaki.Jum; public class BigJum extends Jum<String> { public class Shinku extends Jum<String>.RozenMaiden { }</string></string></t>…

javaのGenericが めっめっ! すぎる - '総称配列' と戦った

Generic を使ったクラスを自前で創ろうとすると、とたんにいろんな所で詰まる…。 今回はコレに詰まりました class Dolls<T> { int m_n; abstract private class IRozenMaiden { abstract String getSuffix(); } class Suigintou extends IRozenMaiden { public </t>…

VC使いがJavaプログラミング中に起こした、ちょっぴりショッキングな出来事

気づいてみれば、文字列が _T( ) で囲われてた… [類似] C#利用者がJavaプログラミング中毎回やっちゃう、ちょっぴりショッキングな出来事 (カタカタカタ......) Javaでコーディング中 ArrayList<KanaObject> stlKanaList = ...; for(KanaObject kana in stlKanaList) ………</kanaobject>…

javaのenumの存在意義がよく分からなくなった

class a { enum ERozen { GIN, KANA, MIDORI; }; static final String[] m_astrNameList = { "水銀燈", "金糸雀", "翠星石" }; public static void main(String argv[]) { System.out.println(m_astrNameList[ERozen.KANA]); // ↑ERozen.KANA を int に変換…

参照渡しかと思ったのに値渡しでどうしようではない…?

class a { public static void main(String[] args) { Integer i = new Integer(0); func(i); System.out.println(i); // 0 } static private void func(Integer i) { i += 10; } } 出力 10 を期待したんですが、0 が出力される…。 Integer の i って参照渡…

Javaってなんて難しい言語なんだろう

// jdk5以上でコンパイルするんじゃ! class a { public static void main(String[] args) { // auto boxing Integer k1 = 20; Integer k2 = 20; Integer h1 = 200; Integer h2 = 200; // 値じゃなくてオブジェクトの比較 if(k1 == k2) System.out.println("…

java の enum の ビックリ仰天度は異常

SJC-P でもそのうち取得しようと、トイレの中で足がしびれるぐらい長時間書籍を読んでいた時に発見した(個人的に)ビックリしたjavaの文法。それは! enum Rozen { GIN, KANA, MIDO, AO; public static int ichigo = 6; public static int getIchigo(){ ret…

ラベルつき break / continue について勘違いしてたこと - とはいえ…

1個前のエントリー で「この break, continue 文法は無いだろう!」と叫んでみたわけですが、これは今まで C++ / C# を弄ってきた身として「この goto文もどきの文法は無いだろう!」と解釈していたためです。が、この解釈は正直間違っていました。 この構…

思わず涙が出てきた構文

public class test00{ public static void main(String[] args) { KANA_LOOP: for(int i = 0; i < 10; ++i) { if((i % 2) == 0) continue KANA_LOOP; System.out.println(i + "かしら〜"); } NANO_LOOP: for(int i = 0; i < 10; ++i) { if(i >= 5) break NAN…