日々常々

ふつうのプログラマがあたりまえにしたいこと。

Java

「xs.size() == 0 と xs.isEmpty() の違い」のツイートより

今日は教育資料にブチきれて xs.size() == 0 と xs.isEmpty() の違いについて新人の子に熱く語ってしまった。教育資料と違うことを言って混乱させて申し訳ない2012-09-06 22:34:07 via atig.rb @keita44_f4 サイズ取ると、例えばxsがリストだったりすると、…

nullを安易に使わない

if (list.size()>0) { return list; } else { return null; }やめてそのまま返して空リストお願いだからnullとかにせんといて。2012-07-19 17:32:50 via Echofonツイートのままなんだけど。 メソッド呼んでリスト貰ってforでぐるぐる回す、なんてことはよく…

オーバーライドとstaticメソッド

こんなコードがあって。 public class Hoge { public static void main(String[] args) { C c = new C(); c.method(); } } class A { static void method1() { System.out.println("A method1"); } void method2() { System.out.println("A method2"); } } c…

assertEqualsよりassertThatが好きなわけ

assertEqualsよりassertThatが好きなのは、Matcherもあるけど、引数の順番に悩まないからです。英語として云々なんてどうでもいい。。。。2012-07-13 00:07:14 via YoruFukurou元ネタ*1は「xUnitよりRSpecがいいとか言ってたひとは英文ぽいのがいいとか言っ…

親クラスのstaticメソッドを素知らぬ顔で呼ぶの

