List is a raw type. References to generic type List should be parameterized

后端 未结 4 1009
刺人心
刺人心 2020-12-09 11:04

Below is my syntax

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

I am getting a syntax error of:

相关标签:
4条回答
  • 2020-12-09 11:32

    You may define "publiesdList" this way:

    List<String> publiesdList = new List<String>();
    

    The warning will dissappear.

    0 讨论(0)
  • 2020-12-09 11:34

    I believe that

    List is a raw type. References to generic type List should be parameterized

    is not an error, but a warning.

    Understanding generics is a cornerstone if you are planning to use Java so I suggest that you should check out Java's tutorial pages about this:

    java generics tutorials

    So if you know what type of objects are contained in publiesdList, than you can do this:

    List<YourType> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
    

    If there are multiple types of objects in your list than you can use a wildcard:

    List<?> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
    

    Or if you just want to get rid of the warning than you can suppress it like this:

    @SuppressWarnings("rawtypes")
    List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
    

    the latter is not recommended however.

    0 讨论(0)
  • 2020-12-09 11:49

    You need to give it the correct generic type e.g.

    List<String> publiesdList = ...
    List<String> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
    
    0 讨论(0)
  • 2020-12-09 11:50

    I've had the same warnings in Eclipse and just click on the warning sign and get the option of adding a type argument to the Hash, List, Array or what have you. Big list of discussion here What is a raw type and why shouldn't we use it?

    0 讨论(0)
提交回复
热议问题