小编Kir*_*han的帖子

hamcrest:如何匹配数组是另一个数组的子集?

鉴于:

int[] a = {1, 2, 3, 4};
int[] b = {1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

如何使用hamcrest匹配器将"a"作为"b"的子集?

以下作品

assertThat(Arrays.asList(b), hasItems(a));
Run Code Online (Sandbox Code Playgroud)

但是由于我从"b"创建"a",我宁愿将"a"上的断言应用为值.就像是

assertThat(a, isSubsetOf(b));
Run Code Online (Sandbox Code Playgroud)

另外,最好避免将阵列转换为列表.

java junit hamcrest

15
推荐指数
1
解决办法
3914
查看次数

无法使用JDK1.8.0_92编译JSP文件

我们在JBoss 6.1上运行了一个遗留的JavaEE应用程序.使用Java 1.8.0_92运行JBoss6时,我们收到以下错误.请帮我解决或提供一些关于此错误的提示.

16:49:32,888 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/webSSO].[jsp]] Servlet.service() for servlet jsp threw exception: org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 1 in the generated java file
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files

Stacktrace:
        at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92) [:6.1.0.Final]
        at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) [:6.1.0.Final]
        at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:446) [:6.1.0.Final]
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362) [:6.1.0.Final]
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) [:6.1.0.Final]
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) [:6.1.0.Final]
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:607) [:6.1.0.Final]
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312) [:6.1.0.Final]
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) [:6.1.0.Final]
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253) [:6.1.0.Final]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) …
Run Code Online (Sandbox Code Playgroud)

java jboss jsp

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

理解c ++ 11 rvalues,移动语义和性能

可能重复:
如果我返回文字而不是声明std :: string会发生什么?

请考虑以下代码

string getName () {
    return "meme";
}

string name = getName();
Run Code Online (Sandbox Code Playgroud)

函数getName()返回一个临时对象.在c ++ 03中,我理解调用"string"的复制构造函数并销毁临时对象.实际上似乎编译器(至少在gcc 4.7中)通过不创建对象"name"来优化第5行,而是将其替换为临时对象本身而不是破坏临时对象(我尝试使用MyVector类;而不是std :: string).

如C++ 11标准中所定义,
1.getName()是否返回rvalue?
2.在上面第5行中,字符串的构造函数被调用(移动还是复制)?我是否必须调用std :: move()来调用移动构造函数?
3.使用移动语义,它是否比编译器提供的"复制省略"优化效率低?

c++ move-semantics return-value-optimization copy-elision c++11

11
推荐指数
1
解决办法
500
查看次数

collection vs list vs arrays作为EJB方法的返回类型

我最近被告知,集合应该优先于List作为EJB方法的返回值.这个论点是,通常集合更通用,即允许您在不影响客户端的情况下更改基础数据结构.如果这是您希望作为设计师的灵活性,那么使用集合将更有意义.但是,返回一个数组而不是集合会不会更有意义?

什么是性能影响,如果有的话?

提前致谢.

java collections ejb java-ee

10
推荐指数
2
解决办法
8487
查看次数

如何将google-chrome设置为git默认浏览器

我希望GIT默认在Chrome浏览器中打开帮助页面虽然Windows 7默认浏览器是IE,但由于其他原因我无法更改.我已将以下内容添加到git配置文件中.

[web]
    browser = chrome
[browser "chrome"]
    cmd = C:/Program Files (x86)/Google/Chrome/Application/chrome.exe
    path = C:/Program Files (x86)/Google/Chrome/Application/
Run Code Online (Sandbox Code Playgroud)

但它仍然打开IE浏览器.在git的bash环境中,它给出了消息"Launching default browser to display HTML ...".在Git Gui上,它会抛出更长的信息

The browser chrome is not available as 'C:/Program Files (x86)/Google/Chrome/Application/'.
The browser chrome is not available as 'C:/Program Files (x86)/Google/Chrome/Application/'.
    while executing
"exec {C:/Program Files (x86)/Git/bin/sh.exe} {C:/Program Files (x86)/Git/libexec/git-core/git-web--browse} {file:C:/Program Files (x86)/Git/doc/git/ht..."
    ("eval" body line 1)
    invoked from within
"eval exec $opt $cmdp $args"
    (procedure "git" line 23)
    invoked from …
Run Code Online (Sandbox Code Playgroud)

git google-chrome

8
推荐指数
2
解决办法
4673
查看次数

eclipse mars:重建maven中央存储库的索引卡住了

Eclipse Mars未能重建https://repo.maven.apache.org/maven2的索引.它停留在0%.

没有代理人.
在Windows 10和Ubuntu中都发生过.

