请使用java对一个方法在当天时间内的执行的次数进行计数
时间: 2024-02-23 13:59:00 浏览: 18
可以使用Java中的HashMap来实现对一个方法在当天时间内的执行次数进行计数。具体代码实现如下:
```java
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.HashMap;
public class MethodCounter {
private HashMap<String, Integer> map;
private LocalDate today;
public MethodCounter() {
map = new HashMap<>();
today = LocalDate.now();
}
public synchronized void count(String methodName) {
LocalDate now = LocalDate.now();
if (today.until(now, ChronoUnit.DAYS) > 0) {
map.clear();
today = now;
}
int count = map.getOrDefault(methodName, 0);
map.put(methodName, count + 1);
}
public int getCount(String methodName) {
return map.getOrDefault(methodName, 0);
}
}
```
在上面的代码中,我们定义了一个`MethodCounter`类来实现对方法执行次数的计数。在类的构造函数中,我们初始化了一个`HashMap`对象和当前日期。在`count`方法中,我们首先获取当前日期,并判断是否与上一次执行的日期相同。如果不同,说明已经过了一天,我们需要将`HashMap`对象清空,并更新日期。然后,我们从`HashMap`中获取指定方法名的执行次数,将其加1,并将结果存储回`HashMap`中。在`getCount`方法中,我们只需要从`HashMap`中获取指定方法名的执行次数即可。
需要注意的是,由于`HashMap`不是线程安全的,因此在`count`方法中我们需要使用`synchronized`来保证线程安全。