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