code: @SuppressWarnings({"rawtypes", "unchecked"})
      public static Collection convertListToCollection(final List list, final Class<Collection> toClass,
              final BeanFactory<Class<?>, Object> beanFactory) {
  
          if(list.getClass().equals(toClass)) {
              return list;
          }
  
          if(toClass.isInterface()) {
              if(List.class.isAssignableFrom(toClass)) {
                  // 変換先がListの実態の場合はそのまま。
                  return list;
  
              } else if(Set.class.isAssignableFrom(toClass)) {
  
                  Collection value = (Collection) beanFactory.create(LinkedHashSet.class);
                  value.addAll(list);
                  return value;
  
              } else if(Queue.class.isAssignableFrom(toClass)) {
  
                  Collection value = (Collection) beanFactory.create(LinkedList.class);
                  value.addAll(list);
                  return value;
  
              } else if(Collection.class.isAssignableFrom(toClass)) {
                  Collection value = (Collection) beanFactory.create(ArrayList.class);
                  value.addAll(list);
                  return value;
  
              } else {
                  throw new IllegalArgumentException("not support class type:" + toClass.getName());
              }
  
          }
  
          Collection value = (Collection) beanFactory.create(toClass);
          value.addAll(list);
  
          return value;
  
      }
docs: Listのインスタンスを他のCollectionのインスタンスに変換する。
  <p>ただし、変換先のクラスタイプがインタフェースの場合は変換しない。
  <p>変換元のクラスと変換先のクラスが同じ場合は、変換しない。
  
  @since 1.0
  @param list 変換元のListのインスタンス
  @param toClass 変換先のCollectionのクラス
  @param beanFactory てインスタンスを生成するファクトリクラス。
  @return 変換したコレクションのインスタンス