как переопределить статическую переменную класса - PullRequest
0 голосов
/ 22 марта 2011

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

//Settings.java
package org.jbox2d.common;

public class Settings {
    public static float velocityThreashold = 1.0f;
}

//MyClass.class
package org.jbox2d.common;

import com.otherlibrary
public class MyClass {

}

Спасибо

Ответы [ 4 ]

1 голос
/ 22 марта 2011

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

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

0 голосов
/ 22 марта 2011

Вы не можете, вот в чем смысл их окончательности.

Что касается вашего кода, у вас нет окончательной переменной, поэтому вам просто нужно изменить значение и все.

0 голосов
/ 22 марта 2011

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

Что вы можете сделать, это установить значение SpeedThreashold в любое значение, которое вы хотите, так как оно общедоступно.

Я думаю, что вы хотите сделать что-то вроде следующего:

public static void main(String[] args) {
  org.jbox2d.common.Settings.velocityThreashold = 2.0f;

  //... the rest of your program
}
0 голосов
/ 22 марта 2011

Переопределить переменную?Если вы имеете в виду метод, то:

Вы не можете переопределить статический метод, потому что статические элементы не наследуются

...