java.time対ThreeTen-バックポートを使用しているとき、あなたは完全にパッケージ接頭辞を修飾する必要がありますか?

ktm5124:

私たちは、お客様の1は、Java 7三テンバックポートは、私たちのJava 8で導入された新しい日付と時刻の機能(java.time。*)を与える使用されているので、私たちのプロジェクトでは、3〜10バックポートを使用しています。

私は以下のが良いでしょうかどうかを知りたいのです。我々の顧客のほとんどは、Java 8を使用していて、1日、私たちは、Java 8のすべての顧客をアップグレードする可能性があるので、それは本当に完全にorg.threeten.bpとクラス名を修飾する意味がありませんか?最終的に我々は、Java 8のすべての顧客をupradeし、この依存関係を削除し、我々はこれをやって終わるならば、我々は単にパッケージ接頭辞なしでクラス名を使用するならば、以下のコード変更があるでしょうかもしれません。コード例を与えるために、私が何を意味するかこれです。

import org.threeten.bp.LocalDate Time;

public class Example {

     public void example() {
          LocalDateTime datetime = // ....
     } 
}

あなたは、私がパッケージ接頭辞なしのLocalDateTimeを参照することを例に見ることができます。Javaの8では、java.time.LocalDateTimeクラスがロードされ、またはorg.threeten.bp.LocalDateTimeされるのですか?このコードでは、Javaの8で、org.threeten.bpからjava.timeや他からの2のLocalDateTimeの、あちこちに1があるので、それはちょっと不明です。私は、ネイティブJavaライブラリが優先さとロードされることを前提としていますが、私は間違っている可能性があります。

この良い練習をしているのですか?それとも、コンパイラの警告/エラーが発生するだろうか?それは警告やエラーが発生しない場合であっても、それはまだ悪い習慣かもしれませんか?完全パッケージでクラスを修飾することは醜いちょうど明白であり、我々は、3〜10個の依存関係を削除してしまうならば、私たちだけではなく、import文を削除するので、そのコードのすべてのインスタンスを変更する必要がありますので、私はこれを行うように誘惑しています。自分の考えを聞いて幸せ。

Ousmane D .:

あなたは両方の輸入を持っている場合にのみ衝突があるでしょう:

import org.threeten.bp.LocalDateTime;
import java.time.LocalDateTime;

唯一の持つimport org.threeten.bp.LocalDateTime;問題が発生することはありません。だから、あなたは完全に任意の文を修飾する必要はありません。LocalDateTime datetime = ...

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=234937&siteId=1