なぜアリババ禁止インタフェースは、列挙値を返しましたか?

今日は、この問題を確認するには、インターネットに起こっ異なる解釈をたくさん読んで、より多くの尊敬は、以下のように説明しました:

  マニュアルのオリジナルの言葉

  回答1:

  エスカレーションの理由としては、両方につながる列挙クラスが同じではない、インタフェース解析例外は、クラスの直列化復元を発生しました。インタフェース、アブストラクト、注釈、およびこの資料に記載さ:任意のJava要素のような、(完璧が、Javaのトップレベルの抽象化はすでに天才レベルではありませんが)ビューのゴスリングの視点で考える必要があるとロジックの背後になり、表示されます列挙。

  利点は、セキュリティの種類を列挙し、直接も等号を決定するために使用されてもよい、クリア、それはまたスイッチに使用することができます。

  その欠点はまた、彼らは展開できないことは明らかです。パラメータと戻り値の間の区別をする理由、そして2つの質問があるの互換性がない場合しかし、それは、どのようにパラメータを列挙することができるようにします。その時の考慮事項では、引数がその後の列挙はほとんど役に立たない、できない場合。出力パラメータは、すべての後、あなたと過去にいくつかの地元、送信、前方互換性は問題ではありませんが、地元の決定です。インターフェイスが返された場合でも、それはもっと嫌ではこの列挙値をバック解析するため、地元ではない、それは例外シーケンスがスローされます可能性が、あります。

  例えば:あなたの地元の列挙型、気象列挙型があります:SUNNY、RAINY、CLOUDY、天候は方法の気分に応じて算出されている場合:推測(WeatcherEnum XX)は、これら3つの値が可能です渡します。戻り値:天気推測(パラメータ)、その後、他の操作後は、SNOWYを返し、唖然ローカル列挙値は、存在しません。

 

  回答2:

  列挙、それはすべての既知の外に設定することです。第二者/提供者の三者ライブラリーとして、私がサポートして何を、あなたが使用しているもの、これは安全であることです。私はより多くのライブラリサポートのバージョンをアップグレードした後、あなたはとにかく、私はあなたが、その入力として、私には単に列挙セキュリティを渡すことができないという議論をサポートしていない、自然のケースを使用することはありませんわかりません。しかし、戻り値として、状況が逆転しています。私はこれらがこれらを持つことができ、その後、あなたはすべてに加えて、これらのこれらの規定を持つことができますを教えてください。しかし、私はあなたのたわごとが指定されていないので、最終決定権を持っていません。(今までに存在する場合)ではない慎重に手動ですべての単語を見て、悪魔は、アップグレード後のAPIが例外に百パーセントを投げる可能性の方に直接返されます知っています。

 

音声は、コードビハインドからの読み取り、もあり、あなたはこの記事を参照することができますhttps://www.cnblogs.com/lonely-coder/p/10469110.htmlを

おすすめ

転載: www.cnblogs.com/name-lizonglin/p/12144840.html