問題タブ [marker-interfaces]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
453 参照

oop - メソッドなしのインターフェースの使用

実際のコードを簡略化して、要点を示す最小の例にしました。セッター/ゲッター等の不足すみません。

顧客が順番に閲覧するWebページがいくつかあると想像してください。ここでの使用例は次のとおりです。-

  • ユーザーは必要な本を選択します
  • ユーザーは、郵便または電子メールで送信するかどうか、および関連する詳細を選択します
  • システムは注文を履行します

この質問は、2つの配信方法に焦点を当てています。これは次のようにモデル化されます。

ここで、ページを閲覧するときにユーザーが入力した情報を表すために、次のクラスがあります。

ユーザーがWebページをステップスルーすると、情報はのインスタンスに保存されますPurchaseData。ユーザーがページに戻ると、以前に入力した内容を表示できます。ユーザーが確認し、本を配達するときが来たら、またはdeliveryDetailsのインスタンスを参照します。PostalDeliveryDetailsEmailDeliveryDetails

結論として、ユーザーが自分の情報を確認すると、次のようになります。

Deliveryインターフェイスにメソッドがないのは困ります。

これは、電子メールと郵便配達の違いによって強制されます。

DeliveryDetails.deliver()実装がSMTPサーバーアドレスのようなものを静的に取得することを強制するので、それは良い方法ではないと思います。これは懸念を混乱させます(配管とユーザーが入力した情報)。

任意のタイプのものを格納する必要がある場合は、ジェネリックスが役立ちます。PurchaseData<T extends Delivery>PurchaseDataインスタンスの作成時に配信タイプが不明であるため、ジェネリック()を使用することはできません。とにかく、これは工場では役に立ちません。

この空のインターフェースは大丈夫ですか?このコードを設計するためのより良い方法はありますか?

0 投票する
2 に答える
823 参照

java - オブジェクトの機能を識別するためのマーカー インターフェイスまたはブール メソッド?

私は Java クラスの大規模な階層を開発しています。そのうちのいくつかには、実行時に照会したい特定のプロパティがあります (プロパティは、特定のインスタンスではなくクラスにのみ適用されます)。

isFooBar()プロパティが存在するかどうかを示すためにサブクラスが実装できる抽象ブール メソッドを作成できます。

または、代わりにマーカー インターフェイスを使用して、インターフェイスに対してチェックFooBarPropertyを行うこともできます。instanceof

または、AmitD によって提案されているように、注釈を使用することもできると思います。

各方法の長所と短所は何ですか。また、通常はどちらを優先する必要がありますか?

0 投票する
6 に答える
5106 参照

java - マーカー インターフェイス

誰かがJavaのマーカーインターフェースの契約を説明してもらえますか?

例:Clonableがフィールド/メソッドのないマーカー インターフェイスの場合、どこにclone()定義されていますか?

Clonableを使用するたびになぜ i/fを実装する必要clone()があるのですか?

私の質問は、 ifがクラスclone()のメソッドである場合、なぜi/f を実装して overrideにするのかということでした。java.lang.ObjectClonableclone()

誰かがこの Java の規則について詳しく説明できますか?

前もって感謝します

0 投票する
3 に答える
2523 参照

java - Comparable インターフェイスは、compareTo() メソッドを使用してどのようにマーカー インターフェイスになりますか?

メソッドを定義しているにもかかわらず、インターフェイスはどのようにComparableマーカーインターフェイスですか? compareTo()詳細を説明してください。

0 投票する
2 に答える
1129 参照

java - マーカーインターフェイスの作成とオブジェクトのシリアル化

serializabledecomplierのようなマーカーインターフェイスや、andのようなクラスを見てきobjectInputStreamましたobjectOutputStream。私の質問は、独自のマーカーインターフェイスを作成できるかどうかです。

はいの場合は、何か特別なことをしたいと思います。たとえば、オブジェクトをシリアル化と同じメカニズムでシリアル化したいのですが、インターフェイスを使用します。

私がクロスチェックしたのは、objectOutputStream彼らが下の演算子のインスタンスをチェックしているということですwriteobject()

マーカーインターフェイスを作成する方法と、マーカーインターフェイスを実装し、シリアル化の特別な処理を行う独自のクラスを作成する方法を教えてください。

0 投票する
2 に答える
1810 参照

java - 注釈はマーカーインターフェイスを完全に置き換えることができますか?

マーカーインターフェイスは、クラスをマークするだけで主に役立つため、アノテーションを使用して同じことを実現できます。たとえば、Cloneableインターフェイスは@Cloneable

それで、マーカーインターフェースの必要性はまだありますか、それともアノテーションによって置き換えることができますか?それらのいずれかを使用することの長所/短所はありますか?つまり、どちらか一方を優先するということですか?

0 投票する
9 に答える
34532 参照

java - Java:シリアライズできるものとできないものは?

インターフェイスが、Java のクラスに関するある種のメタデータを渡すために使用されるSerializable単なるマーカー インターフェイスである場合、少し混乱します。

Java のシリアライゼーション アルゴリズムのプロセス (メタデータを下から上へ、次に実際のインスタンス データを上から下へ) を読んだ後、そのアルゴリズムではどのデータを処理できないかがよくわかりません。

要するに正式には:

  1. 原因となる可能性のあるデータは何NotSerializableExceptionですか?
  2. implements Serializableクラスに句を追加することになっていないことをどのように知る必要がありますか?
0 投票する
5 に答える
3988 参照

java - Null vs マーカー インターフェイス

JavaのNullインターフェースとMarkerインターフェースの主な違いは何か、誰でも詳しく説明できますか? あるインタビューでこんな質問をされました。

ありがとう。

0 投票する
2 に答える
399 参照

c# - マーカー インターフェース: インターキャスト可能にする

流暢な API の拡張メソッド用に 3 つのマーカー インターフェイスがあります。

および次の拡張メソッド:

質問:キャストせずに obj を返すことは何とか可能ですか? 通常、この状況では明示的にダウンキャストする必要がありますが、これらのインターフェイスのいずれも、基礎となるオブジェクトに何らかのメソッド/プロパティ/その他のものを要求するものではありません。

注: 実際の実装クラスは、すべてのインターフェイスを実装します。

質問 2: なぜ implementationが自動的に実装を type にもしないのIOneですか?ITwoIOneOrTwo

0 投票する
1 に答える
86 参照

c# - INamingContainerの実現方法、もっと深いことを教えてください

カスタム コンテナ コントロールを実装したい場合は、コントロールを INamingContainer から継承し続ける必要があります。これは、マーカー インターフェイスとして定義されたインターフェイスです。私が知っているように、CLR は属性のようなメタデータにコントロール ステートメントを作成します。

だから、知りたい:

  1. .net フレームワーク システムは、それ自体のマーカー インターフェイスのメタデータを作成しただけですか? マーカー インターフェイスを作成できますか?

  2. CLR コンパイラが INamingContainer から継承したコントロールをコンパイルするとどうなりますか?

  3. コンテナ制御のためのINamingContainerの機能は何ですか?

よろしくお願いします!</p>