![]() |
1
12
这两段代码做了不同的事情。在第二个例子中,您不再传递exceptionobj,而是“exceptionobj引起的未指定的抛出”。我想那不是你想要的。 你是说第二行的第一行是:
我想,这是非常有效率的,但不会让这个决定问题。哪个更可读是关键,我认为(修改后的)第二个更可读。 你真的非得用箱子扔吗?伐木工人肯定已经被扔了? |
![]() |
2
6
考虑到一个例外的代价和仅仅打印内容的代价,我认为这场辩论有些似是而非。 |
![]() |
3
4
为什么不投一次用两次呢?
如果不分析和使用重载,很难说出实际的答案。 |
![]() |
4
2
可抛T=(可抛)除外; logger.log(level.error,t,t.getMessage()); |
![]() |
5
1
|
![]() |
6
1
理论上,这将导致两种类型的类型转换的成本。实际上,jit编译器很可能会将其优化为只执行一个类型转换的本机代码。
在这里,我们将两个类型转换替换为一个类型转换和一个对象创建。但是,所创建的对象是一个throwable,如果查看throwable的构造函数,就会发现它调用
显然,彻底的调查需要分析这两个版本的代码并检查由jit编译器生成的本机代码…… (正如其他人所指出的,这两段代码的效果是不同的。第一个记录原始异常,第二个将原始异常作为嵌套异常记录新的抛出异常。) |
![]() |
Jiji · 将简单对象强制转换为简单的通用接口 7 年前 |
![]() |
tobeypeters · 反射铸造 7 年前 |
![]() |
Alex · 是否改为存储字符串的整数的通用ArrayList? 7 年前 |
![]() |
Kai · 如何在C#中转换会话中存储的词典? 7 年前 |
![]() |
Ján ЯabÄan · 布尔值到双精度的快速转换方法 7 年前 |