Я играл с Java Reflection API и заметил, что методы с переменным списком аргументов становятся временными. Почему это так и что означает ключевое слово transient
в данном контексте?
Из глоссария Java, transient :
Ключевое слово в языке программирования 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