Friday, 13 May 2016

java - List foreach method

I made this method:




public void update(){
for(GameObject object : objects)
object.update();
}


And then my IDE I could use for each instead any, that I what thought I did, any I let it replace it. This it what it gave me:



public void update(){

objects.forEach(GameObject::update);
}


At first glance, this seems to better, and then my IDE was saying you can convert this to lambda expressions which would be:



public void update(IUpdater updater){
objects.forEach((object) -> object.update());
}



Which gave the impression that GameObject:: update is some time of lambda expressions, bare in mind the only new stuff to java 8 that I know of (object) -> object.update() replaces anonymous class guess it still under the hood somewhere.



Does this essence 'objects.forEach(GameObject::update)' means:



public void update(){
objects.forEach(new Consumer() {
@Override
public void accept(GameObject object) {
object.update();

}
});
}


And if that is the case then would my original method be more efficient that GameObject::update. Have left it the method as GameObject::update but will change it back if find original method be more efficient.



I am asking the question on a purely on the basis of performance.

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...