J'ai importé un autre prototype dont le nom de package est différent du mien. Pour l'utilisation des messages d'un autre package, accédez à ce message avec le nom du package.
Par exemple :
other.proto
package muthu.other;
message Other{
required float val = 1;
}
myproto.proto
package muthu.test;
import "other.proto";
message MyProto{
required string str = 1;
optional muthu.other.Other.val = 2;
}
Existe-t-il un moyen d'utiliser val of muthu.other package directement comme facultatif val = 2; au lieu d'utiliser muthu.other .Other.val?
Impossible de trouver un document d'aide à ce sujet. Aide moi.
Si le nom du package est le même, vous pouvez omettre le nom du package dans la déclaration de champ mais sinon il n'y a pas d'autre moyen. si vous pouvez inclure muthu.test dans le même package en spécifiant "package muthu.other", cela est autorisé.
De la documentation Google de protobuf:
Vous pouvez ajouter un spécificateur de package facultatif à un fichier .proto pour éviter les conflits de noms entre les types de messages de protocole.
package foo.bar;
message Open { ... }
Vous pouvez ensuite utiliser le spécificateur de package lors de la définition des champs de votre type de message:
message Foo {
...
required foo.bar.Open open = 1;
...
}