Обычно ли метод, начинающийся с "get", фактически устанавливает свойства?
Я был удивлен, узнав, что Android API позволяет нам изменять размеры объектов imageView, вызывая метод getLayoutParams(). Например:
myTimerBar.getLayoutParams().width = timeRemaining;
Не существует соответствующего метода setLayoutParams().
Является ли распространенным для методов, имеющих слово "get", возможность программистам "устанавливать" свойства? Я понимаю, что этот метод технически не является методом "получения", но он начинается со слова "получить".
3 ответа
getLayoutParams()
возвращается ViewGroup.LayoutParams
который имеет переменную экземпляра width
это объявлено как public, а в Java вы можете получить доступ к общедоступной переменной экземпляра и установить для нее новое значение без метода setter.
Например:
public class Point
{
public int x;
public int y;
}
Point p = new Point();
p.x = 10;
p.y = p.x + 1;
Является ли распространенным для методов, имеющих слово "get", возможность программистам "устанавливать" свойства? Я понимаю, что этот метод технически не является методом "получения", но он начинается со слова "получить".
Это возвращает LayoutParams
объект, связанный с View
, Этот объект не имеет изменяемого состояния. Но View
класс имеет setLayoutParams()
так же, как и любой подкласс View
, Вам придется создать новый LayoutParams
установить.
В Android SDK есть setLayoutParams(), начиная с уровня API 1: http://developer.android.com/reference/android/view/View.html