- 三元操作符的类型务必一致
int i = 80; String s = String.valueOf(i < 100 ? 90 : 100); String s1 = String.valueOf(i < 100 ? 90 : 100.0); System.out.println("两者是否相同:" + s.equals(s1));
//返回false
- 带有变长参数的方法
public int sum(int... args) { int result = 0; for (int value : args) { result += value; return result;
- 警惕自增的陷阱
int count=0;
for(int i=0;i<10;i++){
count=count++;
}
System.out.println(count);
本意是希望count自增的,结果却掉入java自增的陷阱中。解决方法很简单,把“count=count++”修改为“count++”即可。
该问题在不同语言中有不同的实现:C++中“count=count++”与“count++”是等效的,而在PHP中则保持着与java相同的处理方式。
- 易变业务使用脚本语言编写
// 获取JavaScript的执行引擎
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
// 建立上下文变量
Bindings bind = engine.createBindings();
bind.put("factor", 1);
// 绑定上下文,作用域是当前引擎范围
engine.setBindings(bind, ScriptContext.ENGINE_SCOPE);
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
int first = input.nextInt();
int sec = input.nextInt();
System.out.println("输入参数为:" + first + "," + sec);
// 执行js代码
engine.eval(new FileReader("D:/Desktop/model.js"));
// 是否可调用方法
if (engine instanceof Invocable) {
Invocable in = (Invocable) engine;
// 执行js中的函数
Double result = (Double) in.invokeFunction("formula", first, sec);
System.out.println("运算结果:" + result.intValue());
}
}
function formula(var1,var2){
return var1 * var2 * factor;
}