2014-04-07 18 views
5

Non-statyczna metoda ustawiająca może wyglądać następująco:Java statyczne samo-odniesienia

private int var; 

public void setVar(int var) { 
    this.var = var; 
} 

I nie mogę dowiedzieć się, jak rozwiązać ten z metody statycznej:

private static int var; 

public static void setVar(int var) { 
    // ??? 
} 

One rozwiązaniem jest napisanie myClass.var = var;. Ale to jest brzydkie, ponieważ kiedy zmieniam nazwę mojej klasy, muszę znaleźć i zastąpić wszystkie wystąpienia. Innym rozwiązaniem jest zmiana nazwy parametru na v i napisanie var = v;. Dla mnie to też jest brzydkie.

Czy naprawdę nie ma sposobu na rozwiązanie tego problemu w php ?

+2

Używając odpowiedniego IDE, zawsze możesz dokonać * zmiany nazwy Refaktora *, co spowoduje zmianę dowolnej jawnej nazwy klasy. – skiwi

+1

Jeśli użyjesz jakiegoś rozwiązania refaktoryzującego, gdy zmienisz nazwę klasy, powinna ona zająć się tymi odniesieniami. –

+0

Z uwagi na to, że pole klasy 'var' jest prywatne, nigdy nie musisz szukać gdzie indziej, a następnie w samej klasie referencji, kiedy zmienisz nazwę klasy bez użycia odpowiedniego narzędzia do refaktoryzacji (np. IDE). Poza tym, jak znaleźć wszystkie importowane w innych typach, gdzie używasz metody ustawiającej 'setVar()', jeśli nie używasz IDE? Proponuję użyć IDE i nie powinno być tam żadnego problemu. – Harmlezz

Odpowiedz

1

To nie jest możliwe w tym celu rzeczy w inny sposób niż wiesz ....... ....

myClass.var = var; 
var = v; 

tylko dwie drogi, które już znasz .......... Oba są dobre ..no ktoś jest brzydki można nas e .......

jeśli będzie wykorzystuje każdą IDE jak Eclipse, który zajmie ilekroć będzie zmienić nazwę klasy ...........

+0

@halloei szczęśliwy, że mogłem ci pomóc ......... –

1

Musimy napisać następująco:

ClassName.var=var; 
1

Czy to tak:

public class Example { 

    private static int var; 

    public static void setVar(int var) { 
     Example.var = var; 
    } 
} 
2

Zmiana nazwy zmiennego pola to najwygodniejszy sposób. Spójrz na Android Code Style Guideline. Sugerują nazwać wszystkie statyczne pola, takie jak sVariable. To nie jest brzydkie i zrozumiałe. A więc byłoby tak:

private static int sVar; 

public static void setVar(int var) { 
    sVar = var; 
} 
+0

Nie wiem, jak zachowują się inne IDE, ale kiedy automatycznie tworzę metodę ustawiającą dla 'sVar' z NetBeans, nazwa-metody będzie "setsVar" zamiast "setVar". Denerwujący. – halloei

+0

@halloei nie denerwujące dla mnie, po prostu usunąć jeden znak. – nikis

+0

Możesz zmienić to ustawienie w tym ide. Eclipse i Intellj mają tę opcję, ale nie są pewni co do netbeans. Ale powinno tam być. –