Question

Je jouais avec Java Reflection API et j'ai observé que les méthodes avec la liste d'arguments variadiques deviennent transitoires. Pourquoi est-ce et qu'est-ce qui fait transient Le mot clé signifie dans ce contexte?

Du glossaire Java, transitoire:

Un mot-clé dans le langage de programmation Java qui indique qu'un champ ne fait pas partie de la forme sérialisée d'un objet. Lorsqu'un objet est sérialisé, les valeurs de ses champs transitoires ne sont pas incluses dans la représentation série, tandis que les valeurs de ses champs non transitoires sont incluses.

Cependant, cette définition ne dit rien sur les méthodes. Des idées?

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){}
}

Les sorties:

main --> public static
foo --> public static transient

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top