Разрешены ли статические сеттеры/геттеры?

Я разрабатываю веб-приложение, потому что есть метод утилиты с именем getData(), который я сделал его как статический. До сих пор его штраф, но этот статический метод с именем getData() нуждается в некоторых данных из сеттеров и геттеров. Итак, теперь мой вопрос: можем ли мы сделать сеттер/геттеры статическими?

Ответ 1

если ваши свойства static, тогда Getters and setters также будет static.. все зависит от вас.

Ответ 2

Getters и seters могут быть статическими, если они получают/устанавливают статические поля.

Ответ 3

да, вы можете и этот класс независимо от того, какой объект/переменная был определен, они выглядят как

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, но для этого вам нужно создать экземпляр этого класса. Статичность использовалась без создания экземпляра класса, к которому вы можете получить доступ к своему члену.

Ответ 4

Конечно, вы можете сделать геттеры и сеттеры статическими (с соответствующими статическими полями).

Но:. Поскольку вы имеете дело с веб-приложением (несколько параллельных запросов - несколько потоков), у вас наверняка есть проблема с потоками - это не потокобезопасно, если только вы заботитесь (например, используйте synchronized).

Ответ 5

Да, геттеры/сеттеры могут быть сделаны статичными в зависимости от ваших потребностей. Или, может быть, я не понял ваш вопрос!

Ответ 6

Конечно. Геттер и сеттер - это обычные методы. Они могут быть статическими или нет.

Единственное ограничение - не использовать нестатические данные и метод в статическом методе. Поскольку статический метод и статические записи относятся к классу, а нестатический метод и поле относятся к объекту. Я думаю, что это два разных уровня.

Ответ 7

Вы не можете ставить методы getter и setter, если вы используете какие-либо атрибуты или свойства, которые не являются статическими. Если вы используете IDE, такие как Eclipse и Netbeans, они будут предупреждать вас об этом или даже не позволяют компилировать код.