Lambda 如何将具有多个属性的对象流转换为串联字符串

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

我想将一个类的所有属性转换为特定格式的字符串,并用换行符将它们连接起来。我知道我可以迭代列表,将元素的属性转换为字符串等等。。。但我认为应该有一个更好的方法通过使用streams和lambdas来实现我的目标,我只是不知道如何实现。如果不可能,请告诉我

鉴于以下类别:

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"));