問題タブ [transient]

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 投票する
2 に答える
966 参照

grails - Grails domainClasses は一時的なプロパティを取得します

クラス GrailsDomainClass には 2 つのメソッドがgetPropertiesあります。getPersistentProperties

これを含むドメイン クラス ( MyDomainClass) があります。

わかりました、デフォルトのインデックス ページを使用して、MyDomainClass次のようにすべてのプロパティを一覧表示するように変更しました。

Ok。それは機能しますが、一時的なプロパティは取得されません。d.properties と d.persistantProperties を試しましたが、同じ結果が得られるようです。よろしくお願いします。

getComputeStuff などと呼ぶ必要がありますか?

これを含むようにドメイン クラスを変更しましたが、まだ一時的な computeStuff が返されません

これは違いがないようです。

0 投票する
7 に答える
27251 参照

java - Javaの静的シリアル化ルール?

いくつかの静的メソッドとフィールドを使用して、保存状態のシリアル化に取り組んでいます。シリアライゼーションと静電気が騒乱を引き起こしたと断言できました。すべてのスタティックをトランジェントにする必要がありますか? そして、呼び出しを膨らませると、静的が通常どおり復元されますか?

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

java - XJC 非一時的でシリアライズ不可能なインスタンス フィールド データ

私が受け取ったJavaクラスを生成した後:

FindBugs は、myClass が非一時的でシリアライズ不可能なインスタンス フィールド データを定義していることを警告します。警告は受け入れられますか、それとも修正する必要がありますか? ありがとう。

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

oop - Matlab OOP は、一時的なプロパティの保存時に get メソッドを呼び出します。

コンストラクターに提供されるか、他のメソッドで生成される可能性のあるプロパティを持つクラスを実装しようとしています。データをディスクに保存したり、ロード時に生成したりしたくありません。私がこれまでに持っているものは次のとおりです。

問題は、オブジェクトをディスクに保存しようとすると、Matlab が get.ProblemProperty メソッドを呼び出すことです (save ステートメントだけでプロファイラーを実行することで確認されます)。ProblemProperty フィールドは空で、そのままにしておきたいです。get.Property5 メソッドを呼び出しません。

get.ProblemProperty の呼び出しを回避するにはどうすればよいですか?

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

castle-windsor - のウィンザーコンポーネントが一時的なものとして機能していません

ウィンザーを使用して、IUnitOfWorkインターフェースのインスタンスを登録しています。UnitOfWorkContainer.CurrentIUnitOfWorkのインスタンスを返す静的メソッドです。

問題はUnitOfWorkContainer.Current1つだけと呼ばれます。

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

apache-flex - Flex blazeds/lcds 一時変数の AMF シリアライゼーション

LCDS と Flex を使用しています。Java から Flex にオブジェクトを送信するときに、すべてのプロパティを送信したくありません。私の知る限り、シリアライズしたくない場合は、変数をトランジェントにします。

例えば。

これで、シリアル化されたオブジェクトに生年月日が含まれなくなりました。しかし、AMF ログを見ると、オブジェクトには生年月日と値が含まれています。
シリアライゼーションはコードを調べて、プライベート変数が一時的であることを確認しますか? (プライベート プロパティにアクセスする方法がわかりません。少し混乱しています。)
変数をパブリックとしてマークする必要がありますか。ゲッターとセッターは意味がなく、さらにセッターメソッドでいくつかのコードを記述します。なのでセッターが必要です。

質問:

  1. 私は本 (Brain Telintelo による blazed を使用したエンタープライズ フレックス、第 15 章) を読みました。この場合、blazeds はわざわざ私有財産を一時的なものとしてチェックすることさえあります。

  2. 通常のシリアライゼーション ( amf シリアライゼーションではない) がどのように行われ、パブリックなゲッターとセッターがあるにもかかわらず、プライベートな一時変数を追跡するかを説明してください。

  3. Flex/LCDS/BlazeDS 環境で Java 変数をシリアライズしないようにするにはどうすればよいですか。

オブジェクトに 50 ~ 60 個の変数があり、4 ~ 5 個の変数をシリアライズしないでください。そのため、このような大きなオブジェクトに custion Serializer を記述するのは非常に面倒です。そして、私が見るもう1つの欠点は、独自のシリアライザーを作成すると、休止状態がこのオブジェクトを使用できないことです。

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

iphone - Core-Data での一時属性の使用

