java - Java 中的 Mmimic C++ 模板函数

标签 java c++

在 C++ 中,我可以编写一个模板函数,将数据类型作为参数,这样单个函数就可以重复用于多个数据类型。是否有在 Java 中做类似事情的规定?

谢谢,
罗杰

最佳答案

这个人问的不是泛型。他在询问 <algorithm> 中指定的那种模板函数。 .您在 Java 中最接近的可能是为您希望能够调用的每个函数类型定义(通用化)接口(interface),然后推出您自己的实用程序库,该实用程序库接受接口(interface)的实例作为输入。例如,您可以创建以下界面

public interface UnaryOperator<T> {
    public boolean test(T item);
}

然后像这样创建一个工具类

public class Algorithms {
    public static <T> void removeIf(Collection<T> c, UnaryOperator<T> op) {
        Iterator<T> itr;
        for (itr = c.iterator(); itr.hasNext(); ) {
            T item = itr.next();
            if (op.test(item)) {
                itr.remove();
            }
        }
    }
}

您实际上可以在 Apache Commons Collections 库中找到此模式,但它不如 C++ 算法库灵活或广泛。我认为给出 STL 仿函数和算法库的任何特定示例,您将能够用 Java 编写类似的东西,但据我所知,没有内置的等价物。我认识的大多数人(甚至 C++ 开发人员)都考虑 <algorithm>非常神秘。

关于java - Java 中的 Mmimic C++ 模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2071110/

相关文章:

java - Web 服务(服务器 - 客户端)。服务器使用外部项目

c++ - 如果字节缓冲区应为无符号字符,我是否必须一直保持强制转换?

c++ - 使用 C++/boost::asio 在网络框架中进行 int/char 转换

c++ - 如果我不自己分配数组元素的值是什么

java - 如何在 Hibernate 实体注释上使用两个外键作为主键

java - 在 Java 中复制构造函数而不是 Clone

java - 如何Parcelable查看对象的成员?

java - bytebuddy 可以拦截方法调用并使其调用第二个对象的私有(private)方法吗?

c++ - 修改R包gbm

c++ - 在 Windows 上构建 MLT 框架时出错