有什么方法可以合并一个扔掉的名单吗?我有一个ListenableFutures列表,每个都会捕获异常(如果有的话)并将其保存在Result实例中.最后,如果ListenableFutures的任何Result包含throwable,我想抛出异常.问题是如何组合多个throwable,因为可能有多个未来失败?
List<ListenableFuture<Result>> futureList = new ArrayList<>();
futureList.add(future1);
futureList.add(future2);
futureList.add(future3);
ListenableFuture<List<Result>> future = futureFutures.successfulAsList(futureList);
return Futures.transform(future, new Function<List<Result>, FinalResult>() {
@Override
public FinalResult apply(List<Result> resultList) {
List<Throwable> throwableList = new ArrayList<>();
for (Result result : resultList) {
if (result.getThrowable() != null) {
throwableList.add(result.getThowable());
}
}
if (!throwableList.isEmpty()) {
// Is there something like below that I can combine a list
// of throwables and throw it?
Throwable.propagateList(throwableList); // ?????????
}
.....
return finalResult;
}
},
MoreExecutors.sameThreadExecutor());
Run Code Online (Sandbox Code Playgroud) 我对充当类的函数中的 return 语句感到困惑。请参阅下面的示例代码:
<html>
<body>
<script type="text/javascript">
function test() {
this.abc = 'def';
return 3;
}
var mytest = new test();
document.write(mytest + ', ' + (typeof mytest) + ', ' + mytest.abc);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
代码输出:[object Object], object, def。
这是我的问题。我在 test() 函数中写了“return 3”。调用“new test()”时是否会忽略此语句?
谢谢。
活动A使用startActivityForResult启动B,B使用startActivity启动C. 之后,活动堆栈是AB C.
现在假设,C使用FLAG_ACTIVITY_REORDER_TO_FRONT标志对B进行startActivity调用,然后活动堆栈将变为AC B.
我的问题是,现在,如果B完成自己,A中的onActivityResult()会因为B的退出而被调用吗?
谢谢.
根据它所述的Android文档(http://developer.android.com/reference/android/app/Application.html):
There is normally no need to subclass Application.
Run Code Online (Sandbox Code Playgroud)
我的问题是.我的应用程序需要在应用程序启动时准备一些数据(例如,从共享首选项加载一些状态数据),然后才能执行任何其他操作.我通常将数据准备逻辑放在一个子类Application中.
如果不鼓励子类化应用程序,我应该在哪里放置app-startup-time数据准备逻辑?什么是最佳做法?
谢谢.
我对CSS选择器语法有疑问.
以下两个CSS选择器有什么区别?
.myclass1 .myclass2 {
color: black;
}
.myclass1.myclass2 {
color: black;
}
Run Code Online (Sandbox Code Playgroud)
它们是一样的吗?
谢谢.
我肯定错过了什么。我很难理解在 Guava 中哪个线程 FutureCallback 将被调用以获取 ListenableFuture。
我的代码的第一个版本是:
Log.d("mydebug", "Before submit, " + Thread.currentThread() + ", " + android.os.Process.myTid());
ListeningExecutorService service = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10));
ListenableFuture future = service.submit(new Runnable() {
@Override
public void run() {
Log.d("mydebug", "In run, " + Thread.currentThread() + ", " + android.os.Process.myTid());
}
});
Futures.addCallback(future, new FutureCallback() {
@Override
public void onSuccess(Object result) {
Log.d("mydebug", "In onSuccess, " + Thread.currentThread() + ", " + android.os.Process.myTid());
}
@Override
public void onFailure(Throwable thrown) {
Log.d("mydebug", "In onFailure, " + Thread.currentThread() …
Run Code Online (Sandbox Code Playgroud)