下面列出了com.google.gson.internal.Excluder#excludeField ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static Collection<String> getPropertyNames(
final Class<?> clazz,
final Excluder excluder,
final FieldNamingStrategy fieldNamingStrategy) {
final Collection<String> propertyNames = new ArrayList<>();
// Class fields are declared per class so we have to traverse the whole hierarchy
for (Class<?> i = clazz;
i.getSuperclass() != null && i != Object.class;
i = i.getSuperclass()) {
for (final Field declaredField : i.getDeclaredFields()) {
// If the class field is not excluded
if (!excluder.excludeField(declaredField, false)) {
// We can translate the field name to its property name counter-part
final String propertyName = fieldNamingStrategy.translateName(declaredField);
propertyNames.add(propertyName);
}
}
}
return propertyNames;
}
protected static boolean excludeField(Field f, boolean serialize, Excluder excluder) {
return !excluder.excludeClass(f.getType(), serialize) && !excluder.excludeField(f, serialize);
}
static boolean excludeField(Field f, boolean serialize, Excluder excluder) {
return !excluder.excludeClass(f.getType(), serialize) && !excluder.excludeField(f, serialize);
}
static boolean excludeField(Field f, boolean serialize, Excluder excluder) {
return !excluder.excludeClass(f.getType(), serialize) && !excluder.excludeField(f, serialize);
}