boolean publicFieldOnly = valueAccessor == null;
Field field = _NSReflectionUtilities._fieldForClass(objectClass, fieldName, publicFieldOnly);
if (field != null) {
Class valueClass = _NSUtilities.classObjectForClass(field.getType());
if (_NSUtilities._isClassANumber(valueClass)) {
return new _NumberFieldBinding(objectClass, key, field, valueClass, valueAccessor);
}
if (_NSUtilities._isClassABoolean(valueClass)) {
return new _BooleanFieldBinding(objectClass, key, field, valueAccessor);
}
return new _FieldBinding(objectClass, key, field, valueAccessor);