我正在使用java lambda对列表进行排序.
我怎样才能以相反的方式对它进行排序?
我看到这篇文章,但我想使用java 8 lambda.
这是我的代码(我使用*-1)作为黑客
Arrays.asList(files).stream()
.filter(file -> isNameLikeBaseLine(file, baseLineFile.getName()))
.sorted(new Comparator<File>() {
public int compare(File o1, File o2) {
int answer;
if (o1.lastModified() == o2.lastModified()) {
answer = 0;
} else if (o1.lastModified() > o2.lastModified()) {
answer = 1;
} else {
answer = -1;
}
return -1 * answer;
}
})
.skip(numOfNewestToLeave)
.forEach(item -> item.delete());
Run Code Online (Sandbox Code Playgroud) 我尝试运行此测试:
@Mock IRoutingObjHttpClient routingClientMock;
@Mock IRoutingResponseRepository routingResponseRepositoryMock;
@Test
public void testSendRoutingRequest() throws Exception {
CompleteRoutingResponse completeRoutingResponse = new CompleteRoutingResponse();
completeRoutingResponse.regression_latencyMillis = 500L;
Mockito.when(routingClientMock.sendRoutingRequest(any(RoutingRequest.class))).thenReturn(completeRoutingResponse);
RoutingObjHttpClientWithReRun routingObjHttpClientWithReRun = new RoutingObjHttpClientWithReRun
(routingClientMock, routingResponseRepositoryMock);
...
}
Run Code Online (Sandbox Code Playgroud)
但我得到NullPointerException:
Mockito.when(routingClientMock.
我错过了什么?
我想用Environment变量替换一个上下文方法.
但不确定它们是否意味着相同.
有什么区别
getFilesDir()
和Environment.getDataDirectory()
?
我如何data\data
从data\data\com.Myapp
使用中获得Environment Variable
?
我第一次尝试使用Powermock
我使用build.gradle并添加:
dependencies {
...
testCompile 'org.mockito:mockito-all:1.9.5'
testCompile 'org.powermock:powermock-api-mockito:1.5.5'
}
Run Code Online (Sandbox Code Playgroud)
现在我看看我的测试类:
import org.junit.Before;
import org.junit.runner.RunWith;
import org.mockito.Matchers;
import org.powermock.core.classloader.annotations.PrepareForTest;
@RunWith(PowerMockRunner.class)
@PrepareForTest(GeoUtils.class)
Run Code Online (Sandbox Code Playgroud)
并得到此错误:
@RunWith(PowerMockRunner.class)
^
cannot resolve symbol PowerMockRunner
Run Code Online (Sandbox Code Playgroud)
怎么解决PrepareForTest
而不是PowerMockRunner
?
我很难找出NH异常:
批量更新从更新返回了意外的行数; 实际行数:0; 预期:1
我的Dal代码:
public T Save(T item)
{
using (ISession session = NHibernateHelper.GetSession())
{
using (var transaction = session.BeginTransaction())
{
session.SaveOrUpdate(item);
transaction.Commit();
return item;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的log4net文件:
命令0:UPDATE SET Metadata_FriendDetails用户Id = @ P0,电子邮件= @ P1,名称= @ P2 WHERE FriendId = @ P3; @ P0 = a358ab9d-d481-4bdd-8cb2-18ddc8898c70 [类型:GUID(0)],@ P1 = '1@hotmail.com'[类型:String(4000)],@ P2 = 'myFriend'[类型:String(4000)],@ P3 = 2ea35658-edb1-43e3-b848-e1915d1042df [类型:GUID(0) ]
2011-12-02 13:06:49750 [代理:适配器运行线程测试 'SaveFriendDetails_Test' ID为 '17016e48-1ff4-4dea-8536-6aa3b24e5fb7'] DEBUG NHibernate.AdoNet.AbstractBatcher - 闭IDbCommand的,开放的IDbCommands:0 2011 -12-02 13:06:49751 [代理:适配器运行线程测试 'SaveFriendDetails_Test' ID为 '17016e48-1ff4-4dea-8536-6aa3b24e5fb7'] ERROR NHibernate.Event.Default.AbstractFlushingEventListener …
我想访问getFilesDir()
哪个是上下文方法.
有没有办法像访问外部存储一样访问它?
Environment.getExternalStorageDirectory();
意思是环境变量?
也许应用静态上下文?因为我想从非上下文类(相同的应用程序服务,但不是活动)调用它.
我有这个angular2模板:
<template *ngIf="alerts.length > 0">
<alert *ngFor="let alert of alerts;let i = index" [type]="alert.type" dismissible="true" (close)="closeAlert(i)">
{{ alert?.msg }}
</alert>
</template>
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
zone.js:461 Unhandled Promise rejection: Template parse errors:
Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with * (" </div>
<div *ngSwitchCase="false" class="container p-t-10">
<alert *ngIf="alerts.length > 0" [ERROR ->]*ngFor="let alert of alerts;let i = index" [type]="alert.type" dismissible="true" (close)="closeAlert"): b@5:37
Run Code Online (Sandbox Code Playgroud)
我把*ngIf和*ngFor放在不同的html元素中是什么问题.它应该工作.没有?
和:
Can't bind to 'type' since it isn't a known …
Run Code Online (Sandbox Code Playgroud) 我正在使用appium启动已经安装的应用程序.
我的驱动程序初始化后.如何进行轮询 - 等到某些活动显示出来?
我只看到这种方式在启动时等待活动
cap.setCapability("app-wait-activity", "activity-to-wait-for");
还有其他方法吗?未初始化时,如何等待其他特定活动.按一下按钮后说?
只是sleep x seconds
?
我有这个代码,触发一些异步http调用:
private CompleteRoutingResponseWrapper sendRoutingRequestString(int numOfTries, String routingRequestUrl) {
routingRequestUrl = urlUtils.getHttpUrl(routingRequestUrl);
CompleteRoutingResponseWrapper answer = new CompleteRoutingResponseWrapper();
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse response = null;
try {
Stopwatch stopWatch = Stopwatch.createStarted();
response = client.execute(new HttpGet(routingRequestUrl));
stopWatch.stop();
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != 200) {
answer = retryOrHandleError(numOfTries, routingRequestUrl, answer, response, statusCode);
} else {
String bodyAsString = EntityUtils.toString(response.getEntity());
answer.completeRoutingResponse = handleSuccess(bodyAsString);
answer.latency = stopWatch.elapsed(TimeUnit.MILLISECONDS);
handleErrorInBody(routingRequestUrl, answer, bodyAsString);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
handleNullResponse(answer);
return answer;
} …
Run Code Online (Sandbox Code Playgroud) 有谁可以解释这两者之间的区别是什么:
client = HttpClientBuilder.create()
.setConnectionTimeToLive(1, TimeUnit.MINUTES)
.build();
Run Code Online (Sandbox Code Playgroud)
和
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30 * 1000).build();
client = HttpClientBuilder
.create()
.setDefaultRequestConfig(requestConfig)
.build();
Run Code Online (Sandbox Code Playgroud)
使用起来更好setSocketTimeout
吗?
java ×7
android ×3
mocking ×2
mockito ×2
unit-testing ×2
angular ×1
appium ×1
asynchronous ×1
c# ×1
database ×1
http ×1
java-8 ×1
java-stream ×1
javascript ×1
jersey ×1
junit ×1
lambda ×1
nhibernate ×1
orm ×1
powermock ×1
sql ×1
storage ×1
ui-testing ×1