【Java】 type クラス名 does not take parameters

type クラス名 does not take parameterというエラーの原因と解決方法を紹介します。

原因

クラス名がそのクラス内で用いているコレクションと同じであることが原因です。

例:コレクションであるArrayListとクラス名ArrayList

import java.util.ArrayList;
public class ArrayList{
    public static void main(String[] args){
        ArrayList<String> list = new ArrayList<>();
    }
}

コレクションとは

Javaで様々なデータ構造に対応したデータをまとめて格納するためのクラスをコレクションといいます。

ArrayListの他にLinkedList,HashSet,HashMapなどあります。

解決方法

クラス名をそのクラス内で用いているコレクションとは異なる名前にすることで解決します。