Как публичные / приватные и статические модификаторы Java влияют на несколько переменных, объявленных в одной строке? - PullRequest
3 голосов
/ 30 апреля 2010

Являются ли следующие эквиваленты?

private static boolean readAllFiles = false,readAllDirs = false;

private static boolean readAllFiles = false;
private static boolean readAllDirs = false;

И если да, то они все еще имеют одинаковые модификаторы с разными значениями?

private static boolean readAllFiles = false,readAllDirs = true;

Ответы [ 2 ]

9 голосов
/ 30 апреля 2010

Да, они эквивалентны, независимо от их начальных значений.

Вот некоторый тестовый код для демонстрации:

public class TestClass
{
  private static boolean readAllFiles = false,readAllDirs = true;

  public static void main(String[] args)
  {
    //these two would result in COMPILE error if both vars were not static
    System.out.println("readAllFiles: " + readAllFiles);
    System.out.println("readAllDirs: " + readAllDirs);
  }
}

public final class TestClass2
{
  public static void main(String[] args)
  {
    //these two DO result in COMPILE error, because both vars are private
    System.out.println("TestClass.readAllFiles: " + TestClass.readAllFiles);
    System.out.println("TestClass.readAllDirs: " + TestClass.readAllDirs);
  }
}
3 голосов
/ 30 апреля 2010

Все они эквивалентны.

Ваше последнее заявление:

private static boolean readAllFiles = false,readAllDirs = true;

эквивалентно:

private static boolean readAllFiles = false;
private static boolean readAllDirs = true;
...