4

以下是等价的吗?

private static boolean readAllFiles = false,readAllDirs = false;

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

如果是这样,它们是否仍然具有具有不同值的相同修饰符?

private static boolean readAllFiles = false,readAllDirs = true;
4

2 回答 2

9

是的,无论它们的初始值如何,它们都是等价的。

下面是一些测试代码来演示:

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);
  }
}
于 2010-04-29T20:27:58.387 回答
4

它们都是等价的。

你的最后一句话:

private static boolean readAllFiles = false,readAllDirs = true;

相当于:

private static boolean readAllFiles = false;
private static boolean readAllDirs = true;
于 2010-04-29T20:30:34.513 回答