gpt4 book ai didi

java - 在一行定义变量并在下一行创建它的实例有什么好处

转载 作者:行者123 更新时间:2023-12-01 16:44:30 25 4
gpt4 key购买 nike

例如,考虑 Google I/O '17“Android 动画的 Spring ”中的幻灯片:

enter image description here

SpringForce force = new SpringForce(0)
.setDampingRation(0.4f)
.setStiffness(500f);
for (int i = 0; i < heads.getChildCount(); i++) {
View child = heads.getChildAt(i);
SpringAnimation anim;
anim = new SpringAnimation(child, DynamicAnimation.ROTATION);
anim.setSpring(force).setStartValue(-25).start();
}

在那里我们可以看到变量anim是在一行中定义的,并且该变量的实例是在下一行中创建的。有时我也在一些开源项目中看到这种方法。

使用这种方法是否有真正的好处,或者这只是风格或可读性的问题?或者,对于幻灯片来说,这是一个适合幻灯片宽度的问题?但如果是这样的话,他们可能会写出类似这样的内容:

SpringAnimation anim = new SpringAnimation(
child, DynamicAnimation.ROTATION);

最佳答案

让我们做一个小实验。给定以下两个类:

public class Test {
public static void main(String... args) {
Integer i = Integer.valueOf(1);
System.out.println(i);
}
}

public class Test2 {
public static void main(String... args) {
Integer i;
i = Integer.valueOf(1);
System.out.println(i);
}
}

我们可以看一下生成的字节码:

> javac *.java && javap -c *.class
Compiled from "Test.java"
public class Test {
public Test();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return

public static void main(java.lang.String...);
Code:
0: iconst_1
1: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
4: astore_1
5: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
8: aload_1
9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
12: return
}
Compiled from "Test2.java"
public class Test2 {
public Test2();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return

public static void main(java.lang.String...);
Code:
0: iconst_1
1: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
4: astore_1
5: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
8: aload_1
9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
12: return
}

由于生成的字节码是相同的,因此这是个人喜好的问题。

关于java - 在一行定义变量并在下一行创建它的实例有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54957256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com