相关疑难解决方法(0)

尝试ConcurrentHashMap.get()时出现NullPointerException

我有以下代码:

public class MyEvent implements org.apache.camel.Processor
{
    static private final Map<Long, String> obj = new ConcurrentHashMap<Long, String>();

    @PostConstruct
    public void postConstruct() 
    {
        for (Object object : cacheList) 
        {
            obj.put(object.getId(), object.getName());
        }
    }

    @Override
    public void process(Exchange exchange) throws Exception 
    {
        synchronized (obj) 
        {
            String value = obj.get(number);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有时在开始时,我有一个NullPointerException在这一行:

String value = obj.get(number);
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么我会收到此错误,如何解决?

Java版本1.6.0_32

java spring

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

JavaFX Listview观察地图

我有一个HashMap。我想在ListView中显示键。

麻烦的是,ListView.setItems()想要一个ObservableList,而我所拥有的只是一个keySet()。

如何获得ListView来观察Map中的键,而又不做一些笨拙的事情,例如维护两个匹配的数据结构?

java listview dictionary javafx observers

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

Java HashMap初始化?

我已经知道如何HashMap使用以下两种方法之一来初始化Java

// way 1: apply generic type saftey
HashMap<String, Integer> hashMap1 = new HashMap<String, Integer>();

// way 2: general without apply generic type saftey
HashMap<String, Integer> hashMap2 = new HashMap();
Run Code Online (Sandbox Code Playgroud)

我的问题
什么是最佳做法

根据Eclipse Marker

类型安全:HashMap类型的表达式需要未经检查的转换以符合HashMap

在此输入图像描述 所以建议使用

new HashMap<String, Integer>(); 
Run Code Online (Sandbox Code Playgroud)

但根据Sonar Linter的说法

使用菱形运算符("<>")替换此构造函数调用中的类型规范.

在此输入图像描述 所以建议使用

new HashMap();
Run Code Online (Sandbox Code Playgroud)

哪一个是最好的?为什么?

java collections declaration hashmap sonarlint

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

什么是Swift字典的Android Java等价物?

在swift中,我可以像这样声明一个字典(键值对)

var toppings = [
        "Onions":"Red",
        "Peppers":"Green",
    ]
Run Code Online (Sandbox Code Playgroud)

Java中的等价物(声明键值对)是什么?

我试过修改一个数组,即改变......

public String[] couplets = {
        "Onions",
        "Peppers",
};
Run Code Online (Sandbox Code Playgroud)

...至...

 public String[] toppings = {
        "Onions":"Red",
        "Peppers":"Green",
};
Run Code Online (Sandbox Code Playgroud)

......但它不起作用.

我很欣赏他们是不同的语言,所以我很可能通过尝试做类似的直接过度简化.

基本上我想在Java中创建一个键值对的静态列表.

我用Google搜索了一些建议,但所有的答案看起来都过于复杂,而我在swift中的表现却相当复杂,所以我想知道是否有一种直截了当的方式 - 也许没有......

任何建议都非常感谢

谢谢

java android dictionary swift

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

在switch语句中选择case的常量映射?

有没有办法Map在switch语句中定义一个常量?我在这里,这里和其他地方使用静态地图的所有试验都没有成功.为什么地图不是常数?

对于线路case (kws.get(KEYWORD_NAME)):我总是得到constant string expression required错误.

public class Demo {

  public static final String KEYWORD_NAME = "Name";
  public static final String KEYWORD_TYPE = "Type";

  private static final Map<String, String> kws = Collections.unmodifiableMap(
  new HashMap<String, String>() {{
    put(KEYWORD_NAME, KEYWORD_NAME.toLowerCase());
    put(KEYWORD_TYPE, KEYWORD_TYPE.toLowerCase());
  }});

  public static void parse(String kw){
    switch(kw){
      case (kws.get(KEYWORD_NAME)):
        System.out.println("Test");
        break;
    default:
      System.out.println("Unknown");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

java dictionary switch-statement

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