直列化では、直列化したいクラスをSerializableインタフェースを実装する必要があります。それ以外の場合は、NotSerializableExceptionがスローされます。 Javaのさまざまな機能には、他にもたくさんの例があります。今、私はカスタムクラスとインターフェイスでそのようなコントロールをどのように持ち込むかを知りたいだけです。エージェントと呼ばれるインターフェースがあります。多くの異なる種類のエージェントが存在する可能性があり、それらのすべてがエージェントインタフェースを実装する必要があります。私はNodeというクラスも持っています。ノードはエージェントを作成します。エージェントが常にエージェントのインターフェイスを実装するような状況では、どうしてこのような状況でコントロールを導入するのですか。それ以外の場合は例外がスローされます。私は少し曖昧に聞こえるかもしれませんが、誰かが一般的なアイデアを私に提供できる場合は、必要に応じて詳細を提供することができます。制御されたインタフェースの実装
1
A
答えて
3
エージェントを使用するNodeメソッドがある場合は、その引数をAgentにする必要があります。
interface Node {
void method(Agent agent); // must be an Agent.
Agent returnAgent(); // must return an Agent.
}
シリアル化は特殊なケースです。これは、直列化可能なすべての型が直列化可能であるわけではないためです。 int []のような組み込み型はシリアライズ可能ですが、シリアライズ可能は実装されていません。このタイプのチェックはコンパイラでは実行できず、実行時にのみ行うことができます。
0
ノードがエージェントを作成する前にエージェントがインタフェースを実装しているかどうかを確認できます。
public class CheckForInterface
{
public static void main(String[] args) throws ClassNotFoundException
{
Class cl = (Class)Class.forName("TestImpl");
Class[] itfs = cl.getInterfaces();
for(Class c : itfs)
{
System.out.println(c);
}
}
}
import java.io.Serializable;
public class TestImpl implements Serializable
{
public TestImpl()
{
}
}
これは出力します。ここで、例外をスローするようにしたjava.io.Serializable
関連する問題
- 1. スウィフト3の実装SideMenu制御(ハードコードされた)
- 2. JavaScriptでのコルーチン制御フローの実装
- 3. の実装インタフェース
- 4. インタフェースの実装 - パラメータ
- 5. インタフェースServiceConnectionの実装
- 6. AWSに実装されたパブリックフェーシングAPIの実装速度制限
- 7. レコード構文内で定義された関数インタフェースの実装?
- 8. インタフェースで宣言されたオーバーライドメソッドの実装
- 9. インタフェースを実装し、
- 10. 実装ネストされた汎用的なインタフェース
- 11. インタフェース実装のための「略称」ショートカット?
- 12. インタフェースの実装の指定
- 13. 悲観論とオプティミスティック同時実行制御の実装
- 14. インタフェースの実装方法は
- 15. Cでインタフェースの実装を制限する方法
- 16. ブール制御フロー変数が正しく実装されていません
- 17. インタフェースを実装した素数シーケンス(Java)
- 18. バージョンSimulinkライブラリの制御されたモデル
- 19. Javaリフレクション:実装汎用インタフェース
- 20. 階層インタフェースと実装
- 21. rlmベクトル化された制御変数
- 22. マウスで制御されたシェイプ描画
- 23. 出口が制御されたエンドレスループ
- 24. Wordpress - カスタムプラグインから制御されたカスタムメタタグ
- 25. 差別化されたアクセス制御。ベストプラクティス
- 26. 制御されるタイプのテキストの制御されない入力
- 27. urlllib2.urlopenのタイムアウト制御を実装する方法
- 28. ロールベースのアクセス制御を実装する方法Java/MySql?
- 29. uuオプションを制御するVue.jsクッキーの実装方法?
- 30. marklogicでラベルベースのアクセス制御(LBAC)を実装するには
とのインタフェース? – aps
コンパイラが無効な型を使用しないようにするため、例外をスローする必要はありません。 –
あなたのソリューションは私のものよりもはるかに優れています。はるかにエレガント。 –