我正在使用java.util.concurrency框架实现一些代码.我将把一组callables传递给一个将并行执行它们的类.我正试图找出以类型安全的方式获取每个响应的最佳方法.这里有一些代码可以帮助解释我在做什么:
首先我创建我的Callables,这是要并行调用的工作单元.例如,这里第一个工作单元返回a String,第二个工作单元返回Integer:
Callable<String> firstCallable = new Callable<String>(){
public String call() {...}
};
Callable<Integer> secondCallable = new Callable<Integer>(){
public Integer call() {...}
};
Run Code Online (Sandbox Code Playgroud)
现在我将它们激活到我的框架中以并行运行它们,并且诀窍是获得适当的响应对象的句柄.这是一个有效的实现:
Map<Callable,Object> responseMap = ParallelSender.send(firstCallable,
secondCallable);
Run Code Online (Sandbox Code Playgroud)
Object特定的响应在哪里Callable.因此,你可以这样做:
String firstCallableResponse = (String)responseMap.get(firstCallable);
Integer secondCallableResponse = (Integer)responseMap.get(secondCallable);
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,从地图中获取时是否可以避免投射?这不会编译,但我正在考虑这些方面:
Map<Callable<T>, T> responseMap = ParallelSender.send(...);
String firstCallableResponse = responseMap.get(firstCallable);
Run Code Online (Sandbox Code Playgroud)
这样返回的值基于Callable键的类型参数.我担心的是,如果有人refactors工作单位的返回类型(从说Integer来BigDecimal,然后自投或其他)Object永远不会被自动重构工具被捕获,并可能导致运行时问题.
结论:感谢下面的所有有用的评论和讨论,我采取了一个略有不同的机智(尽管肖恩帕特里克弗洛伊德认为上面的问题是正确的).我最终完全删除了响应映射并Callable用响应填充了对象.以下是相关的代码段:
public abstract class AbstractParallelCallable<V> implements Callable<V> {
/** The response generated by …Run Code Online (Sandbox Code Playgroud) 我是第一次认真尝试IntelliJ IDEA,并在64位Ubuntu 10.04上安装了版本10.0.1和Sun JDK 1.6.0_21.
每次我启动IDEA时它都会告诉我索引已经损坏并需要重建.知道可能导致这种情况的原因或者我可能会如何诊断问题?
当我在MacBook Pro上的相同版本的IDEA上打开相同的项目时,我没有注意到这个问题.
(我正在使用带有几个插件/模块的Grails应用程序,如果这有任何相关性.)
谢谢.
我有一个日期格式模式: MMM yyyy
并希望:如果月份名称很短,则在名称后面打印一个点.但如果月份名称不短,则不添加任何点.
例:
May 2010无点) - 5月只有3个字母,因此不需要点,因为它不是缩写.Dec. 2010带点) - 12月长度超过3个字母,因此需要一个点,因为它是缩写.这是可能的模式,还是我需要通过"手"实现它?
我定期进行一组测量,但有些测量结果丢失了:
measurement_date value
1 2011-01-17 13:00:00 5
2 2011-01-17 13:04:00 5
3 2011-01-17 13:08:00 7
4 2011-01-17 13:12:00 8
5 2011-01-17 13:16:00 4
6 2011-01-17 13:24:00 6
7 2011-01-17 13:28:00 5
8 2011-01-17 13:32:00 6
9 2011-01-17 13:36:00 9
10 2011-01-17 13:40:00 8
11 2011-01-17 13:44:00 6
12 2011-01-17 13:48:00 6
13 2011-01-17 13:52:00 4
14 2011-01-17 13:56:00 6
Run Code Online (Sandbox Code Playgroud)
我有一个函数,它将处理值并可以处理缺少的值,但行必须在那里,所以我生成一个每分钟有一行的数组,如下所示:
times <- timeSequence(from=.., length=60, by="min")
Run Code Online (Sandbox Code Playgroud)
现在我每小时都有一行,但我需要合并数据.我试过这样的事情,但不能完全正确:
lapply(times, function(time) {
n <- as.numeric(time)
v <- Position(function(candidate) {
y <- as.numeric(candiated)
n …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Python脚本在Hadoop Streaming上运行Map-Reduce作业,并在python中获得与Hadoop Streaming Job失败错误相同的错误,但这些解决方案对我不起作用.
当我运行"cat sample.txt | ./p1mapper.py | sort | ./p1reducer.py"时,我的脚本运行正常.
但是当我运行以下内容时:
./bin/hadoop jar contrib/streaming/hadoop-0.20.2-streaming.jar \
-input "p1input/*" \
-output p1output \
-mapper "python p1mapper.py" \
-reducer "python p1reducer.py" \
-file /Users/Tish/Desktop/HW1/p1mapper.py \
-file /Users/Tish/Desktop/HW1/p1reducer.py
Run Code Online (Sandbox Code Playgroud)
(注意:即使我删除了"python"或输入-mapper和-reducer的完整路径名,结果也一样)
这是我得到的输出:
packageJobJar: [/Users/Tish/Desktop/HW1/p1mapper.py, /Users/Tish/Desktop/CS246/HW1/p1reducer.py, /Users/Tish/Documents/workspace/hadoop-0.20.2/tmp/hadoop-unjar4363616744311424878/] [] /var/folders/Mk/MkDxFxURFZmLg+gkCGdO9U+++TM/-Tmp-/streamjob3714058030803466665.jar tmpDir=null
11/01/18 03:02:52 INFO mapred.FileInputFormat: Total input paths to process : 1
11/01/18 03:02:52 INFO streaming.StreamJob: getLocalDirs(): [tmp/mapred/local]
11/01/18 03:02:52 INFO streaming.StreamJob: Running job: job_201101180237_0005
11/01/18 03:02:52 INFO streaming.StreamJob: To kill this …Run Code Online (Sandbox Code Playgroud) 很快我可以使用SIP到GSM网关,因为我需要打电话从德国到捷克共和国的手机.因此,我考虑实施一个.
现在,问题是:
我们非常欢迎您的想法,建议和意见.
嗨我有这样一张桌子:
notifies
id,user_id
1,3
2,3
3,4
4,5
5,6
6,3
7,4
8,4
9,3
10,3
Run Code Online (Sandbox Code Playgroud)
我必须创建一个只对相邻行进行分组的查询
所以,这个例子的结果应该是:
user_id
3
4
5
6
3
4
3
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?谢谢
每当我将背景分配给使用wrap_content布局的视图时,如果背景图像大于视图,则视图会被拉伸,以便它可以保持整个背景.为什么会如此以及如何预防呢?即使图像是9-patch并且标记了可伸展区域,也会出现这种情况 - 为什么图像缩小到视图的大小?
任何人都可以显示moe如何从java ssh命令发送(例如ssh root@192.168.0.2"ls")?我需要什么课?
我有一个JSON配置文件,包含一些变量作为字符串(总是ascii).默认情况下,这些字符串被解码为unicode,但由于我必须将这些变量传递给我的Python C Extensions,我需要它们作为普通的Python字符串.目前我正在使用str(unicode)转换JSON字符串,但是更加优雅且不那么详细的解决方案将非常受欢迎.
有没有办法使用自定义JSONDecoder或对象挂钩将默认转换从字符串更改为unicode ?