2015-09-14 6 views
3

У меня есть эта структура: (пространство имен Java)Thrift включает два файла с одинаковым именем?

package/common.thrift 
common.thrift 
fileA.thrift 

Я хочу fileA.thrift включать как common.thrift

include ".../package/common.thrift" 
include "common.thrift" 

struct A { 
    1: common.Something something #From first file (no error) 
    2: common.SomethingElse else #This throws error. 
} 

Бережливость только считывает содержимое из файла, указанного первым в порядке. Есть ли способ для этого: common.thrift as common Чтобы я мог различать их. Или единственным решением является различные имена файлов

ответ

3

Бережливость только считывает содержимое из файла, указанного первым в порядке

Не совсем. Но Thrift нужен префикс для доступа к вещам, которые включены. Поскольку префикс - это имя файла, вы не можете включать два «общих» файла без создания двусмысленностей.

Следовательно, ответ на вопрос нет, вы не можете.

+0

спасибо! почему не помогает поддерживать «aliasing» в таких случаях. .. есть ли место, где я могу прочитать об этом? – phoenix

+2

Я ожидал, что вопрос :-) Нет, это не так, но это может быть удивительным расширением. Вы можете попробовать обсудить эту тему в списке рассылки dev. По крайней мере, это звучит хорошо для меня. – JensG

+1

Итак, лучшим решением в таких ситуациях являются разные имена файлов ... и в значительной степени единственное решение ... ха-ха .. спасибо. – phoenix

Смежные вопросы