Javaでこのようなことをすることは可能ですか?
static public final {
String A = "a...";
int B = 3;
boolean C = true;
}
ありがとう!
編集:申し訳ありませんが、私の例で間違いを犯しました..私は文字列だけを必要としません..
間違った構文。しかし、次のようにできます。
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
(私のコメントから)わかるように、共通の修飾子を使用して同じタイプの複数のフィールドを宣言できますが、タイプを混在させることはできません。
好きということですか?
public interface Constants {
String A = "a...";
String B = "b...";
String C = "c...";
}
コードでは、静的インポートを使用できます。
import static Constants.*;
System.out.println(A);
いいえそうではありません。
通常、優先 IDE のスマート オート コンプリートが少し役立ちます。たとえば、netbeans では、「Psfs」 + タブは public static final String に展開されます。
いいえ。現時点では、Java のどのバージョンもそれを許可していません。
たとえそれが本当に役に立つとしても、私は認めます。
静的ブロックを宣言し、その静的ブロックで変数を作成できます。
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
は、変数に解決できません。