- PR -

Java5の言語拡張は使ってますか?

投票結果総投票数:37
両方バリバリ 9 24.32%
Generics 15 40.54%
Anotation 1 2.70%
それ以外の拡張forとか 1 2.70%
1.5だけど1.4互換 3 8.11%
1.4以前 8 21.62%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
a-san
ベテラン
会議室デビュー日: 2004/06/01
投稿数: 53
投稿日時: 2006-12-15 23:44
Java6がついに出ましたね。

Java5の言語拡張は使ってますか?
特に、GenericsとAnotationについて知りたいです。

私は未だに1.4。プライベートで使う場合は1.5だけれど、言語拡張は使っていません。
みなさんはどうですか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-12-16 00:03

  • ジェネリクス
  • オートボクシング
  • 拡張for文
  • 可変長引数
  • 列挙型

を使っていますね。
アノテーションは無限の可能性を感じつつも有効利用できていません。

個別のクラス・メソッドでは

  • java.lang.StringBuilderクラス
  • java.util.concurrent.atomic.AtomicIntegerクラス
  • java.lang.Iterableインターフェース
  • java.lang.System.nanoTime()
  • java.lang.Boolean.compareTo()
  • java.io.PrintWriter.format()
  • java.lang.Thread.getStackTrace()
  • java.util.Arrays.hashCode()

といったところにお世話になったかなぁ。
いまんところ思いつくのはこのぐらい。
言語仕様の変更にばかり目が行きがちですが、
便利なクラス・メソッドが増えているのも見逃せません。
大ベテラン
会議室デビュー日: 2006/06/28
投稿数: 116
投稿日時: 2006-12-16 02:32
私もa-sanと同様の状況で、プライベートでしか5を使用したことがありません。
最近5を使用し始めたばかりなので、その環境ではGenericsを使用するようになりました。
Anotationについては実際の使用感どうなんでしょう。自分は理解していないので気になります。
なんだか、デコレータなのかアノテーションを重ねて設定してるような……
それ自身に名前の付けられるハッシュのようにも見えますし…
多分使えれば便利なのでしょうが理解が追いつきそうにないです。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-12-16 02:42
nagiseさんも挙げている機能は一通り使っていますが、
他にも共変戻り値もよく使います。

コード:
interface Hoge{
    Number getNum();
}

class HogeImpl implements Hoge{
    public Integer getNum(){
        return 0;
    }
}


と、戻り値型が完全一致ではなく型互換でよくなったので、よく使うようになりました。
インターフェイスと実装を分けて書くことが多いので、本当に重宝します。


アノテーションは最近業務でも使っています。
例えば、業務ロジックにログインが必要であるかのアノテーションをつけるとか、
パッケージアノテーションでリソースの位置を定義するとか。
色々使い道はあるのですが、ローカル変数のアノテーションだけは
全く使い道が浮かびません。多分コンパイラ向けですね。

JDK6ではAPTとコンパイラがAPIに含まれるようになったので、
ランタイム以外のアノテーションの使い道も多くなりそうです。
Jaune
会議室デビュー日: 2006/12/02
投稿数: 16
投稿日時: 2006-12-16 03:01
私もnagiseさんの挙げられている機能を一通り使っています。
特に「拡張for文」はもう手放せません。これを使いたいが為に
ジェネリクスを使用しています(少し言いすぎかも)。
後は「static のインポート」をちょこちょこと・・・
アノテーションについては @Override, @SuppressWarnings と
Junit4.1 のアノテーションはよく使いますが
業務独自のものや自分で作ったことはないですね。。。


[ メッセージ編集済み 編集者: Jaune 編集日時 2006-12-16 03:08 ]
大ベテラン
会議室デビュー日: 2006/06/28
投稿数: 116
投稿日時: 2006-12-16 11:19
java言語仕様の定義済みアノテーションを見てみました。
The Java Language Specification, 3rd ed, section 9.6.1
ちょっとだけ判りました。今までデータセットなのかと思っていた自分が恥ずかしい。。。
結構皆さん使われてるのですね. >アノテーション
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-16 12:07
引用:

a-sanさんの書き込み (2006-12-15 23:44) より:

Java5の言語拡張は使ってますか?
特に、GenericsとAnotationについて知りたいです。


s/Anotation/Annotation/g ですよね。

.NET 分野で使っていることもあって、趣味の範囲ならば結構使っています。
といっても、ほとんど Generics ですけど。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-12-16 22:22
Genericsと拡張for文と可変長引数の組み合わせのサンプルですが、
コード:
static <T> T[] array(T... values){
    return values;
}


こんなメソッドを用意して、使う側は以下のコード。
コード:
int sum = 0;
for(int i : array(1,2,3,4,5)){
    sum = sum + i;
}


と、こんな感じで書けるようになります。
うまくユーティリティ的なメソッドを作ると、タイプ量が全然違ってきます。

スキルアップ/キャリアアップ(JOB@IT)