小编del*_*ber的帖子

在TimeoutException之后如何让FutureTask返回?

在下面的代码中,我按照预期在100秒后捕获TimeoutException.此时我希望代码退出main并终止程序,但它会继续打印到控制台.如何让任务在超时后停止执行?

private static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool();

private static <T> T timedCall(Callable<T> c, long timeout, TimeUnit timeUnit) throws InterruptedException, ExecutionException, TimeoutException {
    FutureTask<T> task = new FutureTask<T>(c);
    THREAD_POOL.execute(task);
    return task.get(timeout, timeUnit);
}


public static void main(String[] args) {

    try {
        int returnCode = timedCall(new Callable<Integer>() {
            public Integer call() throws Exception {
                for (int i=0; i < 1000000; i++) {
                    System.out.println(new java.util.Date());
                    Thread.sleep(1000);
                }
                return 0;
            }
        }, 100, TimeUnit.SECONDS);
    } catch (Exception e) {
        e.printStackTrace();
        return;
    }


}
Run Code Online (Sandbox Code Playgroud)

java futuretask

9
推荐指数
1
解决办法
2万
查看次数

在Scala中,我如何将事件驱动编程与功能方法相结合?

为了澄清事件驱动我的意思,我指的是我所处的情况

def onTrade(...)
Run Code Online (Sandbox Code Playgroud)

每次特定股票交易时都会调用.假设我想跟踪每日最高交易价格.对我来说,明显的解决方案是:

var dailyHigh = 0

def onTrade(...) {
    if (price > dailyHigh) dailyHigh = price
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用val代替var来实现这个功能?还假设我可能希望将来添加dailyLow,volumeHigh,volumeLow等.

scala event-driven

9
推荐指数
2
解决办法
3444
查看次数

为什么Scala在阅读我的CSV时会崩溃?

该文件在这里

http://dl.dropbox.com/u/12337149/history.csv

我尝试按如下方式读取数据

  for (line <- Source.fromFile(new File(file)).getLines) {
   println(line)
  }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Exception in thread "main" java.nio.charset.MalformedInputException: Input length = 1
    at java.nio.charset.CoderResult.throwException(CoderResult.java:260)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:319)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
    at java.io.InputStreamReader.read(InputStreamReader.java:167)
    at java.io.BufferedReader.fill(BufferedReader.java:136)
    at java.io.BufferedReader.readLine(BufferedReader.java:299)
    at java.io.BufferedReader.readLine(BufferedReader.java:362)
    at scala.io.BufferedSource$BufferedLineIterator.<init>(BufferedSource.scala:32)
    at scala.io.BufferedSource.getLines(BufferedSource.scala:43)
    at com.alluvia.reports.RunIGConverter$$anonfun$main$1.apply(RunIGConverter.scala:17)
    at com.alluvia.reports.RunIGConverter$$anonfun$main$1.apply(RunIGConverter.scala:15)
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:34)
    at scala.collection.mutable.ArrayOps.foreach(ArrayOps.scala:38)
    at com.alluvia.reports.RunIGConverter$.main(RunIGConverter.scala:15)
    at com.alluvia.reports.RunIGConverter.main(RunIGConverter.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Run Code Online (Sandbox Code Playgroud)

该文件在excel中打开就好了.我认为这是某种类型的编码问题,但我不知道解决方法

java csv scala filereader

9
推荐指数
1
解决办法
7098
查看次数

在Scala中,如何将import语句传递给子类?

例如

object TimeHelpers {
  def seconds(in: Long): Long = in * 1000L
}

import TimeHelpers._

class Base {

  seconds(1000L)
}

// separate file
class Base2 extends Base {
// does not compile
//seconds(1000L)

}
Run Code Online (Sandbox Code Playgroud)

我是否必须手动导入Base2或有自动执行此操作的方法吗?

scala

9
推荐指数
1
解决办法
1121
查看次数

在Scala中,为什么getInstance无法使用GregorianCalendar?

java.util.GregorianCalendar.getInstance();
Run Code Online (Sandbox Code Playgroud)

适用于Java

java.util.Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)

在Scala中工作

java.util.GregorianCalendar.getInstance();
Run Code Online (Sandbox Code Playgroud)

Scala失败.getInstance不是对象java.util.GregorianCalendar的成员

scala

9
推荐指数
1
解决办法
1112
查看次数

如何将Underscore.js模板与EJS结合使用?

它们都使用相同的语法来插入变量.例如,如果我想要以下内容

<%= username %>
Run Code Online (Sandbox Code Playgroud)

在我的下划线中,我的主要EJS中断,因为它试图替换用户名,并且主页中不存在这样的变量.

javascript ejs node.js underscore.js

9
推荐指数
2
解决办法
6116
查看次数

如何在Node.js中"累积"原始流?

目前我将所有内容连接成一个字符串,如下所示

var body = '';
res.on('data', function(chunk){
    body += chunk;
});
Run Code Online (Sandbox Code Playgroud)

如何保存和累积原始流,以便将原始字节传递给期望字节而不是字符串的函数?

stream node.js

9
推荐指数
2
解决办法
4304
查看次数

如何从Scala访问Java枚举?

我的java类如下

public class Test {

    protected enum TestEnum {A, B, C};

    public Test(TestEnum te) {

    }

}
Run Code Online (Sandbox Code Playgroud)

这是我的Scala

class ScalaEnum(myEnum: TestEnum) extends Test(myEnum) {

}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息

对象中的类TestEnum无法在对象Test中访问Test不允许访问受保护类TestEnum,因为封装类XXX中的类ScalaEnum不是对象的子类在YYY包中定义了target

enums scala scala-java-interop

8
推荐指数
1
解决办法
3416
查看次数

在Scala中,是否可以使用implicits自动覆盖toString?

在Java中,我会做类似的事情

class MyDate extends java.util.Date {
  public String toString() { ... }
}

MyDate date = new MyDate
Run Code Online (Sandbox Code Playgroud)

有点笨重.在Scala中,是否可以覆盖toString,同时仍然使用常规的java.util.Date而不是MyDate.我有一个暗示涉及但很乐意使用任何技术

scala

8
推荐指数
1
解决办法
1765
查看次数

在Clojure中,我如何将所有内容映射到一个恒定值?

例如

(map #(+ 10 %1) [ 1 3 5 7 ])
Run Code Online (Sandbox Code Playgroud)

将为所有内容添加10

假设我想将所有内容映射到常量1.我试过了

(map #(1) [ 1 3 5 7 ])
Run Code Online (Sandbox Code Playgroud)

但我不明白编译错误.

clojure

8
推荐指数
3
解决办法
972
查看次数