java中多个对象的修饰符

时间:2011-06-09 14:38:45

标签: java modifier

可以在java中做这样的事情吗?

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

谢谢!

编辑:对不起,我在我的例子中犯了一个错误..我不仅需要字符串..

5 个答案:

答案 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 DeclarationsJava 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;
    }

但是一旦你离开那个静态区块的范围,你将无法引用abc

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

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