小编Mag*_*lex的帖子

使用 IntelliJ IDEA 在 Groovy 中调试迭代(闭包)

我有一个混合 Java 和 Groovy 代码的代码库。对于 Groovy 代码中的迭代,我们倾向于使用闭包:

String[] strings = ["First", "Second", "Third"]
strings.each { string ->
    println string
}
Run Code Online (Sandbox Code Playgroud)

当我通过一次步进一行在 IntelliJ IDEA (v. 11) 中调试它时,在strings.each()(即println string)中执行的代码被步进。我可以println在行上放置一个断点,然后我就可以调试它,但这是一个很好避免的解决方法。

有没有办法配置 intelliJ 不跳过 Groovy 闭包?File->Settings->Debugger->Groovy中没有适用的选项。

编辑:

澄清我希望 IntelliJ 做什么:

假设我有一个像这样的 Java 风格迭代:

for (String string : strings) {
    println string
}
Run Code Online (Sandbox Code Playgroud)

如果我使用“Step over”,调试器会毫无问题地进入迭代。我可以继续“跳过”并且仍然处于循环中,直到没有更多的对象可以迭代为止。这就是我对上述关闭的期望。

在您必须手动设置断点的一两个闭包的情况下,这可能不是问题。但是如果有很多,“自动”进入它们会非常巧妙。

iteration debugging groovy closures intellij-idea

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

ArrayUtils.isNotEmpty的Javadoc有问题吗?

ArrayUtils.isNotEmpty()Apache Commons Lang中的javadoc 似乎是错误的.或者,至少是误导性的.它说

返回:如果数组不为空或不为null,则返回true

根据我的理解,空数组不是null.所以,根据上面的定义,isNotEmpty()应该返回true一个空数组,这是违反直觉的.

岂不

返回:如果数组不为null且不为空,则返回true

更正确吗?

java arrays apache-commons-lang

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

HttpClient 4.2,基本身份验证和AuthScope

我有一个应用程序连接到需要基本身份验证的站点.这些站点在运行时提供,在编译时不知道.

我正在使用HttpClient 4.2.

我不确定下面的代码是否应该如何指定基本身份验证,但文档会建议它.但是,我不知道在构造函数中传递什么AuthScope.我原以为null参数意味着所提供的凭据应该用于所有URL,但它会抛出一个NullPointerException,所以显然我错了.

m_client = new DefaultHttpClient();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(m_userName, m_password);
((DefaultHttpClient)m_client).getCredentialsProvider().setCredentials(new AuthScope((HttpHost)null), credentials);
Run Code Online (Sandbox Code Playgroud)

java httpclient apache-commons-httpclient apache-httpclient-4.x

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

Eclipse通过自动格式化使得看起来很漂亮的JSF代码(XHTML)变得难以理解

我有一个问题,如果我使用键CTRL+ SHIFT+ 在Eclipse中自动格式化XHTML文件(JSF 1.2)f,输出看起来非常糟糕,并且不再可读.

我的格式化代码:

<span class="label viertel alignright"> 
    <h:outputLabel for="itLine5" value="E-Mail:" /> 
</span>
Run Code Online (Sandbox Code Playgroud)

变成这样:

<span class="label viertel alignright"> <h:outputLabel
       for="itLine5" value="E-Mail:" /> </span>
Run Code Online (Sandbox Code Playgroud)

在这个小例子中,它仍然可读 - 但在较长的代码中它只是混乱!

如何确保我的XHTML代码以可读的方式格式化?

我使用这个版本的Eclipse Helios:

  • 面向Web开发人员的Eclipse Java EE IDE.
  • 版本:Helios Service Release 1 - Build id:20100917-0705

我使用这些JBoss工具:

  • JBoss Archies Tools 3.2.0
  • JBoss Tools RichFaces 3.2.1
  • JBossASTools 2.2.0
  • Hibernate Tools 3.40.0
  • JBoss Seam工具:3.2.1

eclipse xhtml autoformatting jsf-1.2

6
推荐指数
2
解决办法
1439
查看次数

Lombok与Java 8有关

我刚刚升级到Intellij构思14和Java 8,我也想到将我的项目升级到Java版本8,开始使用一些新功能.但是在正确配置Intellij以使用Java 8后,我仍然遇到了Lombok的问题.看起来Java 8和lombok之间存在冲突,因为现在我@Getter@Setter注释不再起作用了.

lombok的版本是1.10.8.有什么建议?