class SubClass extends SuperClass { void fuga() { hoge(); } } class SuperClass { static void hoge() { // なんか } } こんなのもし書いてたら今すぐやめれ。

速習Collections

Collectionsをさっと紹介してみようと思って作ったので、晒し晒し。きっと世の中には超便利なものがあふれてるんだけど、OSSを使えなかったり、そもそもネットに繋がらない環境だったり、色々と理由があってその辺りのエコシステム*1が使えない状況はありま…

JavaとC#のコンストラクタさん

おしごとでJavaとC#を同時に使うことになってたりしまして、C#の知識不足のせいで「同じようなことをやれば良いだけ」みたいなこと言われてもぐぬぬしちゃう今日この頃です。そんな中から、コンストラクタさんのお話。参考:#51 コンストラクタと継承 « C# «…

キョウミタコード

List list = hoge(); if (list.size() >= 1) { for (Object o : list) { // hoge } } ぱっと見て isEmpty 使えよと思ったけど、そもそも if 要らない…。 Annotation annotation = clz.getAnnotation(HogeAnnotation.class); if (annotation != null) { // an…

TestNGのテストコードをJUnitで実行する

ふぐ鍋で忘年会と言う事で、例により開始5時間前くらいに集まって雑談してました。例により無駄に濃い内容でしたが、その中でも気を引いたのがうらがみさんのお話で、O/Rマッパーのそれぞれに対してテストコードを書かれてました。欲しくなったので*1鍋食い…

classファイルを触ってはいけない

(注意)触ると言ってもバイナリエディタで触るとかではありません! まずこういうクラスがあります。 // Hoge.java class Hoge { static final String foo = "foo"; static String bar = "bar"; static final Object baz = "baz"; } そして、これらのフィー…

JUnitの知識を棚卸し #JJUG

Java Advent Calendar 2011の16日目です。 前:JSFUnitでテストしよう! | Kokuzawaの日記 次:JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう 書いてること JUnit の話です。使い始めからちょっとだけ踏み込んだ辺りですかね。ちょっとだけ…

リストを項目ごとに集計する

2015/5/3 に続きっぽいのを書きました → リストを項目ごとに集計する - Java8ばーじょん - 日々常々 データをコードごとに集計することってのは結構よくあります。例えばこんなデータを… code name value A01 hoge 100 A01 piyo 200 A02 hoge 300 A03 hoge 4…

メソッド名を日本語にする話

Javaでもメソッド名とか*1に日本語が使えます。使えない文字*2もありますけど、とりあえず置いておきます。 public void あいうえお() { // なんか書く } 流石にプロダクトコード*3で日本語メソッド名などを使う事はまずありませんが、テストコードで書くと…

やきに駆動 秋のJava祭典スペシャル in 大阪〜こりん星 #yakiniku4j のメモ

やきに駆動 秋のJava祭典スペシャル in 大阪〜こりん星 : ATND やきに駆動 秋のJava祭典スペシャル in 大阪〜こりん星 #yakiniku4j - Togetterまとめ ブログ 焼肉食べるついでにJavaの勉強してきた | 言葉をポッケに持ち歩こう @daisky 「やきに駆動 秋のJav…

JavaOne 2011報告会 at 大阪のメモ

JavaOne 2011報告会 at 大阪 : ATND JavaOne 2011報告会 at 大阪 #kanjava - Togetterまとめ 行ってきました。去年の関ジャバが思い出されます。もう1年以上経ってるんですねーとしみじみ。少しは成長出来てるだろうか…。 JavaOne 2011 サンフランシスコの最…

TreeSetにnullをaddする話

Java で TreeSet に null を add すると NullPointerException になります。*1 Airof:~ irof$ groovysh Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 Groovy Shell (1.8.2, JVM: 1.6.0_26) Type 'help' or '\h' for help. -----------------------------…

MacでJava7でGroovyConsoleのメモ

参考 Mac OSXにOpenJDKをインストール #openjdk #java7 - #侍ズム openjdk-osx-build - OpenJDK 7 and 8 Community packages for OS/X Snow, Lion and Mountain Lion - Google Project Hosting あ、そうそう。MacBookAir買ったんですよ。Twitterでは言ってま…

Java7でmainメソッド無いクラスが実行できなくなった

前書いた気がするんだけど見当たらないから書いておきますね。 PS> java -version java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode) PS> cat Main.java class Mai…

関ジャバカンファレンス2011に行って来ました

Java SE 7 Launch イベント全国キャラバン開催 | 寺田 佳央 - Yoshio Terada 関ジャバカンファレンス2011 : ATND 関ジャバカンファレンス2011 #kancon2011 - Togetterまとめ 関ジャバカンファレンス2011〜Java SE 7 Launchイベント全国キャラバン〜 発表内容…

equalsだけをオーバーライド

何と比べても同じって言うクラスAがあって。 class A { @Override public boolean equals(Object obj) { return true; } } こうすると? Collection set = new HashSet(); Collection list = new ArrayList(); set.add(new A()); set.add(new A()); list.add…

HashSetでequalsとhashCodeを使った問題

以下のコードを実行したらどうなるか。(1) Set set = new HashSet(); set.add(new Object()); set.add(new Object()); System.out.println(set.size()); (2) class A { public boolean equals(Object obj) {throw new RuntimeException();} } Set set = new …

大阪EffectiveJava読書会 第2回 やりました

大阪EffectiveJava読書会 第2回 : ATND 第2回 Effective Java 読書会 - Togetterまとめ Androg: 大阪EffectiveJava読書会 第2回に参加しました。 一回目に続いて二回目やりました。回数は増えていきますが、内容は別に引きずらずに飽きるまでやろうと思いま…

素数かを調べる

今日は11日です。 11は素数だから今日は素敵な日です。2011-05-11 08:51:19 via Echofonでも11が素数かは不安なので、本当に素数かどうか調べないといけません。 Javaでやってみる public class Main { static int value = 11; public static void main(Stri…

リフレクションでprivateをテストしてみる

発端 private メソッドをリフレクションで無理矢理テストする方法を覚えた!! 不可視のクラスに対しても同じように出来るのかな?2011-04-26 23:49:55 via TweetMe for iPhone@meganii さんのつぶやきが発端。不可視クラスってことは…privateクラスと無名クラ…

enumあれこれ

EffectiveJava読書会で意外とenumネタで需要がある気がしたので、ちょっと書いてみます。内容的に目新しいものは無いはずの事を書きますので、理解されている方はツッコミ所探しでもしてください。 読み方 enumは enumerate か enumeration が語源になってる…

大阪EffectiveJava読書会 第1回やりました

ATND http://atnd.org/events/14722 Togetter http://togetter.com/li/124994 なんか気がついたらやる事になっていた「大阪EffectiveJava読書会 第1回」ですが、参加者の皆様のお陰で無事終了しました。ありがとうございました。読書会に参加した事も、勉強…

大阪EffectiveJava読書会をやります

http://atnd.org/events/14722 2011/04/17(日) 15:00-18:00 です。 EffectiveJavaを読み返そうと思ったら、何故か読書会になってました。「こんなノリで大丈夫なのか?」と思ったりもしましたが、きっと何とかなります。参加される方も気楽にお願いします…

Javaっぽいプログラマになる方に薦める5冊

いきなりぶっちゃけますが、5冊で足りる訳がありません。でもいきなり難攻不落の城を見せ付けられても困ります。数が多いとそれだけで「うわ、こんな読まないといけないの!?」と思ってしまうものです。なので、私がこれまで読んできた本の中から5冊だけピ…

String の連結ネタの続き

以下のコードはどうなるでしょう。こたえは一番下。 String str = null; str += new Object(); System.out.println(str); http://d.hatena.ne.jp/irof/20110305/p1 の続きっぽい何か。 引っ張りすぎだと思わなくもありませんが、思うところは書いておこうと…

フィールドの隠蔽

http://d.hatena.ne.jp/irof/20110305/p1 でコメント頂いたネタ。 ちょっとしたクイズになるのかな。どんな結果になるか難なく判るなら、初心者*1からは脱していると思います。難なくじゃなくても、悩めるならたぶん大丈夫です。 public class Quiz { public…