我正在尝试实现一个简单的自定义public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long num1=sc.nextLong();
long count=(num1 & (num1- 1));
if(count == 0l) {
System.out.println("power of two");
}
}
,它类似于Future
,但更简单。
我定义了一个特征:
scala.concurrent.Future
我可以根据这些API做这些事情:
trait MyFuture[+T] {
def map[K](f: T => K): MyFuture[K]
def flatMap[K](f: T => MyFuture[K]): MyFuture[K]
def recover[K](f: Throwable => K): MyFuture[K]
def recoverWith[K](f: Throwable => MyFuture[K]): MyFuture[K]
}
object MyFuture {
def apply[T](body: => T): MyFuture[T] = ???
}
object MyAwait {
def result[T](myFuture: MyFuture[T], atMost: Int /*mills*/): T = ???
}
不幸的是,我找不到实现它的方法。我调查了val future = MyFuture(3).map(_+1).flatMap(x=>MyFuture(x*x))
val result = MyAwait.result(future,100)
// result: 16
,但这对于学习来说太复杂了