java - 在 Java SE6 中使用 <?> 进行模板化有什么作用?

标签 java templates types

<分区>

Possible Duplicate:
Question marks in Java generics.

我正在为一项任务编辑其他人的代码,我正在尝试清理它以消除其中的数十条警告,而 Eclipse 给出了使用 Collections 作为原始类型的警告。当我接受它的建议修复时,它创建了这个。

Collections<?>

例子

public static String separatedString(Collection<?> c, String separator) {
    return separatedString(c, "", separator, "", new StringBuffer())
            .toString();
}

我只是想知道这究竟做了什么以及它是否安全。

最佳答案

这是generics的概念.

一切都是关于面向对象的编程

例如,如果我将变量声明为 Collection<MyClass>只能将声明为 MyClass 的类型或子类型的对象放入其中。

这很好地保持了直截了当的状态并限制了此代码的使用方式。

问号代表您选择的类别。

当您初始化类时,您可以...哎呀,只是看到这里有一个完全相同的副本: What does the question mark in Java generics' type parameter mean?

关于java - 在 Java SE6 中使用 <?> 进行模板化有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203990/

相关文章:

java - 无法初始化代理 - 没有 session

Java 接口(interface)和模板的混淆

c++ - 基于模板参数的条件编译时类型映射

c++ - 模板函数的实例化点在调用点之后,编译器如何查找和链接它?

go - 是否可以在 golang 中使用批量赋值?

java - 如何将 GWTP 与 ginjector 扩展一起使用?

java - 将数据传递到另一个线程,java

java - 使用两个不同的构造函数创建单个对象

C 编程 - 编译器告诉我我正在取消引用不完整的类型

python - 如何检测我的 python 类实例是否被转换为整数或 float ?