大多数主流语言,包括面向对象编程(OOP)语言,如C#,Visual Basic,C++和Java,主要用于支持命令式(过程式)编程,而Haskell/gofer类似语言纯粹是功能性的.任何人都可以详细说明这两种编程方式之间的区别吗?
我知道这取决于用户要求选择编程方式,但为什么建议学习函数式编程语言?
我编写了一些代码并将其导出为jar文件.在这个jar中有一个名为automation.propertiesdefaults 的文件,我正在使用它加载
val automationPropertiesFileURL = getClass.getResource("/automation.properties")
if (automationPropertiesFileURL != null) {
val source = Source.fromURL(automationPropertiesFileURL)
config = new Properties()
config.load(source.bufferedReader())
}
Run Code Online (Sandbox Code Playgroud)
但是当这个jar文件被添加为gradle依赖项C:\User\abc\.gradle并且我想automation.properties从我当前的项目中读取时,如何覆盖该位置并从我的项目中读取文件而不是从jar文件本身?
我有一个数组的 Gatling JSON 对象。该对象包含错误消息,例如
"error": [
{
"errorCode": "111",
"errorMessage": "very dynamic error :- at [Source: java.io.PushbackInputStream@5d0edb12; line: 6, column: 6]; nested exception is com.fasterxml.jackson.core.JsonParseException: "
},
{
"errorCode": null,
"errorMessage": "Fixed Error Message"
},
{
"errorCode": "112",
"errorMessage": "Again some error message"
}
]
Run Code Online (Sandbox Code Playgroud)
我正在检查 jsonpath 作为
($.error[1].errorMessage).is("Fixed Error Message")
但是,不同的 API 有不同的错误对象,固定的 errorMessage 可以放在数组中的任何索引位置。
如何动态检查 jsonArray 中是否存在固定的 errorMessage 而不用担心 arrayIndex ?
我可以做一个独立匹配字符串与数组元素而不提及数组索引的查询,如下所示?
($.error[*].errorMessage).is("Fixed Error Message")
我有一个项目,其中使用一些 git 操作构建脚本,但我的工作因此而失败。
我已经在从站的工具位置(using following combinations)中添加了 git 可执行文件,但它仍然失败
C:\Program Files (x86)\Git\bin
'C:\Program Files (x86)\Git\bin\'
C:\Program Files (x86)\Git\bin\git.exe
"C:\Program Files (x86)\Git\bin\git.exe"
'C:\Program Files (x86)\Git\bin\git.exe'
Run Code Online (Sandbox Code Playgroud)
java --version
git --version
Run Code Online (Sandbox Code Playgroud)
Java 可以工作,但 git 失败并出现错误:-
"JAVA VERSION >>>>>>>>>>>>>>"
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode)
"GIT VERSION >>>>>>>>>>>>>>"
'git' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud) 我想比较<key,values>作为HashMap<String,String>()数据传递的jsonPath中的一些.我们怎样才能在加特检查中实现它?
val hashMap = new HashMap[String,String]()
hashMap.put("foo", "bar")
Run Code Online (Sandbox Code Playgroud)
或者我可以简单地检查这样的东西吗?
for (String key <- keyValue){
.check(jsonPath("$." + key.(is(hashMap.get(key)))))
}
Run Code Online (Sandbox Code Playgroud)
要么
.check(jsonPath.containsAll(hashMap.keySet), jsonPath.containsAll(hashMap.valueSet))
Run Code Online (Sandbox Code Playgroud)
或者我可以使用hamcrest或其他一些来比较这个HashMap和JsonPath.
.exec(http("my testl").post("/some_url").headers(common_header).body(bodyPayLoad).
asJSON.check(status.is(200)).check(jsonPath("$",Matchers.hasItems(hashMap)).saveAs("response"))).exec(session => {
val responseValue = session.get("response").asOption[String]
println(testCase + " REST API Response :" + responseValue)
session
}).pause(10)
Run Code Online (Sandbox Code Playgroud)
我怎么能得到它?
说,我正在使用数据库中的一些长期运行的任务,并使用Redis缓存它,成千上万次或进行记录。第二天,有人更改了数据库中的一些记录。
下次,redis如何知道它必须返回缓存的数据或再次必须重新访问数据库中的所有数千条记录?
如何实现同步?
我遵循了这个答案/sf/answers/1359319321/但这并不能帮助我使用 Gradle 编译单个 java 文件。它说Task :compileMessageKeys NO-SOURCE为什么?
我只有一个CreateMessageKeysTask.java依赖于"apache-ant-1.7.0/ant.jar"jar 的Java 文件
task compileMessageKeys (type: JavaCompile) {
doFirst {
println "$projectDir/precompile"
new File("$projectDir/precompile").mkdirs()
}
source = sourceSets.main.java.srcDirs
include 'mypackage.build.CreateMessageKeysTask.java'
classpath = sourceSets.main.compileClasspath
destinationDir = sourceSets.main.output.classesDir
}
compileMessageKeys.options.compilerArgs = ["-sourcepath", "builder/precompile-task/src/mypackage/build"]
Run Code Online (Sandbox Code Playgroud)
我的ant脚本如下
<target name="precompile"
description="builds the CreateMessageKeysTask to generates the MessageKeys interface">
<mkdir dir="${precompile}" />
<echo message=" precompile.src: ${precompile.src}" />
<javac srcdir="${precompile.src}" destdir="${precompile}"
includes="mypackage/build/**"
debug="true" fork="true" memoryMaximumSize="${javacCoreMaxMem}"
includeantruntime="false">
<classpath>
<fileset dir="${my.proj.base}/lib/">
<include name="apache-ant-1.7.0/ant.jar" …Run Code Online (Sandbox Code Playgroud) 如何将此参数传递给 gradle 命令
例如
./gradlew clean build org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
给出错误为
* What went wrong:
Task 'org.gradle.jvmargs=-Xmx2048m' not found in root project
Run Code Online (Sandbox Code Playgroud) 我想将大型JSON数组数据存储到CSV文件中.我怎样才能做到这一点?
我有以下代码,不会将任何数据保存到我的android"test"文件夹中创建的"test1.csv"文件中.
这是代码.
JSONArray outerArray = [{"value":true,"Id":0,"name":"214"}, {"value":true,"Id":0,"name":"215"},{"value":true,"Id":0,"name":"216"}]
public void saveCsv(JSONArray outerArray) throws IOException, JSONException {
String rootPath = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/test/";
File dir = new File(rootPath);
if (!dir.exists()) {
dir.mkdir();
}
File file;
EditText editText = (EditText) findViewById(R.id.editText1);
if (!editText.getText().toString().equals("")) {
file = new File(rootPath, editText.getText().toString() + ".csv");
} else {
editText.setError("Defualt csv file name will be used");
Toast.makeText(this, "CSV name is empty", 5000).show();
file = new File(rootPath, "test1.csv");
}
file.createNewFile();
if (file.exists()) {
CSVWriter writer …Run Code Online (Sandbox Code Playgroud) 我已经将我的 sourceSets 定义为
sourceSets {
// Configuring SourceSets for all connector source files.
main {
java {
srcDirs = ['src']
}
}
test {
// integrationTests
}
unitTests {
//unitTests
}
}
test {
// integrationTests
}
task('unitTest', type: Test) {
//unitTests
}
Run Code Online (Sandbox Code Playgroud)
当我开始时,./gradlew build它的check任务基本上称为test目标。
我可以覆盖默认gradle build任务的“检查”机制来调用unitTest这里而不是调用test吗?
我已经安装了zentimestamp-plugin并尝试使用Zentimestamp env变量BUILD_TIMESTAMP通过以下方式获取电子邮件通知中的构建执行时间,但无法获得实际的时间戳值
此外,我还没有在插件主页中找到任何文档.
如何通过电子邮件获得正确的构建时间?
我必须设置一个标志nameRemoved=true,当我从List<String>
这是我在这里使用的传统方法。
List<String> list = new ArrayList<String>();
if (list.contains("abc")) {
list.remove("abc");
nameRemoved=true
}
Run Code Online (Sandbox Code Playgroud)
我可以使用下面的方法从列表中删除元素,但如何将标志值设置为nameRemoved=true使用 lambda 语法?
List<String> list = new ArrayList<String>();
list.removeIf(name -> name.equalsIgnoreCase("abc"));
Run Code Online (Sandbox Code Playgroud) java ×5
gradle ×4
scala ×3
android ×2
build ×2
gatling ×2
jenkins ×2
json ×2
jsonpath ×2
arrays ×1
build.gradle ×1
caching ×1
cdn ×1
collections ×1
csv ×1
git ×1
gradlew ×1
hamcrest ×1
hashmap ×1
html-email ×1
jar ×1
java-8 ×1
lambda ×1
maven ×1
memcached ×1
oop ×1
redis ×1
textview ×1
unit-testing ×1