2013-03-26 2 views
0

Map<Integer,...>을 사용하는 일부 코드를 디버깅하고 있지만 다양한 Integer과 관련된 값을 찾는 데 어려움이 있습니다! (.\src에 저장)정수가있는 JDB 맵 조회

자바 코드 : 여기에 최소한의 작업 예제

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 (파워 쉘) :

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

제 2 터미널 (파워 쉘) :

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,?>에서 값을 찾으려면 어떻게해야합니까?

+2

이이 http://stackoverflow.com/questions/14130892/why-jdb-wont-recognize-the-integer-class?rq=1 관련이있다 –

+0

+1 이것은 정확한 복제본입니다. –

+0

@AaronDigulla 가치가있는 부분에 대해서는 기꺼이 해결하려고합니다. 그는 'Integer' 클래스를 찾고 싶어합니다. 나는 그 수업에 관심이 없지만 가능한 한 내지도를 올려다보고 싶다. –

답변

1

를 사용하여 정규화 된 클래스 이름 :

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

자바 언어를 사용하면 java.lang 내의 클래스를 가져온 것처럼 사용할 수 있지만 jdb는 사용할 수 없습니다.

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

.