可以使用 Java 8 的流(Stream)API 或传统的循环方式来过滤出 versionviewName 都不为空的对象。下面是两种方法的示例代码:

1. 使用 Java 8 流(Stream)API

import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<MyObject> list = ...; // 初始化对象列表
        
        List<MyObject> filteredList = list.stream()
            .filter(obj -> obj.getVersion() != null && !obj.getVersion().isEmpty() &&
                            obj.getViewName() != null && !obj.getViewName().isEmpty())
            .collect(Collectors.toList());
        
        // 使用 filteredList
    }
}

class MyObject {
    private String version;
    private String viewName;

    // getters and setters
    public String getVersion() { return version; }
    public void setVersion(String version) { this.version = version; }
    public String getViewName() { return viewName; }
    public void setViewName(String viewName) { this.viewName = viewName; }
}

2. 使用传统的循环方式

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<MyObject> list = ...; // 初始化你的对象列表
        List<MyObject> filteredList = new ArrayList<>();
        
        for (MyObject obj : list) {
            if (obj.getVersion() != null && !obj.getVersion().isEmpty() &&
                obj.getViewName() != null && !obj.getViewName().isEmpty()) {
                filteredList.add(obj);
            }
        }
        
        // 使用 filteredList
    }
}

class MyObject {
    private String version;
    private String viewName;

    // getters and setters
    public String getVersion() { return version; }
    public void setVersion(String version) { this.version = version; }
    public String getViewName() { return viewName; }
    public void setViewName(String viewName) { this.viewName = viewName; }
}

3. 使用 Iterator

另一种方式是使用 Java 7 或更早版本的 Iterator 进行过滤。以下是这种方式的示例代码:

使用 Iterator

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        List<MyObject> list = ...; // 初始化对象列表
        List<MyObject> filteredList = new ArrayList<>();
        
        Iterator<MyObject> iterator = list.iterator();
        while (iterator.hasNext()) {
            MyObject obj = iterator.next();
            if (obj.getVersion() != null && !obj.getVersion().isEmpty() &&
                obj.getViewName() != null && !obj.getViewName().isEmpty()) {
                filteredList.add(obj);
            }
        }
        
        // 使用 filteredList
    }
}

class MyObject {
    private String version;
    private String viewName;

    // getters and setters
    public String getVersion() { return version; }
    public void setVersion(String version) { this.version = version; }
    public String getViewName() { return viewName; }
    public void setViewName(String viewName) { this.viewName = viewName; }
}

使用 Iterator 方式可以避免直接修改原列表(如果需要在原列表上进行操作)。这是一种适用于更旧版本 Java 的方法。