我以为我知道我用仿制药做了什么,但显然不是.
ArraySetList<char> setA = new ArraySetList<char>();
Run Code Online (Sandbox Code Playgroud)
编译时给出:
error: unexpected type
ArraySetList<char> setA = new ArraySetList<char>();
^
required: reference
found: char
Run Code Online (Sandbox Code Playgroud)
以及所有后续char的相同错误.我想知道如何声明一个新的字符ArraySetList.
这是我的所有文件.
http://pastebin.com/4h37Xvu4 // ArraySetList (extends ArrayUnsortedList)
http://pastebin.com/FxmynzkC // Driver
http://pastebin.com/CgVA0zjY //ArrayUnsortedList (implements ListInterface)
http://pastebin.com/3iXrCsCc //ListInterface\
Run Code Online (Sandbox Code Playgroud)
Lit*_*ild 11
Java Generics适用于对象而不适用于原始数据类型.但是,如果您需要存储原始数据类型,则需要使用相应的包装类对象.
这些类只是"包裹"原始数据类型,为它们提供对象外观.
因为char,相应的包装类是Character,因此,您必须编写您的代码行:
ArraySetList<Character> setA = new ArraySetList<Character>();
Run Code Online (Sandbox Code Playgroud)
请阅读:http://docs.oracle.com/javase/tutorial/java/data/numberclasses.html
但是,添加元素时,您将添加正常char.这是因为如果需要,Java会自动将其转换Character为char 自动并自动返回.这称为自动装箱转换.
自动装箱是Java编译器在基元类型和相应的对象包装类之间进行的自动转换.例如,将int转换为Integer,将double转换为Double,依此类推.如果转换是另一种方式,则称为拆箱.
来源:http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
泛型类型参数需要引用类型(或wilcards).
你不能使用原始类型(更多见限制);
ArraySetList<Character> setA = new ArraySetList<Character>();
Run Code Online (Sandbox Code Playgroud)
阅读JLS 4.5.1 Type Arguments和Wildcards以获取可用类型
| 归档时间: |
|
| 查看次数: |
11194 次 |
| 最近记录: |