Viv*_*ani 10 java autoboxing junit
他们都返回同样的东西,即长班.实际上我在PrivilegedAccessor中使用它来传递如下
PrivilegedAccessor.invokeMethod(MyClass,
"MyMethod", new Object[] { arg1, arg2 },
new Class[] { long.class, Date.class });
Run Code Online (Sandbox Code Playgroud)
或者我可以使用
PrivilegedAccessor.invokeMethod(MyClass,
"MyMethod", new Object[] { arg1, arg2 },
new Class[] { Long.TYPE, Date.class });
Run Code Online (Sandbox Code Playgroud)
哪个更好用于记住自动装箱/拆箱开销.
**我从测试中传递原始长度,甚至测试的方法只需要原始长度.
rge*_*man 10
它们都代表long原始类型.它们完全相同,即使在编译的字节码中也是如此.示例程序:
public class Main
{
public static void main(String[] args) {
Class<Long> c = Long.TYPE;
Class<Long> c1 = long.class;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,使用javap -c Main:
c:\dev\src\misc>javap -c Main
Compiled from "Main.java"
public class Main {
public Main();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":
()V
4: return
public static void main(java.lang.String[]);
Code:
0: getstatic #2 // Field java/lang/Long.TYPE:Ljava/lang/Class;
3: astore_1
4: getstatic #2 // Field java/lang/Long.TYPE:Ljava/lang/Class;
7: astore_2
8: return
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4019 次 |
| 最近记录: |