2016-05-20 4 views
2

CとJavaの間のEnumの違いは何ですか? C enumをJava enumに「翻訳」する方法はありますか? これは、タイプメッセージを含むロボットにCで書かれた列挙型を持っているためです。アプリケーションから送信するデータを読み取れるように、Javaで同じものを持つ必要があります。CとJavaの列挙型の相違点

+0

問題の列挙型の[MCVE]を含めます。 – t0mm13b

+2

[JavaとC++の間の列挙型の差異]の可能な複製?(http://stackoverflow.com/questions/2080681/difference-of-enum-between-java-and-c) – Ironman

+2

列挙型は整数によく似ています.. 。あなたの靴では、私は最終的な静的int'を使用する代わりにjava側の列挙 – Selvin

答えて

2

Cでは、列挙型は単なる名前付き整数定数のセットです。 Javaでは、列挙型はクラスの名前付きインスタンスによく似ています。列挙で使用可能なメンバーをカスタマイズすることができます。

また、Cは列挙型の値を暗黙的にその等価の値に変換しますが、変換はJavaでは明示的でなければなりません。詳しい情報をご覧ください

:名前付き定数のセットとして列挙型を使用してC、に反対 Enum In C & Enum In Java

0

Java EnumはJava Enumが一種のクラスであるため、C \ C++ enumsが定数の場合、インデックス付き式やオペランドとして使用できます。また、C \ C++の列挙は、#defineプリプロセッサディレクティブの代替を提供します。 P .:詳細については、有効なJava(http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683)の第6章(30-37項)、C \ C++列挙型の使用法と相違点を参照してください。

+0

あなたの答えはあなたが本にアクセスできたときの本当の答えです。 –

+0

これは、その本の完全な内容を提供する多くのサイトの1つを指し示すURLを使用することで簡単に修正できます。 – GhostCat

0

、Javaはクラスとしてそれを実装しています。また、あなたがパフォーマンスを心配している場合は、Androidで使用しないでください(The Price of enums)。

関連する問題