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" + tab 扩展为 public static final String

于 2011-06-09T14:44:11.580 回答
0

您可以声明一个静态块并在该静态块中创建变量:

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

但是,一旦您离开该静态块的范围,您将无法引用abc.

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

在 main 中,a无法解析为变量。

于 2011-06-09T17:18:32.287 回答
0

不可以。目前没有任何 Java 版本允许您这样做。

即使它真的很有用,我承认。

于 2011-06-09T14:41:28.300 回答