code: public static function create($name = NULL) {
      $c = self::expandName($name);
      
      if (is_string($c)) {
        return ClassUtil::newClassInstance($c, array_slice(func_get_args(), 1));
  
      } elseif ($c instanceof Type) {
        return $c;
  
      } else {
        throw Exception::invalidArgument(1, __FUNCTION__, $name, self::create('String'));
      }
    }
docs: Gibt eine Instanz für einen DatenTyp zurück
  
  Der Name darf nur für nicht abstrakte Type-Klassen weggelassen werden
  
  Es ist möglich folgende Shorthands zu benutzen:
  TypeName[] => ein Array mit dem inneren Typ mit dem namen "TypeName"
  Object<Class\FQN> => ein Objekt mit dem inneren Type der Klasse "Class\FQN"
  
  @param $name definition des Types