2010-12-09 4 views
4

Я создаю нить в своем основном классе. В потоке есть таймер, который записывает и читает на сокете.Доступ к объекту, созданному в другом классе

Мне нужно вызвать метод в классе потоков, например writeSomething() из другого класса вне того, где он был объявлен (Основной).

Как объект ссылается на другой класс?

Редактировать

public static Thread connectionThread; 

ModelJTable table = new ModelJTable(); 
connectionThread = new Thread(new ConnectionThread(table), "connectionThread"); 
connectionThread.start(); 

У меня есть метод в классе резьбы

public void openFile(String fileName){ 
    String request = "open;" + fileName; 
    out.print(request); 
} 

Я хочу, чтобы получить доступ, если из другого класса (JTable класс)

String open = "open;" + getname + ";" + getpath; 
// This doesnt work 
ConnectionThread.openFile(open); 

Это вызывает ошибку

Нет ограждающий экземпляра типа ConnectionThread доступен в объеме

+0

Вам нужно просто вызвать метод или вам нужно вызвать метод этого конкретного экземпляра класса? – 2010-12-09 18:36:59

+0

Ну, у меня есть поток, который имеет соединение сокета, и буферизованный читатель и печатник для потока. Мне просто нужно сделать поток, чтобы написать сообщение в сокет. Сообщение, которое я создаю где-то еще, и хочу вызвать метод потока из этого класса. Если я просто вызову метод и метод будет записываться в созданный принтер, достаточно будет вызова (не для определенного объекта) – jarryd 2010-12-09 18:41:53

+0

попробуйте реализовать мой ответ? – 2010-12-09 18:49:11

ответ

8

Либо передать его в конструкторе второго класса или сделать его статическим в первом классе, или сериализовать

путь 1: статический один

Class A{ 
public static int a=0; 
} 

Class B{ 
public void someMethod(){ 
A.a = 10; 
} 
} 
0

Передайте ссылку на Thread на класс, которому необходимо вызвать метод.

Смежные вопросы