0

Switch vsに関する記事を読みました。その場合、Stringをswitchパラメーターとして使用すると、コンパイラーはジャンプテーブルを作成しません。これは正しいですか、もしそうなら、罪状認否は理由を説明しますか?

ありがとう

PS

私はJavaに関してこれを知ることにもっと興味があります。そして、これについて私が読んだ部分は、ここStackoverflowの回答からのものです。だからここにリンク stackoverflow.com/a/395965/1043937があります

c#について書かれていますが、Javaも1.7以降同じ機能を持っているので、誰か説明してもらえますか。

4

3 に答える 3

3

CのSwitchステートメントは、パラメーターとして文字列を受け入れることができません。

javaの文字列のswitchステートメントは、java1.7以降で使用できます。このブロックはcフィーチャーからモデル化されたため、以前はそうではありませんでした。Javaがジャンプテーブルを使用するかどうかは、実装に依存し、結果も値に依存します。

編集:実装の詳細については、Jonが提供するリンクを参照してください。

于 2012-06-22T08:13:30.710 に答える
0

java 1.7より前では、文字列をスイッチパラメータとして使用することはできません。これはJava1.7の機能であり、文字列をスイッチパラメータとして使用することもできます。

于 2012-06-22T08:15:32.220 に答える
0

Switchステートメントは、プリミティブ型または列挙型のいずれかで機能します。Java 7では、Switchステートメントで使用できる別の型であるString型が導入されました。

public void process(Trade t){

        String status = t.getStatus();



        switch (status) {

        case NEW:

              newTrade(t);

              break;

        case EXECUTE:

              executeTrade(t);

              break;

        case PENDING:

              pendingTrade(t);

              break;



        default:

              break;

        }

  }
于 2012-06-22T08:54:14.270 に答える