Java如何控制方法的调用次数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java如何控制方法的调用次数?相关的知识,希望对你有一定的参考价值。
恩,问题是这样的, 我想控制某个方法在一个月内调用的次数。或者说一天内也行。比如如何控制该方法在一月内调用的次数不能超过500万次。我是打成jar包部署到服务器上面的。
Java控制方法的调用次数,可以使用static变量来统计次数,当达到规定的次数,抛出异常,实例如下:
/**
* @param args
*/
public static void main(String[] args)
// TODO Auto-generated method stub
//循环调用count计数
for (int i = 0; i < 5; i++)
count();
if(static > 10)//当方法调用次数达到这个次数,就终止主程序
return;
/**
* 计数
*/
public static void count()
i++;
System.out.println("第 "+i+" 次调用count方法");
参考技术A 你可以设置一个静态变量用来存这个500万,每执行一次减一次,然后执行前判断一下,如果这个静态变量等于0则直接return不允许执行了,然后在每个月初进行复位操作追问
能否以例子相解说。谢谢了。
追答public class Testpublic static int s = 500;
public void test()
if(Test.s > 0)
//继续执行
Test.s--;
else
//提示执行次数不足,不能执行
追问
else里面能否写上一个如果方法调用次数到500万次了,自动停止。这样,能否加QQ详谈。这样唠嗑好像还消耗财富值。谢谢了。
追答发你私信了
参考技术B 你可以设置一个全局变量。每次调用这个方法之前判断这个变量,如果变量没有大于等于指定数字,变量自动增加一并执行方法体。如果变量大于等于指定数字,那么就return。这个我没做过,我是这个思路,不知道可行不可行。 参考技术C用一个全局变量或是static变量来记录该方法调用的次数。
每当这个方法被调用一次,该次数加1.
当次数大于一定值的时候,该方法抛出异常或直接返回错误。
有一些细节你可能要注意,就是临界区访问,要住院syncronize
可否写个小例子。谢谢了。
追答class count
private static count = 0;
public synchronized booleanfoo()
count++;
if(count > 10000)
return false;
else
// do what you need to do
怎么好多地方都是报错的呢?
追答我直接在网页上写的代码,估计有语法错误,你再调一下吧,应该不复杂啊。就这几行。我表述的只是如何使用计数器和临界区而已。
参考技术D 有点高深我是小白 我觉得可以用一个全局变量times 在这个方法的头部写上 if(times>=500万) return;
500万有点大 但是可以每1w次记一次 也只需要两个变量
勿喷追问
能写个简单的小demo吗?谢谢了
java定时器 限制方法调用次数
java实现可以限制某方法在规定时间内(比如两分钟)被调用的次数。
参考技术A 添加一个静态常量,每当方法被调用,该常量减1,当该常量为0时,调用该方法就直接退出。 参考技术B java.util.Timer类,这个类是java里的定时器类.schedule()方法重构多次,可以定时重复执行任务.具体使用可以查看手册给你一个简单的例子..从1000ms开始,每隔1000ms执行一次run方法
package demo;
import java.util.Timer;
import java.util.TimerTask;
public class TimerTest
public static void main(String[] args)
Timer t = new Timer();
t.schedule(new TimerTask()
@Override
public void run()
//这里写你需要执行的任务,需要什么参数可以传进来..
System.out.println("定时任务....");
,1000,1000);
参考技术C 用个全局变量或类变量计数就行了,超过这个数字直接返回
以上是关于Java如何控制方法的调用次数?的主要内容,如果未能解决你的问题,请参考以下文章