модификаторы для нескольких объектов в Java - PullRequest
1 голос
/ 09 июня 2011

можно сделать что-то подобное в Java?

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

спасибо! * * 1004

РЕДАКТИРОВАТЬ: извините, я допустил ошибку в моем примере .. Мне не нужны только строки ..

Ответы [ 5 ]

7 голосов
/ 09 июня 2011

Неправильный синтаксис. Но вы можете сделать это так:

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

Итак, как вы можете видеть (из моих комментариев), вы можете объявить несколько полей одного типа с общими модификаторами, но вы не можете смешивать типы.

3 голосов
/ 09 июня 2011

Ты имеешь в виду как?

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

В вашем коде вы можете использовать статический импорт.

import static Constants.*;

System.out.println(A);
1 голос
/ 09 июня 2011

Нет, это не так.
Обычно, интеллектуальное автоматическое завершение в предпочтительной IDE помогает немного. Например. в netbeans вкладка «Psfs» + расширяется до общедоступной статической конечной строки String

0 голосов
/ 09 июня 2011

Вы можете объявить статический блок и в этом статическом блоке создать переменные:

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 не может быть преобразован в переменную.

0 голосов
/ 09 июня 2011

Нет.На данный момент ни одна версия Java не позволит вам сделать это.

Даже если это будет действительно полезно, я признаю.

...