簡體   English   中英

使用整數進行JDB映射查找

[英]JDB Map Lookup With Integer

我正在調試一些使用Map<Integer,...> ,但是我很難找到與各種Integer相關的值! 這是一個最小的工作示例:

java代碼(保存為.\\src ):

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

public class Hello {

    public static void main(String[] args) throws java.io.IOException {
        Map<Integer,String> mymap = new HashMap<Integer,String>(2);
        mymap.put(new Integer(5), "five");
        mymap.put(6, "six");
    }
}

1號航站樓(powershell):

javac -g $(ls . *.java -r -name)
java -cp src -Xdebug '-Xrunjdwp:transport=dt_shmem,server=y,suspend=y,address=hey' Hello

2號航站樓(powershell):

jdb -attach hey

...

VM Started: No frames on the current call stack

main[1] stop at Hello:10
Deferring breakpoint Hello:10.
It will be set after the class is loaded.
main[1] cont
> Set deferred breakpoint Hello:10

Breakpoint hit: "thread=main", Hello.main(), line=10 bci=40

main[1] dump mymap.get(5)
com.sun.jdi.InvalidTypeException: Can't assign primitive value to object
 mymap.get(5) = null
main[1] dump mymap.get(new Integer(5))
com.sun.tools.example.debug.expr.ParseException: No class named: Integer
 mymap.get(new Integer(5)) = null
main[1]

我應該如何從Map<Integer,?>查找值?

使用完全限定的類名:

dump mymap.get(new java.lang.Integer(5))

雖然java語言允許java.lang類被用作導入,但jdb卻沒有。

dump mymap.get(new java.lang.Integer(5))

應該管用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM