Digamos que hago algo como esto en Java 8 (Android específicamente)
String name = someObject.getName() != null ? someObject.getName() : "null";
y el método getName()
podría tener una gran cantidad de llamadas a otros métodos para resolver el nombre. También supongo que estoy llamando este código con bastante frecuencia.
¿Sería mejor, se refiere a rendimiento, hay que hacer algo como esto en su lugar?
String name = someObject.getName();
name = name != null ? name : "null";
Esto se ve como una optimización posible, llamada CSE ; un JVM
yo sepa que lo hace (pero no está seguro acerca de Android).
Pero esto depende en gran medida lo getName
hace, si se asigna internamente otros objetos y hace algunas otras cosas. Por desgracia no puedo decir cómo para demostrar que estoy equivocado o aquí mismo (puede ser que necesite para investigar); la verdad es que tengo la costumbre de hacer esto por mí mismo. Por ejemplo:
for(int i=0;i<list.size();++i){
}
Trato de extraer siempre int size = list.size()
antes del bucle; incluso si esto en mi entendimiento está sujeto a scalar replacement
la optimización.