我怎样才能达到使用通用 class 列表添加和创建的两个值

How can I reach to the two values added and created with generic class list

如何访问使用通用 class 列表添加和创建的两个值?我创建了一个带有 2 个变量 (tag_id) 和 (rssi) 的通用 class。

通用 Class

@Getter
@Setter
@Data
public class Test<T>{

    public int tag_id;

    public float rssi;

    public List<T> list = new ArrayList<>();

    public Test() {
    
    }
}

RFID Class

@Getter
@Setter
@Data
public class RFID extends Test {
    public RFID(float rssi) {
        this.rssi = rssi;
    }

标签Class

@Getter
@Setter
@Data
public class Tag extends Test {

    public Tag(int tag_id) {
        this.tag_id = tag_id;
    }

主要Class

public static void main(String[] args) {
    List<Test> testlist = new ArrayList<>();
            testlist.add(new Tag(1));
            testlist.add(new RFID(1));
    }

我想这样输出:[1(tag_id), [1.0,2.0,3.0](rssi)]。我可以达到这两个值,但不能达到嵌套类型,我可以将值添加到我的测试列表,但我想输出嵌套类型。

如果您想为单个标签添加多个 RFID,请将您的代码编写为:

public static void main(String[] args) {
    SpringApplication.run(Demo3Application.class, args);

    List<Test> testlist = new ArrayList<>();
    testlist.add(new Tag(1));
    testlist.get(0).list.add(new RFID(1));
    testlist.get(0).list.add(new RFID(66));

    testlist.add(new Tag(2));
    testlist.get(1).list.add(new RFID(2));
    testlist.get(1).list.add(new RFID(77));

    for (Test test: testlist) {
        System.out.println("[" + test.getTag_id() + ", [" + test.getList().stream().map(i -> String.valueOf(i)).collect(Collectors.joining(", ")) + "]]");
    }
}