【发布时间】:2015-01-12 14:50:35
【问题描述】:
我有一个卡片类
public class Card {
private int value, suit;
public Card(int value, int suit) {
this.value = value;
this.suit = suit;
}
//gets, sets, toString
}
这就是我通常填充 Card 的 ArrayList 的方式
for(int suit = 1; suit <= 4; ++suit)
for(int value = 1; value <= 13; ++value)
Cards.add(new Card(value, suit));
但我想使用 Lambda 表达式来初始化它
ArrayList<Card> Cards = IntStream.range(1, 4)
.map(value -> IntStream.range(1, 13)
.map(suit -> new Card(value, suit)));
Intellij 在.map(suit -> new Card(suit, value)) 下给我一个错误
它说“lambda 表达式中的返回类型卡不兼容”
【问题讨论】:
-
我个人会在这里继续使用旧的 Java 7 风格,这种情况不适合 那么好 用于流使用。
-
如果这是一个真正的应用程序,我可能会这样做,但我这样做只是为了更好地学习 Lambda。