可以说我有一个数组movie = get_movies()
在ruby中,我经常这样做
movies.map {|电影| movie.poster_image_url}或者其他一些.
我能做些什么在Java中类似?同样优雅,简洁,可读.我知道有很多方法可以做到这一点,但如果有一个很好的方法来做到这一点,这将使我不想使用Groovy或让我知道的东西.我确信Java有一些很棒的方法来做这样的事情.
到目前为止,这是我的Java代码,使用的是https://github.com/holgerbrandl/themoviedbapi/版的TheMovieDB API Java包装器.
TmdbMovies movies = new TmdbApi(BuildConfig.MOVIEDB_API_KEY).getMovies();
MovieResultsPage results = movies.getPopularMovieList("en", 1);
// The following line is RubyJava and needs to your help!
results.getResults().map {|e| e.getPosterPath() };
// or ... more RubyJava results.getResults().map(&:getPosterPath());
如果您了解了很多Java,但不熟悉ruby,那么可以在Ruby中更多地了解#map / #collection. http://ruby-doc.org/core-1.9.3/Array.html#method-i-collect
到目前为止,我已经看到从最近的一些快速浏览回答这个问题的最近的事情… https://planet.jboss.org/post/java_developers_should_learn_ruby
这些看起来也很接近. http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
这么多选择:Functional Programming in Java
这也是Android … Android开箱即用的任何好东西都能让这种编程变得简单吗?这是一种函数式编程风格,对吧?
–
在收到回复之后,我得到了很好的见解,例如:’for循环没有任何问题’和(基本上)’语法不是一切’,我决定不会尝试让我的所有Java看起来像Ruby!我读了这篇文章,然后设想了另一个未来,“未来我”做出了一大堆糟糕的风格决定:https://github.com/google/guava/wiki/FunctionalExplained.< – (一个很好的阅读.TL; DR’当你去做一些荒谬的长度来制作你的代码时“单线,“番石榴队哭泣”
最佳答案 在流上有map方法,它接受方法参数.
collection.stream()
.map(obj -> obj.someMethod())
.collect(Collectors.toList()));
map返回另一个流,以便检索您已调用collect方法的列表.
在一篇文章中解释太多了,但是你可以访问这个链接,这对我帮助很大: