2012-02-17 15 views
29

A sınıfındaki bir Java yöntemini B sınıfına nasıl geri yükleyebilirim (taşıyabilirim) ve yönteme yapılan tüm başvurular güncellenebilir?Eclipse, bir java yöntemini başka bir sınıfa dönüştürüyor

Bu Eclipse'de destekleniyor mu?

+0

Peki sanmıyorum, en azından benim durumumda başvurular güncelleştirilmedi :( – NINCOMPOOP

+0

Referansların nasıl güncelleştirilebileceğini görebileceğime emin değilim .. Yönteminiz, bir yerdeki classA örnekleriyle çağrılabilir. Bu durumda referansların güncellenmesi, ClassA'nın tüm örneklerinin, diğer birçok yan etkiye sahip olabilen classB örnekleri haline geleceği anlamına gelecektir. –

cevap

21

, Sağ tıklayıp 'Taşı' seçeneğini seçebilirsiniz.

Obj1.myMethod() 

sonra

Obj2.myMethod() 

için 'taşındı' almak ve bir statik olmayan yöntem için vs.

ithalatlarınızı şike yapacak Tutulma ediyorum, bu Classa arasındaki ilişkiye bağlı olarak çalışmayabilir ve sınıf B Eğer farklı bir sınıfa() myMethod taşırsanız

Obj1 myobj1 = new Obj1(); 
myobj1.myMethod(); 
myobj1.myOtherMethod(); 

, yeniden düzenleme nesne başlatma değiştirmek zorunda kalacak. MyOtherMethod taşınmazsa, o zaman myobj1'in Obj2'ye değiştirilemez, çünkü myOtherMethod çalışmayacaktır.

+0

Açıkladığınız için şimdi anladım. Statik olmayan bir yöntemi hareket ettirmek için, inandığım yöntemin parametrelerinde bulunması gerekir. "Hedef, bu nedenle, bir parametre veya alan türünün bildiren sınıfı olmalıdır" ... "" veya "alan türünün" ne anlama geldiğinden emin değil. Biliyor musun? İşte ayrıca iyi bir link: http://www.eclipse.org/articles/article.php?file=Article-Unleashing-the-Power-of-Refactoring/index.html – momomo

+0

Bir alan, bir sınıfa üye değişkendir . Person.name' içinde, Kişi sınıftır, ad alantır. – Thomas

11
  • Refactor> Taşı Anahat görünümünde yöntemini seçin
  • yeni sınıfın yöntemini taşımak isterseniz

- statik yöntem için Refactor> Extract Sınıf

+1

Bu, tüm yöntemler için çalışmaz – momomo

+5

'Extract Class', bazı üye değişkenlerini yeni sınıfa ayırmada ısrar eder. Bu, herhangi bir durum durumuna bağlı olmadığından yöntemi taşımak istediğinizde can sıkıcı bir durumdur. – poolie

+0

'Move' ve' Extract Class' sihirbazları rahatsız edici - 'Luna 4.4.2' kullanıyorum. İşe yaradı: El ile yeni sınıf oluşturuldu ve sonra sihirbazları yöntemleri hareket ettirmek için kullandım. ben, ama sorun değil, çünkü bu yöntemlere yapılan tüm çağrıları yeniden yönlendiriyor. – cbaldan

İlgili konular