我正在尝试使用流作为代码。
我有一个实体类,它的字段以'abc'前缀开头。
示例:
private String abcTittlename;
并具有普通字段
示例:
private String titlePage;
我正尝试使用startsWith
方法不启动'abc',我想写成不以abc开头的字段
如何使用此方法,或者还有其他方法可以在流java中执行此操作?请帮帮我!
答案 0 :(得分:0)
假设您有一堂课:
public class MyClass {
private String abcTittlename;
private String titlePage;
// other fields
}
您可以使用Class#getDeclaredFields()
和Arrays#stream()
选择所有以abc
开头的字段:
Arrays.stream(MyClass.class.getDeclaredFields())
.filter(field -> !Modifier.isStatic(field.getModifiers())) // only include instance fields
.filter(field -> !field.getName().startsWith("abc"))
.forEach(field -> System.out.println(field.getName()))
答案 1 :(得分:0)
据我了解,您的问题是您可以做什么:
// 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());