問題タブ [enumset]

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

java - Hibernate 列挙セット エラー

複数のアクセス許可 (ENUM) を保持する Role オブジェクトがあります。しかし、私はこのエラーが発生し続けます。

どう表現するのがベストなのか。

役割クラス:

hibernate.cfg.xml

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

java - Java EnumSet - セットにフラグが含まれているかどうかを追加して確認する

C# のフラグに相当する EnumSet を適切に使用する方法を理解しようとしています。これが私の実装とこれを使用するメソッドです。ご覧のとおり、フラグが存在するかどうかのチェックが正しく機能していません。私が間違っていることを教えてください。

EnumSet を持つ次の Enum があります。

(これは正しく実装されていますか?)

セットに追加したり、セットに値が含まれているかどうかを確認したりできるようにしたいと考えています。しかし、これは機能していません:

最後のメソッドは、次のようにしても、すべての ExcelRangeBorder 型が含まれていることを示しています。

出力:

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

java - EnumSet のシリアル化

アプリのデバッグに数時間を費やしたばかりで、(別の o_O) Java バグに出くわしたと思います... スニフ... そうでないといいのですが、これは悲しいことです :(

私は次のことをしています:

  1. maskいくつかのフラグを使用して EnumSet を作成する
  2. それをシリアライズする(でObjectOutputStream.writeObject(mask)
  3. で他のいくつかのフラグをクリアおよび設定するmask
  4. もう一度シリアライズする

期待される結果: 2 番目のシリアル化されたオブジェクトは最初のオブジェクトとは異なります (インスタンスの変更を反映します)。

得られた結果: 2 番目のシリアル化されたオブジェクトは、最初のオブジェクトの正確なコピーです

コード:

それは印刷します:

私はEnumSet間違って使用していますか?クリアするのではなく、毎回新しいインスタンスを作成する必要がありますか?

ご意見ありがとうございます。

**** アップデート ****

私の最初のアイデアはEnumSet、次のメッセージでどのフィールドが存在するか、または存在しないかを示すマスクとして使用することでした。これは、一種の帯域幅と CPU 使用率の最適化です。大間違いでした!!! シリアル化にEnumSetは時間がかかり、各インスタンスには 30 (!!!) バイトかかります! 宇宙経済についてはこれで終わりです:)

一言で言えば、ObjectOutputStreamプリミティブ型の場合は非常に高速ですが (ここでの小さなテストで既にわかっているように: https://stackoverflow.com/a/33753694 )、(特に小さな) オブジェクトでは非常に遅く、非効率的です.. .

そのため、int に裏打ちされた独自の EnumSet を作成し、(オブジェクトではなく) int を直接シリアル化/逆シリアル化することで、この問題を回避しました。

シリアル化中は約 130 倍、逆シリアル化中は 25 倍高速です...

MyEnumSet:

通常の EnumSet:

ただし、それほど安全ではありません。たとえば、32 を超えるエントリを持つ列挙型では機能しません。

MyEnumSet の作成時に列挙型の値が 32 未満であることを確認するにはどうすればよいですか?

0 投票する
0 に答える
160 参照

java - 列挙型を返すメソッド

EnumSet と Enum に関する質問があります。より具体的には、それらをパラメーターとして渡し、メソッドから返すことについて。

基本的に、あるクラスのメソッドにEnumの特定の要素のEnumSetを作成させたいのですが、そのクラスがEnumSetを別のクラスに渡し、新しいクラスがロジックを使用してセットから特定の要素を1つ選択し、それを必要なアクションを実行する 3 番目のクラス。それがあまりにも紛らわしい場合は、以下にいくつかのコンテキストを提供しようとしました.

いくつかのクラスを持つブラックジャック シミュレーター プログラムを作成しようとしています。私の質問に関連するクラスは、ディーラー、プレイヤー、およびハンドです。

私が抱えている問題は、Hand クラスにオプションの列挙を持たせたいということです

次に、ArrayList カード (配列リストの Integer 値は単にカードのランクを表します。スーツは重要ではありません) であるハンドの内容を調べて、Player オブジェクトが使用できるオプションを判断します。

可能なオプションを決定し、

利用可能なオプションが含まれています。

Hand クラスがロジックを実行し、必要な EnumSet を作成する方法を完全に知っていますが、「EnumSet availableOptions」をパラメーターとしてプレーヤー クラスに送信し、プレーヤー クラスに playerOption() メソッドを実行させる方法を見つけるのに苦労しています。これは、ディーラーがそれに応じてカードを配るディーラー オブジェクトに 1 つの「オプション」を返します。

これはロジックのない単なるスニペットですが、列挙型セットを返すためにこれを行います:

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

jsp - セットに特定の Enum 値が含まれているかどうかを確認する EL 構文

ItemTypes のセットであるフィールドを持つ Item オブジェクトがあります。

もちろん、ItemType は単純な Enum です。

私の JSP では、アイテムに特定の ItemType があるかどうかを確認するために JSTL を使用したいと考えています。次の 3 つのスニペットを使用しようとしましたが、エラーも結果も得られません。3つすべてが失敗する理由はわかりません。誰かがこれらの 3 つのケースのそれぞれについて、私が思うようにプログラムが機能しない理由を説明し、機能している 4 番目の代替案を提供できますか :)?

重要なのは、ItemType列挙型がパブリックであり、別のクラス内ではないことです。EL/JSTL/JSP を解決するクラスを含め、他のクラスから完全にアクセスできます。

enumset 内のすべての値を繰り返し処理しても問題ないことに注意してください。

結果として与えます:

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

java - EnumSet とブール値の配列の間の変換

私は、EnumSetブール型プリミティブの配列との間で前後に変換したいと考えています。それがうまく機能する場合Listは、配列の代わりに、および/またはBooleanブールプリミティブではなくオブジェクトを使用できます。

反対側で取得したいのは、次のような配列です。

ここでのこの質問は、 EnumSet を整数の配列に変換するに似ています。違い:

  • ブール値またはBoolean対整数 (明らかに)
  • 列挙型のすべてのメンバーを表し、TRUEfor each 列挙型要素が に含まれ、EnumSetfor FALSEeach 要素が から除外されますEnumSet。もう一方の質問の配列には、で見つかった項目のみが含まれますEnumSet。(さらに重要なことには)
0 投票する
2 に答える
161 参照

c# - アイテムの大きなセットで列挙型を使用するC#

hすべてのボディはc#.netで列挙型を使用しており、データのセットは
Windows 10のiisで約300項目です:
列挙型を次のように使用すると:

結果が間違っていて、このように使用すると

答えが変わり、また間違っています:-)

私はiisで問題を追跡しようとしていますが、その作業を正しく表現しています.iisでテストしているときは常にプログラムが発生します
。誰もが私を助けることができますか?

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

java - 2 種類の Enum のいずれかから EnumSet をインスタンス化する

私はこれらの2つの列挙型を次のように宣言しています:

ここに見られるように、どちらもこのインターフェースを実装しています。

ここでは、Enum1 または Enum2 からすべての要素を取得する EnumSet を含むクラスを定義しています。これは、パラメーターとしてインデックスを持つメソッドを介して定義されます。このようなもの:

さて、どうにかしてこれを達成するためにジェネリックを使用しなければならないことはわかっていますが、それについて十分に精通していないため、正確に行う方法がわかりません。少し教えていただければ幸いです。

ご回答ありがとうございます。

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

java - Javaにネストされた列挙型のようなものはありますか?

州にアクセスできる Country 列挙型を実行したいのですが、どうすればよいですか?

このようなもの: