接口

import java.util.*;
import java.util.stream.*;

interface Named {
    String getName();
}

class Flower implements Named {
    private String name;

    public Flower(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

class City implements Named {
    private String name;

    public City(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

class Star implements Named {
    private String name;

    public Star(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

var rows = Arrays.asList(
    new Flower("Rose"),
    new City("Rome"),
    new Star("Sirius"));

var names = rows
    .stream()
    .map(e -> e.getName())
    .collect(Collectors.toList());
var list = String.join(", ", names);
//list is Rose, Rome, Sirius

System.out.printf("list is '%s'", list);