私はJavaは初めてですが、基本的なプログラミングは初めてです。このため、私はまだすべての用語とその意味を完全には習得していません。そうは言っても、私が欲しいものを説明していないかもしれないので、できるだけ具体的にしようと思います.
(Buff) や (Debuff) などのサブクラスを親にする抽象親クラス Status を作成していますが、これもおそらく抽象的です。最終的には、何らかの形で Status から継承する独自のクラス名を持つ具象クラスを作成することになるとだけ言っておきましょう。
アイデアは、これらのオブジェクトのリストを反復処理して、別の Dragon.object を変更させることです。ただし、これらの Status オブジェクトは別のクラスのオブジェクトの値を数学的に変更するため、順序が重要になります。このことと、これらのオブジェクトがインスタンス化される順序がないという事実のために、あるステータスが値を 10% 増加させ、別のステータスがその値から 5 を減算すると、意図しない結果になってしまいます。
この背景を提供する理由は、この問題に正しく取り組んでいるかどうか確信が持てず、間違った道を進んでいる場合は誰かがここで修正してくれることを願っているからです。
私の質問に進みます。フィールドの 1 つの値でオブジェクトを比較するのは簡単に思えます。これはクラス型にも当てはまりますか? もしそうなら、オブジェクトの種類を比較するコンパレータをどのように記述すればよいでしょうか。「オブジェクトタイプ」とは、つまり;
比較: Status.Buff.Percentage.Strength10Percent から Status.Buff.Additive.Strength10
優先度を指定するこのクラスにフィールドを配置し、ソート時にカスタムコンパレータを使用するか、オブジェクトタイプで十分ですか (Java がそれを実行できる場合)?
読んでくれてありがとう。