为什么使用 varargs 的 Java 方法被标识为瞬态?
2022-09-02 03:47:13
我正在玩Java Reflection API,并观察到具有可变参数列表的方法变得瞬态。为什么会这样,关键字在这种情况下意味着什么?transient
来自 Java 词汇表,瞬态:
Java 编程语言中的一个关键字,它指示字段不是对象的序列化形式的一部分。序列化对象时,其瞬态字段的值不包括在串行表示形式中,而其非瞬态字段的值将包括在内。
然而,这个定义并没有说明任何关于方法的内容。有什么想法吗?
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Dummy {
public static void main(String[] args) {
for(Method m : Dummy.class.getDeclaredMethods()){
System.out.println(m.getName() + " --> "+Modifier.toString(m.getModifiers()));
}
}
public static void foo(int... args){}
}
输出:
main --> public static
foo --> public static transient