小编She*_*erz的帖子

Java多个连续运算符

(注意:我偶然发现了这个,所以它可能不太实用,但我只是很好奇)

我希望在递增第二个值后打印出一个值,即两个值的总和.像这样的东西:

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)

那么这里发生了什么?何时忽略运算符之间的空格,何时不是?为什么我可以写"+ + + + +",没有任何问题? …

java operators

5
推荐指数
1
解决办法
463
查看次数

映射到实现接口的类

我现在有

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)

java generics wildcard hashmap

5
推荐指数
1
解决办法
773
查看次数

标签 统计

java ×2

generics ×1

hashmap ×1

operators ×1

wildcard ×1