如何在java流中使用startsWith方法?

如何在java流中使用startsWith方法?,java,java-stream,Java,Java Stream,我正在尝试使用流作为我的代码 我有一个实体类,它有一个以“abc”前缀开头的字段 例如: private String abcTittlename; private String titlePage; 并且有一个正规场 例如: private String abcTittlename; private String titlePage; 我正在尝试使用startsWith方法来不启动“abc”,我想写为不以abc开头的字段 我如何使用这个方法,或者在流java中是否有其他方法可以这样

我正在尝试使用流作为我的代码

我有一个实体类,它有一个以“abc”前缀开头的字段

例如:

private String abcTittlename; 
private String titlePage;
并且有一个正规场

例如:

private String abcTittlename; 
private String titlePage;
我正在尝试使用startsWith方法来不启动“abc”,我想写为不以abc开头的字段


我如何使用这个方法,或者在流java中是否有其他方法可以这样做?请帮帮我

假设你有一门课:

public class MyClass {
    private String abcTittlename; 
    private String titlePage;

    // other fields
}
您可以使用ClassgetDeclaredFields和ArrayStream选择所有不以abc开头的字段:


据我所知,你的问题是你能做什么:

    // Create a new list to iterate over it later
    final List<Field> allFields = new ArrayList<>();
    // Add all fields from your desired class
    allFields.addAll(Arrays.asList(YourEntityClass.class.getDeclaredFields()));
    // Iterate over all fields
    final List<Field> filteredFields = allFields.stream()
                                                // Filter by any condition
                                                .filter(field -> !field.getName().startsWith("abc"))
                                                // Collect your filtered fields
                                                .collect(Collectors.toList());

我想写为字段,这是什么意思?你想通过网络发送对象,但只发送以前缀开头的字段现在你正进入一个全新的Java世界,创建流和使用StartWith突然成为了你最不需要的问题。你不需要使用名称前缀,您最好使用注释来标记那些应该传输的字段。您好,谢谢您的回复,但我不想以“abc”开头fields@asme再加一个!在条件允许的情况下,请查看postedited@azro感谢您的编辑,在撰写本文时,我并不确定OP到底想要什么请注意getDeclaredFields不包括从超类继承的字段。因此,如果要将这些字段包括到中,则必须递归地遍历类层次结构。@Lino getFields可以循环工作,但不会返回私有字段。所以这取决于。。。