public boolean canDetect(Object value) { if (value == null) { optional = true; return true; } Schema schema = inferSchema(value); if (schema == null) { return false; } if (knownType == null) { knownType = schema.type(); } else if (knownType != schema.type()) { return false; } return true; }