ホームページ >Java >&#&チュートリアル >Java7の新機能の分析例
Java7 の新機能は、スイッチ コード ブロックに String のサポートを追加することです。追加されるのは String だけですが、Integer のみをサポートしていた以前のバージョンよりもはるかに優れています。この機能は C# で利用できます1.0 は switch ブロックでサポートされており、String だけでなく、すべてのオブジェクトを switch ブロックで使用できます (訂正: C# 2.0 スイッチは bool、char、integer、enum、string および対応する null 許容値型、switch 式のみを使用できます)または case ラベルは bool、char、string、integral、enum、または対応する null 許容型である必要があります)。
;try-with-resource ステートメント
;Java7 のこの新機能は、C# 2.0 プログラマにはよく知られています。時間内に解放する必要があるリソースをコーディングするとき、通常のアプローチは、最後に Call close( ) をリリースし、C# は同じ機能を実現する簡単なメソッドを提供します。コードは次のとおりです。
;以下はコードの一部です:
;using(SqlConnection conn = new SqlConnection(" ConnectionStringHere)){
;// 何かを実行します
;}
;上記のコードは次と同等です:
;以下はコード スニペットです:
;SqlConnection conn = new SqlConnection("ConnectionStringHere) ;
;try{
;conn.open();
;// 何かをする
;}finally{
;conn.close();
;}
;そしてJava7 も同様の関数を実装していますが、using を使用する代わりに try を使用します。コードは次のとおりです:
;以下はコードの一部です:
;try (BufferedReader br = new BufferedReader (new FileReader (path) )) ) {
;return br.readLine();
;}
C# の場合、 using は条件を満たす必要があります。つまり、 using で宣言されたオブジェクトはインターフェイス System.IDisposable を実装します。ちなみに、finally ブロックのコードは、このインターフェイスで Dispose()
メソッドを自動的に呼び出して、リソースを解放するという目的を達成できます。 Java7 にも同じ要件が存在します。つまり、オブジェクトはインターフェイス java.lang.AutoCloseable または java.io.Closeable を実装する必要があります。
;For-Each Loop
Java7 では、ついに for-each ループ関数が実装されました。これは Java5 の構文拡張ですが、Java6 では構文の更新がないため、この拡張を Java の新機能としてリストします。 Java7。しかし、なぜ C# のように foreach キーワードを直接導入せずに、キーワードとして for を使用するのか理解できません。この方が理解しやすいでしょうか? Java バージョンの for-each コードは次のとおりです。
;次のコード スニペットは、
;void cancelAll(Collection c) {
;for (TimerTask t: c)
;t です。 cancel() ;
;}
;C# バージョンのコードは次のとおりです。
;コード スニペットは次のとおりです。
;void CancelAll (Collection c) {
; foreach (TimerTask t in c)
;t.Cancel(); (従来の配列とジェネリック コレクションを含む)、C# は、System.IEnumerable またはそのジェネリック バージョン System.IEnumerable を実装する任意のオブジェクトで使用できます。
以上がJava7の新機能の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。