2014-04-07 27 views
5

olmayan statik ayarlayıcı yöntem şöyle olabilir:Java statik kendinden referanslar

private int var; 

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

Ve statik yöntemi ile bu çözmek için nasıl bulamıyor:

private static int var; 

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

Bir Çözüm myClass.var = var; yazmaktadır. Ama bu çirkin, çünkü sınıfımı yeniden adlandırdığımda, tüm oluşumları bulmalı ve değiştirmeliyim. Başka bir çözüm, parametreyi v olarak yeniden adlandırmak ve var = v; yazmaktır. Benim için bu da çirkin.

Bunu php içinde çözmenin bir yolu yok mu?

+2

Uygun bir IDE kullanırken, her zaman açık bir sınıf adını değiştirecek bir Refactor Yeniden Adlandır * yapabilirsiniz. – skiwi

+1

Eğer sınıfınızı yeniden adlandırdığınızda bazı refactoring çözümlerini kullanırsanız, bu referansları sizin için halletmelisiniz. –

+0

'Var' sınıf alanının özel olması nedeniyle, sınıfınızı yeniden adlandırmak için (örneğin bir IDE gibi) uygun bir yeniden sıralama aracı kullanmadan, sınıfın kendisini referanslar için başka bir yerde aramak zorunda kalmazsınız. Ayrıca, IDE kullanmıyorsanız setVar() 'setter metodunu kullandığınız diğer tiplerdeki tüm ithalatları nasıl bulacaksınız? IDE kullanmanı öneririm ve orada bir _real_ problemi olmamalıdır. – Harmlezz

cevap

1

O senin bildiğinden daha başka bir şekilde bu şeyler yapmak mümkün değildir ....... .... zaten bildiğiniz

myClass.var = var; 
var = v; 

sadece iki yolu .......... Hem iyi ..no çirkin olduğunu sen bize can E .......

mısın sen sınıfının adını değiştirecek her ilgilenir Tutulma gibi herhangi bir IDE kullanıyorsa

...........

+0

@halloei size yardımcı olabileceğime sevindim ......... –

1

Biz şöyle yazmak gerekir:

ClassName.var=var; 
1

şöyle yapın:

public class Example { 

    private static int var; 

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

alan değişkeni yeniden adlandırma en uygun yoldur. Android Code Style Guideline'a bir göz atın. sVariable gibi tüm statik alanları adlandırmayı önerirler. Çirkin ve anlaşılmaz değil. Yani şöyle olurdu:

private static int sVar; 

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

Diğer IDE'lerin nasıl davrandığını bilmiyorum, ancak NetBeans ile sVar' için bir setter-metodu otomatik olarak oluşturduğum zaman, metod adı "setVar" yerine "setsVar" olacaktır. Can sıkıcı. – halloei

+0

@halloei benim için can sıkıcı değil, sadece bir char silmek için. – nikis

+0

Bu ayarı bu ide'de değiştirebilirsiniz. Eclipse ve Intellj, bu seçeneğin netbeans konusunda emin olmasa da var. Ama orada olmalı. –