非静态嵌套线程 - 从另一个类(Java)访问

问题描述:

我在创建另一个类(定义它)的线程对象时遇到了一些麻烦;非静态嵌套线程 - 从另一个类(Java)访问

它嵌套像这样:

public final class Sculpture extends UiApplication 
{ 
    final class ScreenThread extends Thread 
    { 
     //thread I want to access 
    } 
} 

所以在我的其他类,我想创建线程对象,所以我尽量;

Sculpture.ScreenThread test = (new Sculpture).new ScreenThread(); 

- 此错误(在BlackBerry Eclipse插件中)说“没有可以访问类型Sculpture的封闭实例”。

据我可以告诉我不能取消它,因为它导致很多代码不工作(我认为它依赖于UiApplication),我也不能因为相同的原因使它静态。

任何想法我做错了什么?

谢谢。

在你当前的代码定义需要外的一个实例内部类,包含以类实例化:

ScreenThread screenThread = new Sculpture().new ScreenThread(); 

如果您不需要访问外部类的情况下,那么你可能要定义一个嵌套类代替:

public final class Sculpture extends UiApplication { 
    static final class ScreenThread extends Thread { 
     //thread I want to access 
    } 
} 

,然后可以导入和实例化“正常的”(即,没有首先创建外,含有类的一个实例):

ScreenThread screen = new ScreenThread(); 

最后一点,子类Thread通常是不好的做法。相反,实施Runnable更好。

您并未创建您的Sculpture。电话应该看起来像new Sculpture().new ScreenThread()

看起来你只是忘记了()后new Sculpture