From c7ed756e86b781435c40102be56f1b69f6b9fc65 Mon Sep 17 00:00:00 2001 From: sjsdfg <736777445@qq.com> Date: Wed, 20 Mar 2019 14:07:31 +0800 Subject: [PATCH] =?UTF-8?q?update=2053.=20=E6=98=8E=E6=99=BA=E5=AE=A1?= =?UTF-8?q?=E6=85=8E=E5=9C=B0=E4=BD=BF=E7=94=A8=E5=8F=AF=E5=8F=98=E5=8F=82?= =?UTF-8?q?=E6=95=B0.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/notes/53. 明智审慎地使用可变参数.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/notes/53. 明智审慎地使用可变参数.md b/docs/notes/53. 明智审慎地使用可变参数.md index ab7eb3e..b426f44 100644 --- a/docs/notes/53. 明智审慎地使用可变参数.md +++ b/docs/notes/53. 明智审慎地使用可变参数.md @@ -16,7 +16,7 @@ static int sum(int... args) {   有时,编写一个需要某种类型的一个或多个参数的方法是合适的,而不是零或更多。 例如,假设要编写一个计算其多个参数最小值的方法。 如果客户端不传递任何参数,则此方法定义不明确。 你可以在运行时检查数组长度: -``` +```java // The WRONG way to use varargs to pass one or more arguments! static int min(int... args) { if (args.length == 0) @@ -33,7 +33,7 @@ static int min(int... args) {   幸运的是,有一种更好的方法可以达到预期的效果。 声明方法采用两个参数,一个指定类型的普通参数,另一个此类型的可变参数。 该解决方案纠正了前一个示例的所有缺陷: -``` +```java // The right way to use varargs to pass one or more arguments static int min(int firstArg, int... remainingArgs) { int min = firstArg; @@ -48,7 +48,7 @@ static int min(int firstArg, int... remainingArgs) {   在性能关键的情况下使用可变参数时要小心。每次调用可变参数方法都会导致数组分配和初始化。如果你从经验上确定负担不起这个成本,但是还需要可变参数的灵活性,那么有一种模式可以让你鱼与熊掌兼得。假设你已确定 95% 的调用是三个或更少的参数的方法,那么声明该方法的五个重载。每个重载方法包含 0 到 3 个普通参数,当参数数量超过 3 个时,使用一个可变参数方法: -``` +```java public void foo() { } public void foo(int a1) { }