有人可以帮我解决这个问题吗?

(我提出了另一个查询,其中类似问题发生在公司代理背后,但不确定它们是否相关.)

更新:我发现Eclipse m2e插件正在更新索引.这花了很长时间才做到这一点.但它不会更新进度条中的状态.这样可行.
但是,公司代理的问题仍然存在.

java eclipse maven m2e

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

maven dependency.systemPath必须指定绝对路径

我和maven得到了以下错误

[WARNING] The POM for com.something:dependency_module:jar:103 is invalid, transitive dependencies (if any) will not be available: 2 problems were encountered while building the effective model for something:dependency_module:103  
[ERROR] 'dependencies.dependency.systemPath' for org.jacorb:jacorb:jar must specify an absolute path but is ${jacorb2.3.1.home}/lib/jacorb.jar @  
[ERROR] 'dependencyManagement.dependencies.dependency.systemPath' for org.jacorb:jacorb:jar must specify an absolute path but is ${jacorb2.3.1.home}/lib/jacorb.jar @

问题似乎是$ {jacorb2.3.1.home}未得到解决.但是变量实际上是在settings.xml中设置的.

<profile>
    <id>jacorb2.3.1</id>
    <properties>
         <jacorb2.3.1.home>C:\apps\jacorb-2.3.1\</jacorb2.3.1.home>
    </properties>
</profile>
Run Code Online (Sandbox Code Playgroud)

事实上,项目实际上编译得很好.它似乎只在读取依赖模块的POM时抛出此错误.

请帮助我理解为什么会发生这种情况以及如何解决它.

(注意:在依赖模块POM中添加属性似乎可以解决此问题,但我不想在项目设置中硬编码路径)

maven

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

在 buildSrc kotlin 约定插件中指定 kotlin 版本

我正在开发一个包含多个子项目的 Kotlin 项目,如使用库示例构建 Kotlin 应用程序 (gradle.org)中所述

如下所示指定kotlin版本是否正确?
文件:buildSrc/build.gradle.kts

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:<kotlin-version>")
}
Run Code Online (Sandbox Code Playgroud)

另外,是否可以将此 kotlin 版本移至中央位置以声明项目范围的依赖项版本(例如 gradle.properties 或 buildSrc/**/Dependency.kt 或版本目录)?buildSrc/build.gradle.kts 似乎不支持提到的任何方法。

gradle kotlin

7
推荐指数
1
解决办法
2391
查看次数

资源在@Singleton @Predestroy方法中不可用

似乎资源不适用于Singleton的@Predestroy方法.

@PreDestroy
public void cleanup() {
    logger.info("*** Application shutting down. Dropping temporary tables ***");
    try {
        connection = dataSource.getConnection();

        Statement statement = connection.createStatement();
        statement.execute("drop table TABLE1");
        statement.execute("drop table TABLE2");
        connection.close();
        connection = null;
    } catch (SQLException sqle) {
        sqle.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

对getConnection()的调用失败,错误为" No Pool Meta Data object associated with the pool".请注意,在@PostConstruct方法中,getConnection()调用成功.

它是应用服务器实现中的Bug吗?如果没有,删除临时表的最优雅方法是什么?

(使用Glassfish 4.1.1 + Derby DB.使用与EAR一起部署的glassfish-resources.xml创建数据源

<resources>
    <jdbc-resource pool-name="EmbeddedDerbyPool"
                   jndi-name="java:app/jdbc/ActionBazaarDS" />
    <jdbc-connection-pool name="EmbeddedDerbyPool"
                          res-type="javax.sql.DataSource"
                          datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource"
                          is-isolation-level-guaranteed="false">
        <property name="databaseName" value="memory:action-bazaar-db"/>
        <property name="createDatabase" value="create"/>
    </jdbc-connection-pool>
</resources>
Run Code Online (Sandbox Code Playgroud)

)

更新:
我在GlassFish中创建了一个错误报告https://java.net/jira/browse/GLASSFISH-21476 …

java glassfish ejb-3.1

6
推荐指数
1
解决办法
318
查看次数

注释中文本块的 plantuml 背景颜色

我正在尝试为 Plantuml 序列图“注释”中的特定多行文本块设置背景颜色。

例如,在下面的 Plantuml 序列图片段中,如何为<code>注释的一部分应用特定的背景颜色?

participant Alice
note left of Alice
    This text with default color.
    <code>
    println("Hello Alice")
    println("Welcome to Wonderland!")
    </code>
end note
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只能找到<back:color>,但它似乎不适用于多行文本。

plantuml

6
推荐指数
1
解决办法
8119
查看次数