РЕДАКТИРОВАТЬ1 угадал справа:)
Несколько слов о дизайне:
Большинство этих статик ужасны, вы должны делать свойства статичными, только когда они являются частью класса, такими как значения по умолчанию, Singleton бизнес и когда вы действительно пьяны и ленивы - но это другая тема (вы поймете это, если будете продолжать кодировать)
На самом деле вы не должны делать свойства общедоступными, они всегда должны быть частными или защищенными с помощью общедоступного метода получения / установки - таким образом вы можете ограничить доступ к свойствам и управлять тем, что происходит при получении или установке. (но это, как правило, очень утомительно в Java)
Теперь, следуя статистике, вы можете легко отправить следующее сообщение (в sendPlayerPackets.run ()): server.sendPacket(player[0].packet);
Чтобы передать сервер в GameRunner, вы должны сделать:
(в gameRunner.java)
public class gameRunner {
public static ArrayList<object> objects = new ArrayList<object>();
public static player[] players = new player[1000];
public server gameServer;
/* ... */
Runnable sendPlayerPackets = new Runnable () {
public void run () {
while(true) {
gameServer.sendPacket(gameRunner.players[0].packet); //<<<----
}
}
};
и в gameServer.java:
public class gameServer{
/* ... */
public static void main(String[] args) throws Exception {
/* ... */
gameRunner = new gameRunner();
gameRunner.gameServer = server;
/* ... */
}
}
старая часть
Чисто по инстинкту, я думаю, вы хотите это:
public class A {
public B foo;
public C bar;
public A() {
// java does not like exposing this, but screw that
foo = new B(this, 10);
C = new C(this);
}
}
public class B {
private class A parent;
public int numB;
public B(A parent, int num) {
this.parent = parent;
numB = num;
}
}
public class C {
private class A parent;
public int numC;
public C(A parent) {
this.parent = parent;
if(parent != null && parent.B != null)
numC = parent.B.numB;
}
}
Вкратце: вы должны передать родителя ребенку, чтобы он мог получить к нему доступ.
Обратите внимание, что в этом примере B должен быть инициализирован перед C, чтобы обойти это, вам понадобятся события, я думаю. В любом случае, идея не выглядит четко определенной, вам следует подумать о том, чего вы хотите достичь снова (и скажите нам).