Static member accessed via instance reference что это

Статический член доступен через ссылку на экземпляр (с помощью ключевого слова this)

В андроид студии я пытаюсь установить strokeWidth с помощью setStrokeWidth.
Но я получаю предупреждение статический член ‘com.example.ud.RoundCapGraph.strokeWidth’, доступ к которому осуществляется через ссылку на экземпляр

Вопрос: создает ли ключевое слово this новый экземпляр и получает доступ к переменной через новый экземпляр?

РЕДАКТИРОВАНИЕ: мне не нужно устанавливать статическую переменную strokeWidth, но я хочу понять, почему при использовании ключевого слова this генерируется конкретное предупреждение.

3 ответа

Ключевое слово this не создает новый экземпляр, но this. обычно используется для доступа к переменным экземпляра.

Лучший способ получить доступ к переменной static :

Когда вы получаете доступ к статическому члену, используя экземпляр объекта, экземпляр получает замену на Class. т.е. this.strokeWidth будет заменен на RoundCapGraph.strokeWidth

NullPointerException не будет из-за замены экземпляра.

Я нашел ссылку на это в Спецификация Java: Глава 15, Раздел 11: Выражения доступа к полю.

Пример 15.11.1-2. Переменная получателя не имеет значения для статического доступа к полю

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

Правильно, статические члены принадлежат классу, а не экземпляру.

Источник

Static member accessed via instance reference что это

Бывалый
Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это

Профиль
Группа: Участник
Сообщений: 210
Регистрация: 10.7.2003
Где: Санкт-Петербург

Репутация: нет
Всего: 2

Все работает но строка

Код
labelValueSale.setText(sPokupCenaProd.valueOf(fPokupCenaProd));

выделена и если навестись на нее написано
static member «java.lang.string.valueOf(float)» accessed via instance reference

что оно такое имеет ввиду? JDK1.5
вот кусок кода

Код
public void buttonOk_actionPerformed(ActionEvent e) <
float fPokupCenaProd=0;
String sPokupCenaProd=»»;
for (int i = 0; i

Эксперт
Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что этоStatic member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что этоStatic member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что этоStatic member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это

Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 49
Всего: 171

Код
labelValueSale.setText(sPokupCenaProd.valueOf(fPokupCenaProd));

я нe понял, a что ты хочешь сделать в скобках?

Account removed
Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что этоStatic member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что этоStatic member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это

Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 8
Всего: 48

Бывалый
Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это

Профиль
Группа: Участник
Сообщений: 210
Регистрация: 10.7.2003
Где: Санкт-Петербург

Репутация: нет
Всего: 2

Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »

[ Время генерации скрипта: 0.0983 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Best solution for static member being accessed by instance reference

I have this method in nearly all my classes.

Accessing this static method in a helper class

I am getting lint warning of «static member being accessed by instance reference». I don’t know how to not use «this» here. So I have two options.

1) Ignore the lint warning

2) Drop the «static» in my helper method.

Which is better? Or propose a third solution.

Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это

4 Answers 4

The warning is saying that you’re calling a static method showInfoDialog through an instance materialHelper instead of through the class MaterialHelper itself. This is «bad» because it suggests the method is actually an instance method that depends on some state in the instance.

The solution is to replace

everywhere in your code with

Replace materialHelper with the class name where showInfoDialog() resides. From your description, materialHelper is an instance of this class.

Static member accessed via instance reference что это. Смотреть фото Static member accessed via instance reference что это. Смотреть картинку Static member accessed via instance reference что это. Картинка про Static member accessed via instance reference что это. Фото Static member accessed via instance reference что это

this method showInfoDialog(MainActivity.this, iv, title, text); is ‘static method’

It means: this method is shared for all instances of this class (static variable too). It really doesn’t matter where it was called. That’s why lint says: «oh gosh, why do you call this static method using this instance? It might change shared values in the other instances! Be careful!». Java will understand your code but this is a small mistake (your misunderstooding). That’s why the correct solution is to use this:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *