2017-02-07 12 views
2

Код:Haxe: доступ к корневой пакет класс, если он скрыт за класс из другого пакета

//./Main.hx 
package; 
import bar.Bar; 
class Main { 
    static var foo:Foo; 
    static function main() { 
     $type(foo); // I want it to be "Foo", but it's "bar.Foo" 
    } 
} 

//./Foo.hx 
package; 
class Foo {} 

//./bar/Bar.hx 
package bar; 
class Foo {} 
class Bar {} 

Bar библиотека, что я не могу изменить. Он определяет класс с именем Foo в файле Bar.hx. Я не использую напрямую bar.Foo, но использую bar.Bar. Я хочу назвать свой класс Foo, это хорошее имя, и я не могу думать о другом, но я не могу его использовать, потому что он скрывается за bar.Foo. Что я могу сделать?

Одним из решений является изменение bar.Foo декларации

private class Foo {} 

Он работает и ничего не ломается, но я не хочу, чтобы изменить библиотеку.

ответ

4

import bar.Bar является модуль импорта, что означает, что он импортирует все типы в модуле Bar.hx. Так что если вы хотите, чтобы предотвратить bar.Bar.Foo от импортируемых, а также, вы можете явно импортировать толькоBar типа так:

import bar.Bar.Bar; 

Это объясняется в Import -сечения руководства Haxe.

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

  • Нет связанных вопросов^_^