我是Java初学者。我想在运行的Java线程对象中调用一个方法。它总是引发以下异常:
线程“AWT-EventQueue-0”java中出现异常。lang.NullPointerException:无法调用“Graphic\u handler.next()”,因为“this.this$0.grap”为null
public class Graphic_handler extends Thread {
int off = 0;
int columns = 7;
int rows = 7;
public Graphic_handler(Instagram_bot bot) {
}
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (Exception e) {
//TODO: handle exception
}
set_time();
}
}
private void set_time() {
Date date = Calendar.getInstance().getTime();
DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
String strDate = dateFormat.format(date);
bot.date.setText(strDate);
}
public void change_center(int offset) {
}
public synchronized void next() {
off++;
notify();
}
public synchronized void last() {
off--;
notify();
}
}
(代码已简化)
下面是我调用该方法的代码部分:
ActionListener right_ear = new ActionListener() {
public void actionPerformed(ActionEvent e) {
grap.next();
};
};
ActionListener left_ear = new ActionListener() {
public void actionPerformed(ActionEvent e) {
grap.last();
};
};
public static void main(String[] args) {
Graphic_handler grap = new Graphic_handler(bot);
grap.start();
}
我试图在这里调用方法Next()和last()。
发生的事情是您有一个隐藏实例变量的局部变量。
class SomeClass {
Graphic_handler grap;
public static void main(String[] args) {
Graphic_handler grap = new Graphic_handler(bot);
^^^ this *hides* the other grap
grap.start();
}
要解决这个问题,只需删除方法中grap
前面的声明。
class SomeClass {
Graphic_handler grap;
public static void main(String[] args) {
grap = new Graphic_handler(bot);
grap.start();
}
我使用(全局声明)同时运行多线程。需要一个小时才能完成任务。因此,我需要获得当前运行的线程详细信息,如活动线程,排队线程和完成线程。 但事情是我需要停止在15分钟内发送新的请求到服务器或调用一些方法。 这里shutdown或shutdowNow停止执行器,但不停止这5个线程。这就是问题所在。所以我需要手动杀死那些线程。如何杀死executor服务中手动附加的线程?
问题内容: 我是Java新手。有人可以帮我为什么不调用Run方法。提前致谢。 问题答案: 您需要将的实例传递给构造函数,以告诉新线程运行什么: (这是不幸的是,类已经以各种方式被设计得不好。这将是更有益的,如果它 不 具有方法本身,但 没有 强迫你传递到构造函数,然后你会发现在编译的问题-时间。)
我正在尝试使用codeception和他的Mock和Stub库运行测试。发生的事情是,当我试图用存根运行测试时,它引发了一个在我的实际类中实现的错误。 我认为存根是隔离测试和模拟真实对象的方法。为什么它叫我真正的方法? 所以当我运行代码欺骗(PHPcodeception.phar运行): 问题是: 回溯会一直持续到类LoadAVG的真正实现,在这里我真正调用了rewind()函数,很明显,一旦这个
是否可以强制Hazelcast在调用线程的TransactionalMap上运行put()、replace()和delete()方法?我希望XA事务从写到Hazelcast转移到写到MapStore中的数据库,但是Hazelcast正在排队等待在其他线程上运行的更改,因此它们不在相同的事务上下文中。 我已经将它设置为一个直写持久性,但我看到它将TxnSetOperation排队,并在单独的线程上运
问题内容: 我有一个正在运行的线程,但是从外面我无法绕过一个值来停止该线程。如何在内部发送false / true值或调用运行线程的公共方法?当我按下按钮1?例如: 或 跟进(校对): 问题答案: 如果您通过类而不是通过a定义它,则可以调用实例方法。 还要注意,由于多个内核具有自己的关联内存,因此您需要警告处理器该状态可能在另一个处理器上更改,并且它需要监视该更改。听起来很复杂,但只需将’vola
我创建了一个可运行的类a,它为我执行一些任务。我使用ExecutorService提交这个类,以便并行执行这些任务。 可运行类A调用另一个对象B,该对象发送一个AsyncFuture请求(future.get()one)。 我将可运行类A的单独对象提交给ExecutorService,但是,类B的对象由bean(单例)引用。这会导致线程执行出现问题吗? 我注意到类A的一些对象没有被任何线程执行。