With no guarantee that it works in all cases, this may be a workaround (not a pretty one):
function nout = nargout_for_class_fhandle(fhandle)
finfo = functions(fhandle);
fwspace = finfo.workspace{1};
wspacefields = fieldnames(fwspace);
mc = metaclass(fwspace.(wspacefields{1}));
searchnames = cellfun(@(name) sprintf('%s//.%s', wspacefields{1}, name), {mc.MethodList.Name}, 'UniformOutput', false);
midx = find(regexp(finfo.function, searchnames, 'once'));
mm = mc.MethodList(midx);
nout = numel(mm.OutputNames);
end
I've not put any error checking in there and because it attempts to find the method name in the body of the anonymous function code it could be defeated.