小编Zhe*_*dar的帖子

我应该使用charAt还是toCharArray?

以下哪个选项被认为是循环使用的好方法String
我们应该使用charAt或转换为char数组吗?我正在寻找所有方面的答案,包括性能和使用的空间

public static void doChose (String str) {

        for (int i = 0; i < str.length(); i++) {
            System.out.println(str.charAt(i));
        }

        // vs

       char[] chars = str.toCharArray();
       for (char c : chars) {
           System.out.println(c);
       }

    }
Run Code Online (Sandbox Code Playgroud)

java string

14
推荐指数
1
解决办法
9009
查看次数

重做快捷方式消失了 - OSX上的eclipse

很长一段时间,我的Eclipse Juno不会通过快捷方式让我的重做我的撤销,尽管绑定设置正确并且我没有改变任何东西.你可以看到这里出现了问题,因为快捷方式甚至不再列出了.我丢失了我的快捷方式:(
这就是它在设置中的设置方式: 绑定已设置

有没有人遇到同样的问题?我在OSX 10.8.3上的32和64位Eclipse Juno Service Release 2,Build 20130225-0426上遇到了问题,但我认为它已经存在于10.8.2.

eclipse macos keyboard-shortcuts eclipse-juno

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

JSF和类型安全

当我挣扎了好几个小时后,我终于找到了那些令人烦恼ClassCastException的东西来自哪里,我认为这些是由Hibernate制作的,而且它是enum映射的.

但是,他们都来自我的JSF视图,在这里我通过List

    <h:selectManyCheckbox value="#{createUserManager.user.roles}"  ... >
        <f:selectItems value="#{createUserManager.roles}"/>
    </h:selectManyCheckbox>
Run Code Online (Sandbox Code Playgroud)

回到我的支持bean.
我的数据只包含枚举的值: public Role[] getRoles() { return Role.values(); }.
当我rolesUser-class中测试了setter 并得到了这个时,我感到非常震惊:

public void setRoles(List<Role> paramRoles) {

    System.out.println(paramRoles.get(0) instanceof Role); //output: false

    for(Role role : paramRoles){ ...} //crashes with ClassCastException
}
Run Code Online (Sandbox Code Playgroud)

更改List<Role> paramRolesList<String> paramRoles完美.
这怎么可能?这些泛型不应该是类型安全的还是与JSF有关的类型擦除会导致整个类型的安全问题?
也不应的返回值h:selectManyCheckboxList<Role>,像我通过传递f:selectItems

java generics jsf classcastexception type-safety

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

Wildfly 8.2:缺少component.CREATE

我刚刚更新了我的Wildfly-8.1.0.Final安装8.2.0.Final并部署了我的WAR应用程序并遇到了部署错误.它说

ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) 
      JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "MYAPPNAME.war")]) -
      failure description: {"JBAS014771: Services with missing/unavailable dependencies" => [
Run Code Online (Sandbox Code Playgroud)

然后EJB以下列方式列出我的所有内容:

"jboss.deployment.unit.\"MYAPPNAME.war\".component.EJBNAME.CREATE is missing [jboss.security.security-domain.java:/jaas/MYSECURITYDOMAIN]"
Run Code Online (Sandbox Code Playgroud)

当我回到8.1.0.Final一切按预期工作的时候.

EJB的所有s都被声明,@Stateless并且存在空beans.xml,CDI因为没有任何其他特殊配置EJBCDIcompontents.xml以下内容:

<components>
    <component name="org.jboss.seam.core.init">
        <!-- JNDI name pattern for JBoss EJB 3.0 -->
        <property name="jndiPattern">#{ejbName}/local</property>
    </component>
</components>
Run Code Online (Sandbox Code Playgroud)

有没有人遇到这个案子,可以给我一个如何解决它的提示?

ejb cdi jboss-weld wildfly wildfly-8

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

Java 集合在同一日期使用日期排序与 AM/PM

我有如下所列的日期:

17/03/2015 09:38:39 AM
17/03/2015 10:52:26 AM
10/03/2015 08:30:56 AM
02/03/2015 09:18:10 AM
02/03/2015 09:37:23 AM
02/03/2015 11:25:01 AM
02/03/2015 11:29:00 AM
02/03/2015 11:42:38 AM
02/03/2015 12:04:39 PM
02/03/2015 12:09:05 PM
02/03/2015 01:17:09 PM
02/03/2015 01:29:08 PM
Run Code Online (Sandbox Code Playgroud)

我希望他们按照以下结果对它们进行排序:(同一日期应按时间戳排序)

17/03/2015 10:52:26 AM
17/03/2015 09:38:39 AM
10/03/2015 08:30:56 AM
02/03/2015 01:29:08 PM
02/03/2015 01:17:09 PM
02/03/2015 12:09:05 PM
02/03/2015 12:04:39 PM
02/03/2015 11:42:38 AM
02/03/2015 11:29:00 AM
02/03/2015 11:25:01 AM
02/03/2015 09:37:23 AM
02/03/2015 09:18:10 AM
Run Code Online (Sandbox Code Playgroud)

我尝试使用代码,但没有获得所需的输出:

Collections.sort(listOfDate, new Comparator<SR>() {
  public …
Run Code Online (Sandbox Code Playgroud)

java date

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

JDK 17:Switch 语句导致 java.lang.VerifyError:操作数堆栈上的类型错误

刚刚在 Eclipse 2021-09 上尝试了 JDK17,结果失败并显示java.lang.VerifyError,这本身并没有多大帮助。我追踪到一个 switch 语句,该语句获取从一个Map或另一个泛型类型中提取的值。如果我在 switch 语句中使用局部变量,一切都会按预期工作。

测试代码:

import java.util.HashMap;
import java.util.Map;

public class SwitchFail {
  public static void main(String[] args) {
    //doesnt work
    Map<Integer, String> stringMap = new HashMap<>();
    stringMap.put(1, "Test");
    switch(stringMap.get(1)) {
    }

    //works
    String plainString = "Test";
     switch(plainString) {
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这会引发以下错误:

Error: Unable to initialize main class SwitchFail
Caused by: java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    SwitchFail.main([Ljava/lang/String;)V @33: invokevirtual
  Reason:
    Type 'java/lang/Object' (current frame, stack[0]) is …
Run Code Online (Sandbox Code Playgroud)

java switch-statement eclipse-jdt ecj java-17

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