在课程级别抛出异常

时间:2014-07-10 01:58:52

标签: java awt global awtrobot

在我的课程中,我有一个利用awt.Robot类的方法,每次运行此方法时都会实例化Robot()。我认为这会大大减慢我的处理速度,因为在循环中运行方法10000次的情况下,我实例化Robot()10000次而不是一次。如果我可以将其声明为全局,那将解决我的问题。我试过了:

Robot robot = new Robot();

就在我的课程之下,但我需要抛出异常才能使用该行。不幸的是,我不知道如何在没有try / catch块的情况下做到这一点,我不能在方法之外做。

我如何解决这个问题并将机器人初始化为全局?

2 个答案:

答案 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 ++的块访问级别。但你应该明白这个想法