HashMap:如果key是硬编码字符串,则可以获取值,但如果key是变量则不能获取值

时间:2016-10-26 13:29:09

标签: java collections

我有一个静态HashMap<字符串,整数>与用户' UUID和ID。 它是UserBean的静态变量。保存数据库命中以解决此问题。

由于某些原因,仅在这种情况下,我无法获得相应UUID(密钥)的ID(值) 一切正常,如果不是String变量,我会对其值进行硬编码。

我在其他地方使用了相同的静态HashMap,没有任何问题。唯一的区别是这是一个RESTful服务,但我不认为这是问题的原因。我是一个单人乐队,所以我不得不问这里。花了很多年的时间,这里肯定有一个非常明显的错误,但我仍然没有线索。

@Path ( "/ScanOpenRequests" )

public class ScanOpenRequests 
{
    @POST
    @Produces({"text/xml"})  

    public Response scanOpenRequest ( @FormParam ( "openSessionId" ) String openSessionId ) 
    {
        System.out.println ( "user UUID = >" + openSessionId + "<" );
        System.out.println ( "user ID   = " + UserBean.getOpenSessionIdAndUserIdMap().get ( "61d403dd326c4e2eac223a204ead828d" ) );
        System.out.println ( "user ID   = " + UserBean.getOpenSessionIdAndUserIdMap().get ( openSessionId ) );


        UserBean user = new UserBean();
        user.setId ( UserBean.getOpenSessionIdAndUserIdMap().get ( "61d403dd326c4e2eac223a204ead828d" ) );

        new UserBL().getOpenLessonRequestsUserCanHelpWith ( user );

        return Response.status ( 200 ).entity ( "" ).build ();
    }

打印输出是这样的:

user UUID = >"61d403dd326c4e2eac223a204ead828d"<
user ID   = 749
user ID   = null

有人能发现我做错了吗?

1 个答案:

答案 0 :(得分:3)

openSessionId的值为"61d403dd326c4e2eac223a204ead828d"(包括引号),与硬编码值61d403dd326c4e2eac223a204ead828d不同。