Предпочтение использования статического класса над переменной с тем же именем - PullRequest
2 голосов
/ 11 сентября 2011

Класс B расширяет класс A, класс A имеет переменную с именем K, у меня также есть статический класс с именем "K".Есть ли способ внутри класса B одобрить использование статического класса K над унаследованной переменной K?

(я работаю с декомпилированным кодом, который был запутан, я не могу переименовать ни одну из версий K)

Ответы [ 3 ]

4 голосов
/ 11 сентября 2011

Возможно, вам потребуется обратиться к классу K с его полным именем, например myPackage.K

2 голосов
/ 11 сентября 2011

Так как K находится в пакете по умолчанию, я думаю, что ваши единственные варианты будут заключаться в том, чтобы ссылаться на класс K, используя отражение, или же написать класс для переноса K, чтобы вы могли использовать другое имя. Или, если вам нужны статические члены K, вы также можете использовать статический импорт, чтобы получить их.

0 голосов
/ 11 сентября 2011

Это работает?

class A {
    int X;
}

class B extends A {
    static class X {}
    void foo() {
        X = 5;  // A.X variable
        B.X x = new B.X(); // B.X nested class
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...