可以在java中做这样的事情吗?
static public final {
String A = "a...";
int B = 3;
boolean C = true;
}
谢谢!
编辑:对不起,我在我的例子中犯了一个错误..我不仅需要字符串..答案 0 :(得分:7)
错误的语法。但你可以这样做:
public static final String A = "a...", B = "b...", C = "c...";
或者,更接近您的版本(空白与Java无关):
public static final String
A = "a...",
B = "b...",
C = "c...";
供参考,以下是official grammar for Field Declarations的Java Language Specification:
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
因此,您可以看到(根据我的评论)您可以使用常用修饰符声明相同类型的多个字段,但不能混合使用类型。
答案 1 :(得分:3)
你的意思是?
public interface Constants {
String A = "a...";
String B = "b...";
String C = "c...";
}
在您的代码中,您可以使用静态导入。
import static Constants.*;
System.out.println(A);
答案 2 :(得分:1)
不,不是。
通常,首选IDE中的智能自动完成有点帮助。
例如。在netbeans中,“Psfs”+选项卡扩展为public static final String
答案 3 :(得分:0)
没有。目前没有Java版本允许你这样做。
即使它真的很有用,我承认。
答案 4 :(得分: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
}
}
在main中,a
无法解析为变量。