B
ByeBye 201030
hi,
ich hab momentan ein Problem mit der Sichtbarkeit von statischen Methoden einer Klasse in fremden Paketen welches ich nicht nachvollziehen kann.
Folgendes:
Ich habe zwei Klassen, A enthält zum Teil öffentliche statische Methoden. Klasse B greift auf diese Methoden zu (großer Teil sind simple setter... ich weiß... öffentlich statisch ist da ziemlich unangebracht.. dazu gleich mehr ). Klasse A & B erben von Thread ("public class A extends Thread...."). Zu Beginn liegen beide Klassen sowie alle anderen Klassen im selben Paket, also es gibt keine Pakete in diesem Projekt. Soweit kein Problem...
Da der Quellcode und das Design recht grottig waren (u.a. viele öffentlich statische setter methoden) habe ich mich erstmal entschlossen eine komplette Refactorisierung durchzuführen. Nachdem ich fertig war hab ich die Klassen in Pakete aufgeteilt. Die Klassen A & B liegen jetzt in 2 unterschiedlichen Paketen und alles funktioniert (es gibt immer noch 2 öffentliche statische Methoden in Klasse A auf die Klasse B zugreift).
Wenn ich jetzt aber in einem Projekt mit dem ursprünglichen Quellcode und Klassen diese genauso in Pakete aufteilen möchte, werden in Klasse B jede Menge Fehler angezeigt. Der Fehler ist, dass angeblich die öffentlichen statischen Methoden aus Klasse A nicht sichtbar sind, die Klasse A selber aber wird erkannt. Es werden auch die richtigen Pakete importiert.
Also... ich habe die beiden Klassen A & B im selben Paket liegen und die öffentlich statischen Methoden aus A werden in B problemlos erkannt. In dem einen Projekt werden diese Methoden nach einer umfrassenden Refaktorisierung und nach der Aufteilung in unterschiedliche Pakete immernoch erkannt. In dem anderen Projekt ohne Refaktorisierung werden dieselben öffentlichen statischen Methoden nicht erkannt, aber die Klasse A selber schon. Als Fehler wird angegeben das die Methoden an dieser Stelle nicht sichtbar sind, trotz "public static".
Ich hoffe es kann mir jemand einen Tipp geben, woran das liegen könnte bzw. was ich eventuell bei der Refaktiorisierung verbessert haben könnte so das das aufteilen in Pakete problemlos funktioniert.
ich hab momentan ein Problem mit der Sichtbarkeit von statischen Methoden einer Klasse in fremden Paketen welches ich nicht nachvollziehen kann.
Folgendes:
Ich habe zwei Klassen, A enthält zum Teil öffentliche statische Methoden. Klasse B greift auf diese Methoden zu (großer Teil sind simple setter... ich weiß... öffentlich statisch ist da ziemlich unangebracht.. dazu gleich mehr ). Klasse A & B erben von Thread ("public class A extends Thread...."). Zu Beginn liegen beide Klassen sowie alle anderen Klassen im selben Paket, also es gibt keine Pakete in diesem Projekt. Soweit kein Problem...
Da der Quellcode und das Design recht grottig waren (u.a. viele öffentlich statische setter methoden) habe ich mich erstmal entschlossen eine komplette Refactorisierung durchzuführen. Nachdem ich fertig war hab ich die Klassen in Pakete aufgeteilt. Die Klassen A & B liegen jetzt in 2 unterschiedlichen Paketen und alles funktioniert (es gibt immer noch 2 öffentliche statische Methoden in Klasse A auf die Klasse B zugreift).
Wenn ich jetzt aber in einem Projekt mit dem ursprünglichen Quellcode und Klassen diese genauso in Pakete aufteilen möchte, werden in Klasse B jede Menge Fehler angezeigt. Der Fehler ist, dass angeblich die öffentlichen statischen Methoden aus Klasse A nicht sichtbar sind, die Klasse A selber aber wird erkannt. Es werden auch die richtigen Pakete importiert.
Also... ich habe die beiden Klassen A & B im selben Paket liegen und die öffentlich statischen Methoden aus A werden in B problemlos erkannt. In dem einen Projekt werden diese Methoden nach einer umfrassenden Refaktorisierung und nach der Aufteilung in unterschiedliche Pakete immernoch erkannt. In dem anderen Projekt ohne Refaktorisierung werden dieselben öffentlichen statischen Methoden nicht erkannt, aber die Klasse A selber schon. Als Fehler wird angegeben das die Methoden an dieser Stelle nicht sichtbar sind, trotz "public static".
Ich hoffe es kann mir jemand einen Tipp geben, woran das liegen könnte bzw. was ich eventuell bei der Refaktiorisierung verbessert haben könnte so das das aufteilen in Pakete problemlos funktioniert.