java spring intellij-idea lombok java-8

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

如果使用来自Guava的com.google.common,为什么不使用Objects.requireNonNull()?

来自Google的Guava库的Javadoc for Preconditions指出:

使用的项目com.google.common通常应避免使用Objects.requireNonNull(Object).相反,使用checkNotNull(Object)Verify.verifyNotNull(Object)中适合的情况.(对于接收消息的重载也是如此.)

这个建议背后的动机是什么?我在Javadoc中找不到任何东西.

我的意思是,他们几乎做同样的事情,在这些情况下,通常最好使用标准API(例如,Joda-Time背后的人现在建议人们使用java.time,几乎不赞成他们自己的框架).

作为示例,这两行输入验证执行相同的操作:

class PreconditionsExample {
  private String string;

  public PreconditionsExample(String string) {
    this.string = Objects.requireNonNull(string, "string must not be null");
    this.string = Preconditions.checkNotNull(string, "string must not be null");
  }
}
Run Code Online (Sandbox Code Playgroud)

java guava

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

密封违规:软件包oracle.net.ns被密封

我正在尝试使用Oracle SQL Developer连接到Oracle 11g XE数据库。但是,我收到以下异常:

java.lang.SecurityException: sealing violation: package oracle.jdbc.driver is sealed
Run Code Online (Sandbox Code Playgroud)

我已经在网上搜索了答案,但没有找到解决方案。

是什么原因造成的,我该如何解决?

java oracle jdbc oracle11g ojdbc

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

我想用以下符号分割我的字符串:+, - ,*,/但.split函数只接受一个

目前,这是我的代码:

public void setEquals(View v){
    EditText txtDisplay = (EditText) findViewById(R.id.txtDisplay);
    display = txtDisplay.getText().toString();
    String[] strArrDisplay = display.split("\\+");
    txtDisplay.setText(String.valueOf(strArrDisplay[0]));
Run Code Online (Sandbox Code Playgroud)

我当前的代码只能成功分割加号(+).如果有加号,减号,乘号或除号,我希望拆分字符串.

假设输入为:123 + 5-2,因此所需的输出应为:

strArrDisplay[0] = "123"
strArrDisplay[1] = "5"
strArrDisplay[2] = "2"
Run Code Online (Sandbox Code Playgroud)

java arrays string android split

5
推荐指数
1
解决办法
863
查看次数

如何在nodejs中包含liquidfun物理引擎

我一直在用box2dweb和node.js 制作游戏.一切都运转正常,直到我决定改用Google的LiquidFun引擎,该引擎也基于Box2d.

在box2dweb中,我可以通过将以下内容添加到box2d.js文件的底部来导出我需要的模块.

module.exports = {
  b2Vec2: Box2D.Common.Math.b2Vec2,
  b2BodyDef: Box2D.Dynamics.b2BodyDef,
  b2Body: Box2D.Dynamics.b2Body
};
Run Code Online (Sandbox Code Playgroud)

LiquidFun在其编译文件中不使用相同的命名空间,所以我试过:

module.exports = {
  b2Vec2,
  b2BodyDef,
  b2Body
};
Run Code Online (Sandbox Code Playgroud)

我没有运气让node.js导出我需要的任何功能.有人可以告诉我如何正确导出LiquidFun吗?

javascript node.js box2dweb liquidfun

5
推荐指数
1
解决办法
965
查看次数

为什么 Java 8 和 Java 11 之间解析的依赖项不同?

给定一个非常简单的 Maven 项目,其中包含一个包含单个依赖项的 pom 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>maven-test</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>org.apache.cxf.xjc-utils</groupId>
      <artifactId>cxf-xjc-runtime</artifactId>
      <version>3.3.0</version>
    </dependency>
  </dependencies>

</project>
Run Code Online (Sandbox Code Playgroud)

运行时mvn dependency:tree根据 Java 版本给出不同的结果。

使用 Java 8:

[INFO] Scanning for projects...
[INFO] 
[INFO] -----------------------< org.example:maven-test >-----------------------
[INFO] Building maven-test 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ maven-test ---
[INFO] org.example:maven-test:jar:1.0-SNAPSHOT
[INFO] \- org.apache.cxf.xjc-utils:cxf-xjc-runtime:jar:3.3.0:compile
[INFO]    \- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
[INFO]       \- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: …
Run Code Online (Sandbox Code Playgroud)

java dependencies maven java-8 java-11

5
推荐指数
1
解决办法
268
查看次数