Android ART can’t set final fields correctly
January 2016
For example you have class Person. Person is a POJO for REST-service (for instance, for using with retrofit).
class User {
public static final String firstName = "", lastName = "";
}
This line of code creates two read-only fields. It’s necessary to assign initial values because every field is final. But there’s another way to do the same thing:
class User {
public static final String firstName, lastName;
public User() {
firstName = "";
lastName = "";
}
}
It’s hard to believe, but second – is the only right way to create class.
For example, you’re creating class instance:
User user = SomeReflection.getUser();
// user.lastName.equals("Username")
callFunction(user); // in this function user.lastName.equals("") for 1st method
I think it depends on JVM but it’s truth for Android ART.
Leave a Reply