这是我的代码:
public class MessagePrettier<T> {
private final T uglyMessage;
public MessagePrettier(T uglyMessage) {
this.uglyMessage = uglyMessage;
}
public List<String> stringList() {
List<String> strings = new ArrayList<String>();
strings.add("Pretty version of: " + uglyMessage.toString());
return strings;
}
public static void main(String[] args) {
MessagePrettier<Integer> p = new MessagePrettier<Integer>(new Integer("25"));
List list = p.stringList();
for (String s : list) {
System.out.println(s);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译这段代码时,我会得到:
java: incompatible types
required: java.lang.String
found: java.lang.Object
Run Code Online (Sandbox Code Playgroud)
那么stringList()返回一个字符串列表,为什么编译器期望对象?
Era*_*ran 10
您正在将您分配List<String>给原始List变量:
List list = p.stringList();
Run Code Online (Sandbox Code Playgroud)
因此,迭代它返回Objects.
将其更改为:
List<String> list = p.stringList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |