By definition, a final variable can only be assigned once. And static fields of a class are initialized when the class is loaded. So obviously, the IN
Quart instance is created just once.
java public static final object
Pregunta
following code, containing file is here
public abstract class Quart extends TweenEquation {
public static final Quart IN = new Quart() {
@Override
public final float compute(float t) {
return t*t*t*t;
}
...
if i call Quart.IN.compute(0.5f) somewhere in my running application (e.g. in a render() function that is called 60 times per second), does this create a new Quart on every call, or is it just allocated once?
it would make sense, right?
thanks, cheers
Solución
Otros consejos
is it just allocated once
Yes, you're calling the compute
method always on the same single object.
Just once. The static field IN is initialized during the first access to the class Quart.
You can also check it's created only once by writing output when an instance of Quart is created:
public abstract class Quart extends TweenEquation {
public static final Quart IN = new Quart() {
{ System.out.println("created"); }
@Override
public final float compute(float t) {
return t*t*t*t;
}
...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow