- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Runnable runPickWinner = new Runnable() {
@Override
public void run() {
mPot.pickWinner();
}
};
ScheduledExecutorService execPickWinner = Executors.newScheduledThreadPool(1);
execPickWinner.scheduleAtFixedRate(runPickWinner, runPickWinnerTime.longValue(), runPickWinnerTime.longValue(), TimeUnit.MINUTES);
我收到以下错误:
java.lang.IllegalArgumentException
at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedRate(Unknown Source) ~[?:1.8.0_131]
at com.tchristofferson.Lottery.runLottery(Lottery.java:223) ~[?:?]
at com.tchristofferson.Lottery.onEnable(Lottery.java:50) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:271) ~[craftbukkit.jar:git-Bukkit-c19c293]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:329) [craftbukkit.jar:git-Bukkit-c19c293]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [craftbukkit.jar:git-Bukkit-c19c293]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugin(CraftServer.java:361) [craftbukkit.jar:git-Bukkit-c19c293]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugins(CraftServer.java:323) [craftbukkit.jar:git-Bukkit-c19c293]
at net.minecraft.server.v1_11_R1.MinecraftServer.t(MinecraftServer.java:411) [craftbukkit.jar:git-Bukkit-c19c293]
at net.minecraft.server.v1_11_R1.MinecraftServer.l(MinecraftServer.java:372) [craftbukkit.jar:git-Bukkit-c19c293]
at net.minecraft.server.v1_11_R1.MinecraftServer.a(MinecraftServer.java:327) [craftbukkit.jar:git-Bukkit-c19c293]
at net.minecraft.server.v1_11_R1.DedicatedServer.init(DedicatedServer.java:244) [craftbukkit.jar:git-Bukkit-c19c293]
at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:521) [craftbukkit.jar:git-Bukkit-c19c293]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]
它似乎是 scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
上的一个错误,但它没有任何意义 它们是 Integer 类型,但后来我调用了 longValue()
应该把它们变成一个 long。我只是通过在它们中硬编码一个值来使它工作,例如,如果我使用 10L 或仅使用 10,它就可以工作,但这不会。
最佳答案
检查您正在使用的方法的 Java 实现,即 ScheduledThreadPoolExecutor.scheduleAtFixedRate
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command,
long initialDelay,
long period,
TimeUnit unit) {
if (command == null || unit == null)
throw new NullPointerException();
if (period <= 0)
throw new IllegalArgumentException();
RunnableScheduledFuture<?> t = decorateTask(command,
new ScheduledFutureTask<Object>(command,
null,
triggerTime(initialDelay, unit),
unit.toNanos(period)));
delayedExecute(t);
return t;
}
异常IllegalArgumentException
当 period <= 0
时抛出,所以基本上你正在传递 runPickWinnerTime.longValue()
小于 0,即该方法的第三个参数小于 0,而它不应该小于 0。
当您进行硬编码时,您就是在硬编码正确的值,但是当您使用 runPickWinnerTime.longValue()
时那么它不是,所以你需要创建runPickWinnerTime
大于 0,你应该为你的 initialDelay
使用不同的对象和 period
,我看到您使用的是相同的,这会导致您出现意外问题。
关于java - scheduleAtFixedRate 方法上的 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43827415/
我尝试每小时执行一次代码 这是针对applicationRunner中的java,可以在服务器启动时运行。 @Component public class TestApplicationRunner
我在程序中使用方法scheduleAtFixedRate(Timer类)。它每秒运行一次,但有时此方法变得非常快(每秒执行 3 - 4 次)。 但是我在网络上做了一些研究,发现了这个: 从 Andro
日志: [pool-1-thread-1] TRACE apns.ApnsPushConnection - 输入方法 queryFeedbackService 参数[pool-3-thread-1]
我正在阅读一本 java8 书籍,发现了 ScheduleAtFixedRate 和 ScheduledExecutorService 中的 scheduleWithFixedDelay 方法之间的区
我们需要通过 Java 程序关注 PC 时钟。为此,我们每 500 毫秒使用 ScheduleAtFixedRate() 调度一个 Runnable。我们每次都从中调用 System.currentT
我正在编写一个应用程序,它生成随机数并在 Android 屏幕上显示它们(一个接一个)。这是 Activity java fragment 。 public class Scada extends A
public class MyTimerTask extends TimerTask{ @Override public void run() { int i = 0;
我有一个 Java 应用程序,用于通过 UART 连接 (RS422) 与嵌入式设备通信。主机以 5 毫秒为间隔向微 Controller 查询数据。直到最近我一直在使用 ScheduledExecu
我有 TextView 来频繁更新时间,工作正常,但问题是我想根据不同的条件更改计划时间,但我无法更改计划时间。它继续在最初设置的时间。 private Long mPeriod = Long.par
我正在研究 Java 类 ScheduledExecutorService 的 scheduleAtFixedRate 方法。 这是我的可疑代码: ScheduledExecutorService s
import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import
我正在尝试使用 ScheduledExecutorService 类的方法 scheduleAtFixedRate 进行示例。代码是: ScheduledExecutorService service
我创建了一个可运行的类并创建了一个线程,但具有唯一的名称,但是当我通过 executor.scheduleAtFixedRate 发送该线程时,它创建了自己的线程,我不明白这是为什么? 我试着阅读这里
当我定期执行一项耗时的任务时,结果没有达到我的预期。 public static void main(String[] args) { ScheduledExecutorService sch
我正在使用ScheduledExecutorService使用 scheduleAtFixedRate 方法每小时提供一次数据库更新。问题是它逐渐变得更晚 - 在长期服务中我一直在记录它并且每天大约一
这是我的固定速率计时器代码。当 Activity 进入 onPause(); 时,我可以暂停这个计时器吗?如果是这样,那么您建议我在 onPause(); 方法中放入什么,当应用程序进入 onResu
Runnable runPickWinner = new Runnable() { @Override public void run() {
因为我每秒都在执行时间紧迫的任务,所以我比较了几种方法以找到确保我的任务真正以固定时间步长执行的最佳方法。在计算所有方法的误差标准推导后,似乎使用方法 scheduledExecutorService
final Runnable refresh = new Refresh(params...); service = Executors.newScheduledThreadPool(1); serv
我的代码是: ou=100 final Timer t=new Timer(); TimerTask tt=new TimerTask() { @Overrid
我是一名优秀的程序员,十分优秀!