一時的な属性を使用することが私の状況にとって正しい方法であるかどうかはわかりません。サーバーから一種のフィードを取得し、コアデータに保存しています。これらすべてのフィードを TableView に表示しています。フィードには多くの種類があるため、セルのレイアウトとサブビューはフィードごとに異なります。一部のフィードでは、一時変数を設定する必要があります (BOOL と Integer です。つまり、NSNumber です)。ユースケースは、ユーザーが一部のセルを拡大したり折りたたんだりできるようにすることです (一種の「続きを読む..」リンク)。したがって、この状態を各 feed(NSManagedObject) オブジェクトで維持する必要があります。この状態は、アプリが実行されるまで続きます。ユーザーがアプリを開くと、すべてのフィードが最新である必要があるため、永続ストレージに保存しないでください。

一時的な属性を追加しましたが、機能していないようです。'NSNumber selected' 属性をエンティティに一時的に追加し、プロパティと @dynamic を NSManagedObject ファイルに追加しました。フォーラムを検索しましたが、私のものと一致する解決策はありません。私は多くのサンプルのものを試しましたが、それは本当に混乱しています..

インターフェイスファイルは、

実装ファイルは、

だからこれで私を助けてください。

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

transient - Hyperjaxb はトランジェントを動的に適用します

現在、一時的な機能を使用して、コンパイル時に xml オブジェクトにノードを保持しないように Hyberjaxb に指示できます。これを実行時に動的に適用する方法はありますか? の場合x=y、特定のノードを xml オブジェクトに保持します。それ以外の場合は保持しません。

これに対処するための別の戦略はおそらくありますか?

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

iphone - CoreDataの一時的なプロパティを理解するためのヘルプが必要です

一時的なプロパティに関するドキュメントを読みましたが、その目的を本当に理解できません。このようなNSManagedObjectのカスタムサブクラスがある場合、一時的なプロパティがある場合とない場合の違いを教えてもらえますか?

したがって、ピースとグリッドは、同じデータにアクセスするための2つの方法を提供します。pieceは、実際のCore Dataリレーションシッププロパティであり、すべてのpieceの密なリストです。グリッドは、(x、y)座標でアドレス指定されたボード上の特定のスペースの内容を見つける方法です。グリッドは遅延して構築され、ピースが場所を変更すると(存在する限り)更新されます。

グリッドを一時的なプロパティとして宣言しているわけではなく、すべてが正常に機能しています。一時的なプロパティを宣言しないとバグを引き起こす可能性のある異常な状態が発生する可能性があるかどうか疑問に思っています。

このような派生プロパティを実行している場合、適切な元に戻る動作を取得するには、一時的なプロパティが必要であると私は思います。私はundoを使用していませんが、いずれにせよ、この場合にどのように機能するかわかりません。ピースの移動が取り消された場合、元に戻すマネージャーは_gridの古い値を元に戻すことができます(おそらく読み取り専用にしないと仮定します)が、古い値は新しい値と同じです。これは同じNSMutableArrayインスタンスへのポインタであり、内容のみが変更されています。とにかく、undoは使いません。

では、グリッドを一時的なプロパティとして宣言した場合、何らかのメリットがありますか?

追加の質問。このようなコードがある場合はどうなりますか?

