1

Javaでこのようなことをすることは可能ですか?

static public final {
    String A = "a...";
    int B = 3;
    boolean C = true;
}

ありがとう!

編集:申し訳ありませんが、私の例で間違いを犯しました..私は文字列だけを必要としません..

4

5 に答える 5

7

間違った構文。しかし、次のようにできます。

public static final String A = "a...", B = "b...", C = "c...";

または、お使いのバージョンに近い (Java では空白は関係ありません):

public static final String
   A = "a...",
   B = "b...",
   C = "c...";

参考までに、Java 言語仕様のフィールド宣言の公式文法は次のとおりです。

FieldDeclaration:
    FieldModifiersopt Type VariableDeclarators ; # one variable type only

VariableDeclarators:
    VariableDeclarator
    VariableDeclarators , VariableDeclarator     # one or more variables

VariableDeclarator:
    VariableDeclaratorId
    VariableDeclaratorId = VariableInitializer

VariableDeclaratorId:
    Identifier
    VariableDeclaratorId [ ]

VariableInitializer:
    Expression
    ArrayInitializer

(私のコメントから)わかるように、共通の修飾子を使用して同じタイプの複数のフィールドを宣言できますが、タイプを混在させることはできません。

于 2011-06-09T14:41:02.593 に答える
3

好きということですか?

public interface Constants {
    String A = "a...";
    String B = "b...";
    String C = "c...";
}

コードでは、静的インポートを使用できます。

import static Constants.*;

System.out.println(A);
于 2011-06-09T14:43:00.430 に答える
1

いいえそうではありません。
通常、優先 IDE のスマート オート コンプリートが少し役立ちます。たとえば、netbeans では、「Psfs」 + タブは public static final String に展開されます。

于 2011-06-09T14:44:11.580 に答える
0

いいえ。現時点では、Java のどのバージョンもそれを許可していません。

たとえそれが本当に役に立つとしても、私は認めます。

于 2011-06-09T14:41:28.300 に答える
0

静的ブロックを宣言し、その静的ブロックで変数を作成できます。

public class TestS {
    static {
        String  a = "a...";
        int     b = 3;
        boolean c = true;
    }

しかし、その静的ブロックのスコープを離れるとa、 、b、またはを参照できなくなりますc

    public static void main(String[] args) {
        System.out.println(a); // won't compile
    }
}

メインでaは、変数に解決できません。

于 2011-06-09T17:18:32.287 に答える