在我的课程中,我有一个利用awt.Robot类的方法,每次运行此方法时都会实例化Robot()。我认为这会大大减慢我的处理速度,因为在循环中运行方法10000次的情况下,我实例化Robot()10000次而不是一次。如果我可以将其声明为全局,那将解决我的问题。我试过了:
Robot robot = new Robot();
就在我的课程之下,但我需要抛出异常才能使用该行。不幸的是,我不知道如何在没有try / catch块的情况下做到这一点,我不能在方法之外做。
我如何解决这个问题并将机器人初始化为全局?
答案 0 :(得分:1)
您可以将实例化放在静态块
中 static Robot robot;
static {
try {
robot = new Robot();
catch()
{}
}
答案 1 :(得分:1)
你能这样做吗?
只要您只有这些类中的一个,请参阅单例模式。只有一个机器人,拨打所有电话给你的机器人你的机器人使用方法"只使用一个机器人。
通过在类构造函数中初始化机器人类,可以在类实例化时尝试/捕获初始化。
class YourClass {
private Robot robot;
public YourClass() {
try {
robot = new Robot();
}
catch(Exception e) {
//Catch your exception here
}
}
public void yourRobotUsingMethod() {
//Use your robot here
//You might want to check if robot is not null here too.
}
}
对不起,如果我把关键字搞砸了,我已经习惯了C ++的块访问级别。但你应该明白这个想法