java - C++ 中的模板、Java 中的泛型和 >> 位移运算符

标签 java c++ templates generics bit-shift

我的实际问题如下:

在 C++ 中,嵌套参数之间需要有一个空格,例如 List< List<String> > .这样做是为了让编译器可以区分上述内容和位移 >>。 .但同样的事情对于 Java 却不是这样 List<List<String>>是完全有效的。 JVM 如何区分上述和 >>位移位?

最佳答案

不同之处在于假定的 >> 运算符周围的上下文。当它是一个运算符时,两个操作数都需要一个表达式:

EXPR >> EXPR

表达式可以是变量、文字、函数调用或所有这些元素的复杂组合。然而,在列表声明的情况下,不涉及表达式,只涉及类型和 ID。例如:

List<List<string >> id;

实际上,在新标准中,C++ 编译器也能发挥作用。

关于java - C++ 中的模板、Java 中的泛型和 >> 位移运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9457374/

相关文章:

Java join() 方法

c++ - 使用单链表反转字符串

c++ - 如何使用 bazel 在 OS X 上设置 C++ 编译器?

c++ - 用于测试对象是否与 boost 范围兼容的元函数

c++ - 我是否在这个通用的 unique_ptr<>() 删除器中正确使用了指针类?

c++ - std::is_same 对代码的性能有影响吗?

java - 为什么从方法内部调用时方法回溯不起作用

java - Junit 4 套件被忽略(Eclipse 和 Maven)

c++ - 跨平台 C++ 命令行实用程序

java - 如何将JTextField中的String类型数据分配给变量