基本上,我想要一个同时使用计时器和隐藏功能的演员。
在Scala中,我们可以执行以下操作-extends AbstractActor with Timer with Stash
在Java中,我发现了两个类-AbstractActorWithTimers
和AbstractActorWithStash
。
不幸的是,我无法在Java中扩展这两个类。
使用Java的任何推荐方法?
答案 0 :(得分:0)
即使我陷入了同样的问题。 我想创建一个状态机,并且需要存储和计时器。
所以在这种情况下,我有两个选择:-
使用AbstractFSMWithStash:-我不喜欢,因为我不确定是否 这是我解决方案中的scalabel
使用类型化的Actor,您可以在其中实际组成计时器和隐藏,请参考下面带有测试用例的代码:-
import pandas as pd
import numpy as np
from sklearn import linear_model
df = pd.read_csv('dtaset.csv')
df.head()
index followers likes urls
0 14928252 132771 https://url1
1 14928252 57671 https://url2
2 14928252 161580 https://url3
3 14928252 60969 https://url4
4 14928252 375567 https://url5
答案 1 :(得分:0)
最近我偶然发现了这个问题,我们通过在scala项目中创建一个抽象类,然后在Java中对其进行扩展来规避它。
这个scala项目实际上是我们使用akka(经典)的maven-multi-module项目中的一个模块。该项目包含一个没有主体的单一抽象类:
import akka.actor.{AbstractActor, Stash, Timers}
/**
* An abstract actor that has both stash and timers.
*/
abstract class AbstractActorWithStashAndTimers extends AbstractActor with Stash with Timers {
}
将scala项目编译成一个jar并将该jar放在Java项目类路径中之后,就可以像在akka中使用任何其他抽象actor类一样在Java中使用它:
public class MyConcreteActor extends AbstractActorWithStashAndTimers {
@Override
public final Receive createReceive() {
// you can use stash() and timers() here.
}
}