Java如何控制方法的调用次数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java如何控制方法的调用次数?相关的知识,希望对你有一定的参考价值。

恩,问题是这样的, 我想控制某个方法在一个月内调用的次数。或者说一天内也行。比如如何控制该方法在一月内调用的次数不能超过500万次。我是打成jar包部署到服务器上面的。

  Java控制方法的调用次数,可以使用static变量来统计次数,当达到规定的次数,抛出异常,实例如下:

static int i=0;
/**
* @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 Test
    public 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如何控制方法的调用次数?的主要内容,如果未能解决你的问题,请参考以下文章

java定时器 限制方法调用次数

java如何统计session访问次数

java如何实现限制一个接口每天被调用次数为5次?

实例详解Java中如何对方法进行调用

织梦DEDECMS首页列表页面动态调用点击次数的方法

java中有哪些类型的方法,如何调用它们?