Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

    List<Widget> filtered = filter(widgets, new Filter<Widget>() {
        @Override public boolean keep(Widget w) {
            return w.getColor() == RED;
        }
    });

    List<Integer> weights = mapToInt(filtered, new Mapper<Widget, Integer>() {
        @Override public Integer map(Widget w) {
            return w.getWeight();
        }
    });

    int sum = sum(weights);


Seems too short. Maybe you could split it into 5 files? You don't even have a factory. Much less a factory factory. This code will never cut it in the enterprise world.


It turns out there's a good blog article that explains why the less enterprisey way is better since it remove the iteration loop of the collection and lets the computer [figure out how to express the sum of weights of the red objects in a collection of blocks]:

http://blog.hartveld.com/2013/03/jdk-8-33-stream-api.html

I've been around too long to trust the computer to figure out how best to do something. If I'm wrong then Java 8 leads the way to the end of programmers, similar to how robotics mostly ended how cars were manufactured.


Nice, thanks! Now _that_ I get.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: