Lambda 如何将具有多个属性的对象流转换为串联字符串
我想将一个类的所有属性转换为特定格式的字符串,并用换行符将它们连接起来。我知道我可以迭代列表,将元素的属性转换为字符串等等。。。但我认为应该有一个更好的方法通过使用streams和lambdas来实现我的目标,我只是不知道如何实现。如果不可能,请告诉我 鉴于以下类别:Lambda 如何将具有多个属性的对象流转换为串联字符串,lambda,java-8,java-stream,Lambda,Java 8,Java Stream,我想将一个类的所有属性转换为特定格式的字符串,并用换行符将它们连接起来。我知道我可以迭代列表,将元素的属性转换为字符串等等。。。但我认为应该有一个更好的方法通过使用streams和lambdas来实现我的目标,我只是不知道如何实现。如果不可能,请告诉我 鉴于以下类别: public class LambdaTest { public LambdaTest(String a, int b) { setAttributeA(a); setAttributeB
public class LambdaTest {
public LambdaTest(String a, int b) {
setAttributeA(a);
setAttributeB(b);
}
private String attributeA;
private int attributeB;
public String getAttributeA() {
return attributeA;
}
public void setAttributeA(String attributeA) {
this.attributeA = attributeA;
}
public int getAttributeB() {
return attributeB;
}
public void setAttributeB(int attributeB) {
this.attributeB = attributeB;
}
}
我正在寻找一种很好的方法来转换列表,使其能够为以下对象返回如下字符串:
LambdaTest lambdaTest1 = new LambdaTest("a", 1);
LambdaTest lambdaTest2 = new LambdaTest("b", 2);
List<LambdaTest> lambdaTests = Arrays.asList(new LambdaTest[] {lambdaTest1, lambdaTest2});
您可以将对象映射到字符串并将其连接:
在
toString
方法中定义字符串转换可能是有意义的。您可以将对象映射到字符串并将其连接:
在toString
方法中定义字符串转换可能是有意义的
"Lambda: A: a, B: 1 \nLambda: A: b, B: 2".equals(lambdaTests.magicLmabdaTransformation())
String result = lambdaTests.stream()
.map(l -> "Lambda: A: " + l.getA() + ", B: " + l.getB())
.collect(Collectors.joining("\n"));