(注意:我偶然发现了这个,所以它可能不太实用,但我只是很好奇)
我希望在递增第二个值后打印出一个值,即两个值的总和.像这样的东西:
int first = 10;
int second = 20;
System.out.println(first + ++second); //31
System.out.println(first); //10
System.out.println(second); //21
Run Code Online (Sandbox Code Playgroud)
也许不是最新的代码,但它有效.但后来,我开始尝试.
System.out.println(first +++ second); //30
System.out.println(first); //11
System.out.println(second); //21
Run Code Online (Sandbox Code Playgroud)
没关系; 它意味着第一个在添加后增加,并且这里可以忽略空格.凉.但是之后...
System.out.println(first +++++ second); //"Invalid Argument", doesn't work
Run Code Online (Sandbox Code Playgroud)
而
System.out.println(first ++ + ++ second); //31
System.out.println(first); //11
System.out.println(second); //21
Run Code Online (Sandbox Code Playgroud)
工作正常,但由于某种原因,仍然不同
System.out.println(first + + + ++ second); //31
System.out.println(first); //10
System.out.println(second); //21
Run Code Online (Sandbox Code Playgroud)
也许是最奇怪的,
System.out.println(first + + + + + + second); //30
System.out.println(first); //10
System.out.println(second); //20
Run Code Online (Sandbox Code Playgroud)
那么这里发生了什么?何时忽略运算符之间的空格,何时不是?为什么我可以写"+ + + + +",没有任何问题? …
我现在有
class A {...}
interface B {...}
Run Code Online (Sandbox Code Playgroud)
我想要的是一些相当于
HashMap<String, A implements B>
Run Code Online (Sandbox Code Playgroud)
即,String映射到A该实现的任何实例B.但是这种语法不能编译.有没有办法映射到实现接口的类?请注意,这A不是通用的,所以我不能做类似的事情
A<? implements B>
Run Code Online (Sandbox Code Playgroud)