为什么不能在类级别使用 System.setProperty?

Aks*_*s.. 0 java testng selenium

我曾尝试System.setProperty在 main 方法中使用,没有任何问题,但是当我切换到TestNGSelenium 学习的一部分时,我意识到我们无法System.setProperty在类级别编写。它应该位于方法级别或位于static块中。我只是想了解 Java 的什么特性迫使我们这样做。

public class NewTest {
    public String baseUrl = "http://newtours.demoaut.com/";
    static {
        System.setProperty("webdriver.chrome.driver","D:\\paths\\chromedriver.exe");    
    }

    WebDriver driver = new ChromeDriver();

    @Test
     public void f1() {
      ...}
   }
Run Code Online (Sandbox Code Playgroud)

在静态块之外写入此内容会显示编译错误,例如“此行有多个标记,语法错误”

use*_*421 5

我只是想了解 Java 的什么特性迫使我们这样做。

Java 的“特性”是您只能在类级别编写方法和声明,但System.setProperty()两者都不是:它是方法调用。