I'm trying to find required fields for lead object, I want to make sure this correct logic, because its giving field results which are not marked as required.I'm using isNillable() method in field describe to find out the result, below is the sample code.
Map<String, Schema.SObjectField> fieldsMap = Schema.SObjectType.Lead.fields.getMap();
for(String key : fieldsMap.keySet()){
Schema.DescribeFieldResult result = fieldsMap.get(key).getDescribe();
if(!result.isNillable() && result.isCreateable()) {
System.debug(logginglevel.info, '+++++++++ result = '+result.getName());
}
}