是否允许使用静态setter / getter?

时间:2011-11-17 11:41:29

标签: java web-applications

我正在开发一个Web应用程序,因为有一个名为getData()的实用程序方法,我将其作为静态方法。 到目前为止它很好,但这个名为getData()的静态方法需要来自setter和getter的一些数据。 所以现在我的问题是我们可以将setter / getters设为静态吗?

9 个答案:

答案 0 :(得分:22)

如果您的属性为static,那么Getters and setters也将是static ..这一切都取决于您..

答案 1 :(得分:9)

如果获取/设置静态字段,则getter和setter可以是静态的。

答案 2 :(得分:7)

是的,你可以和那个类无论那个对象/变量被定义它们看起来像

private static String abc = "";

您可以使用get / set方法

访问此对象
public static String getString(){
    return abc;
}

public static void setString(String newAbc){
   abc = newAbc;
}

你可以这样使用Test.getString(); or Test.setString("new string");

您也可以将此get / set方法定义为常规方法而不定义static关键字,但为此您需要创建该类的实例。静态用于不创建可以访问其成员的类的实例。

答案 3 :(得分:4)

当然,你可以使getter和setter保持静态(使用适当的静态字段)。

但是:当您处理Web应用程序(多个并行请求 - 多个线程)时,您肯定会遇到线程问题 - 这是非线程安全,除非你需要照顾(例如使用synchronized)。

答案 4 :(得分:0)

是的,getter / setter可以根据您的需要设置为静态。或者也许我不明白你的问题!

答案 5 :(得分:0)

当然可以。 Getter和setter只是常规方法。 它们可以是静态的。

唯一的限制是,不要在静态方法中使用非静态字段和方法。由于静态方法和静态字段属于一个类,而非静态方法和字段属于该对象。我认为它们是两个不同的层次。

答案 6 :(得分:0)

如果使用非静态的任何属性或属性,则无法使getter和setter方法成为静态。如果你使用像Eclipse和Netbeans这样的IDE,它们会警告你,或者甚至不允许你编译代码。

答案 7 :(得分:0)

是的,只要将类变量和方法都设为静态,就允许使用静态设置器/获取器。看看这个getter方法示例。

public class Test {
  private static WebDriver driver;


public static WebDriver getDriver() {
    return driver;

答案 8 :(得分:0)

如果数据成员是静态的,则可以使用静态的getter / setter。但是,如果您的数据成员不是静态的,则可以使用getData()静态方法在对象上调用非静态的getter / setter。