'Platform': Windows 7, MinGW, MSYS, Java 1.5
У меня есть компилятор бережливого 0.9.1 (предварительно построенный для окон) и источник. Я использую Ant для создания java-библиотеки. Я создаю один трилик idl и компилирую его с помощью компилятора. Нет проблем с генерацией файлов кода. Я добавляю эти файлы в свой проект и добавляю slf4j (скачанный со своего сайта) и libthrift. Большинство ошибок, которые были у меня ранее (импорт и т.д.), Исчезли, за исключением ошибок, связанных с переопределяющими методами. Поэтому в основном он жалуется:
Метод clear() типа Server должен переопределять метод суперкласса
и аналогично для compareTo
, write
, read
и т.д. Короче говоря, он жалуется на все методы, которые переопределены. Это все сработало сгенерированный код компилятора, и я ничего не изменил.
Есть ли какая-то несовместимость? Я не могу сказать об этом. Я попытался удалить, а затем добавить библиотеки, я также попробовал очистить, обновить, проверить проект, но ошибки все еще существуют.
Я также пытался скомпилировать код (бережливый код), но MinGW также является большой головной болью. Он не может найти configure
даже если я ее установил. И если я бегу msys
консоль, он может configure
, но не может make
жалуясь inttypes.h
нет (что не в MSYS включает каталог, но присутствует в MinGW включает каталог.).
Любое предложение будет оценено по достоинству.
Вы используете Java 5? С Java 5 @Override
не ищет методы на интерфейсах, только на суперклассах.
Если вы используете компилятор Java 5, пытающийся использовать более поздний javac (желательно 7 или 8), и это видно.
РЕДАКТИРОВАТЬ:
Не уверен, что это в вашей версии Thrift, но у меня похоже, что есть флаг java5
который вы указываете при генерации кода, чтобы указать, что вы хотите, чтобы сгенерированный код был совместимым с Java 5
java (Java):
beans: Members will be private, and setter methods will return void.
private-members: Members will be private, but setter methods will return 'this' like usual.
nocamel: Do not use CamelCase field accessors with beans.
fullcamel: Convert underscored_accessor_or_service_names to camelCase.
android: Generated structures are Parcelable.
android_legacy: Do not use java.io.IOException(throwable) (available for Android 2.3 and above).
java5: Generate Java 1.5 compliant code (includes android_legacy flag).
reuse-objects: Data objects will not be allocated, but existing instances will be used (read and write).
sorted_containers:
Use TreeSet/TreeMap instead of HashSet/HashMap as a implementation of set/map.