someOtherManagedObject.boardにアクセスした後、ボードに障害が発生している可能性はありますか?私も障害を理解するのに苦労しています。その場合、私のコードはクラッシュすると思います。アウェイクが_gridをnilに設定していることに気づきました。シーケンスは次のようになると思います。

  1. グリッドゲッターと呼ばれる
  2. _グリッドが割り当てられました
  3. アクセスされたself.pieces
  4. 障害火災
  5. 目覚めと呼ばれる
  6. _grid = nil
  7. グリッドゲッターに戻る
  8. [[_grid objectAtIndex:...nil値にアクセスする、クラッシュする、または少なくとも何もしない
  9. グリッドゲッターはnilを返します
  10. boardContentsに値が含まれていると予想される場合のクラッシュまたは不正な動作

一方、グリッドを一時的なプロパティとして宣言した場合、グリッドゲッターが呼び出される前に障害が発生しますか?

TechZenから:

フォールトは、関係を持つオブジェクトグラフを定義するが、属性値をロードしないプレースホルダーオブジェクトです。これらは、NSManagedObjectまたはプライベート_NSFault...クラスのインスタンスとしてログに記録されます。

モデル化されていないプロパティはカスタムNSManagedObjectサブクラスの属性であり、エンティティではないため、障害オブジェクトはそれらについて何も知りません。障害オブジェクトはデータモデルから初期化されるため、障害オブジェクトが応答するすべてのキーがデータモデルに含まれている必要があります。これは、モデル化されていないプロパティの要求に障害が確実に応答しないことを意味します。

何を待つ?私は自分のオブジェクトがいつでも障害である可能性があることに気づき始めていますが、それらは私のクラスのインスタンスでさえないかもしれないと私に言っていますか!?または、カスタムサブクラスを使用する場合、それらはNSManagedObject(具体的には私のサブクラス)のインスタンスである一種の障害であることが保証されていますか?

それらがカスタムクラスのインスタンスでない場合、次のようなもので何が起こりますか?

障害時にdoSomethingを呼び出すとどうなりますか?

  1. セレクターに応答しない、クラッシュ
  2. コードを実行しますが、インスタンス変数が存在しません。data++を実行するとどうなるかを知っています。
  3. データは存在しますが、modeledPropertyは障害であるため存在しません

一時的なプロパティはこの問題を修正します。一時プロパティは、コンテキストが保存せずに監視できるキーを提供します。障害が発生した場合、一時プロパティのKey-Valueメッセージを送信すると、コンテキストが障害を「発生」させ、完全な管理対象オブジェクトをロードします。

わかりましたが、上記のdoSomethingのように、プロパティアクセサーではないインスタンスメソッドがある場合はどうなりますか?呼び出す前に、実際のオブジェクトがあることを確認するにはどうすればよいですか?または、それを呼び出すことはできますか?メソッド本体の最初のことは、実際のオブジェクトがあることを確認します(たとえば、モデル化されたプロパティにアクセスすることによって)?

あなたの場合、グリッドの値がボードクラスのモデル化されたプロパティの値に依存する場合は、グリッドに一時的なプロパティを使用する必要があります。これは、グリッドにアクセスしたときにグリッドに常にデータが入力されることを保証する唯一の方法です。

モデル化されたプロパティの値に依存している場合、それらに依存しているときに障害が発生する、つまり、for (PieceState *piece in self.pieces)モデル化されたプロパティであるself.piecesにアクセスするため、ラインが障害を発生させると思いました。しかし、あなたは私にどちらを言っているのですか?

  1. 障害時にグリッドゲッターメソッドを呼び出すことさえできません
  2. 呼び出すことはできますが、_gridを思い通りに使用できません

あなたの言っていることが理解できれば、それは本当のようですが、NSManagedObjectのカスタムサブクラスは非常に限られています。

  1. オブジェクトが呼び出されたときに使用可能な状態で存在することが保証されないため、モデル化されたプロパティゲッターまたはセッターではないインスタンスメソッドを持つことはできません。(例外:プロパティアクセサーのヘルパーメソッドにすぎないインスタンスメソッドで問題ありません。)
  2. これらのインスタンス変数はいつでも消去される可能性があるため、計算値の一時キャッシュ以外の有用な目的でインスタンス変数を持つことはできません。それらがディスクに永続化されないことはわかっていますが、オブジェクトをメモリに保持している限り、少なくとも永続化されると思いました。

その場合、カスタムNSManagedObjectサブクラスにアプリケーションロジックを配置するつもりはありませんか?アプリケーションロジックは、管理対象オブジェクトへの参照を持つ他のクラスに存在する必要があり、管理対象オブジェクトは、読み取りと書き込みを行うダムオブジェクトのみです(データの一貫性を維持するためのいくつかの機能を備えた、少しスマートです)。NSManagedObjectをサブクラス化して、非標準のデータ型でいくつかの「トリック」を実行する唯一のポイントはありますか?

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

testing - テストで一時的なフィールドをモックすることは可能ですか?

一時フィールドを含むクラスがあります。しかし、クラスの他の部分はシリアライズ可能です。テストでは、フィールドとクラスをモックし、モック化されたクラス オブジェクトを以下のようなディープ コピー関数で使用します。

writeObject(original) メソッドは、すべての非一時的および非静的フィールドを書き込むことになっています。しかし、モック一時フィールドに対して java.io.NotSerializableException というエラーが発生しました。テストでトランジェントフィールドを認識できないのだろうか?私はフレームワークとしてmockitoを使用しています。