public <T>List<T> initPlugins(List<PluginInfo> pluginInfos,Class<T> type,String defClassName){
  if (pluginInfos.isEmpty())   return Collections.emptyList();
  List<T> result=new ArrayList<>(pluginInfos.size());
  for (  PluginInfo info : pluginInfos)   result.add(createInitInstance(info,type,type.getSimpleName(),defClassName));
  return result;
}

public < T > List < T > initPlugins ( List < PluginInfo > pluginInfos , Class < T > type , String defClassName ) { if ( pluginInfos . isEmpty ( ) ) return Collections . emptyList ( ) ; List < T > result = new ArrayList < > ( pluginInfos . size ( ) ) ; for ( PluginInfo info : pluginInfos ) result . add ( createInitInstance ( info , type , type . getSimpleName ( ) , defClassName ) ) ; return result ; }
for a given list of plugininfo return the instances as a list
