我的实际问题如下:
在 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/