可以使用'synchronized'关键字和'sleep'方法来实现一个方法一秒钟只能被调用一次的效果。

示例代码如下:

public class Example {
    private static long lastCallTime = 0;

    public synchronized static void doSomething() {
        long currentTime = System.currentTimeMillis();
        long elapsedTime = currentTime - lastCallTime;

        if (elapsedTime < 1000) {
            try {
                Thread.sleep(1000 - elapsedTime);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

        // 执行方法的操作
        System.out.println('Method called!');

        lastCallTime = System.currentTimeMillis();
    }

    public static void main(String[] args) {
        // 测试方法调用
        for (int i = 0; i < 10; i++) {
            doSomething();
        }
    }
}

在上述代码中,我们使用一个静态变量'lastCallTime'来记录上次方法调用的时间。在方法中,我们首先获取当前时间'currentTime',并计算与上次调用时间'lastCallTime'的时间间隔'elapsedTime'。如果间隔小于1秒(1000毫秒),则使用'Thread.sleep()'方法休眠剩余时间,以保证一秒钟只能调用一次方法。

在'main'方法中,我们测试了连续调用'doSomething()'方法10次,可以看到每次调用之间都有1秒钟的间隔。

Java 方法一秒钟调用一次限制实现

原文地址: https://www.cveoy.top/t/topic/pS7F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录