【问题标题】:Eclipse IDE -- Type safety: unchecked invocationEclipse IDE——类型安全:未经检查的调用
【发布时间】:2015-08-30 07:44:59
【问题描述】:

我不明白为什么 Eclipse IDE 在这个方法上给我一个“类型安全:未经检查的调用”警告。

    public static Object decode(String _json, Class _class) {
        Gson gson = new Gson();
        return gson.fromJson(_json, _class);
    }

为了说明问题,我对代码进行了大量编辑。代码工作正常;它只是拥有一头牛的 Eclipse。 “return”行是带有警告的行。

按原样,该方法只是Gson's object instantiation method 的包装器。 我做错了吗?我需要以不同的方式处理事情吗?

是不是因为返回的是Type Object?它必须是通用的,才能返回所有类型的类,对吧?

【问题讨论】:

    标签: java eclipse gson


    【解决方案1】:

    问题在于 Class 参数_class

    Class 需要有一个泛型参数:Class<? extends Type> 表示任何扩展“Type”的 Class(将 Type 替换为您所需的公共超类)

    您可以指定Class<?>,它与Class<? extends Object> 相同,表示任何类 - 警告应该消失

    【讨论】:

      【解决方案2】:

      警告:JdbcTemplate 类型的通用方法 execute(CallableStatementCreator, CallableStatementCallback) 的未检查调用 execute(new CallableStatementCreator(){}, new CallableStatementCallback(){})。

      这是如何抑制警告的答案:

      jdbcTemplateObject.execute(new CallableStatementCreator() {                 
                      public CallableStatement createCallableStatement(Connection con) throws SQLException {                  
                          cs= con.prepareCall("{?=call Package(?)}");                             
                          cs.registerOutParameter(1, Types.INTEGER); 
                          cs.setString(2,argument);
                          cs.executeUpdate();             
                          int return_Value = cs.getInt(1);                    
                          logger.info("Package Return Value : "+return_Value); 
                          return cs;
                      }
                  }, new CallableStatementCallback<Object>() {                
                      public Object doInCallableStatement(CallableStatement cs) throws SQLException {
                          cs.execute();
                          return null;
                      }
      
                  });
      

      CallableStatementCallback 旁边添加&lt;Object&gt;消除警告

      【讨论】:

        猜你喜欢
        • 2010-09-20
        • 1970-01-01
        • 1970-01-01
        • 2015-06-20
        • 2014-01-12
        • 1970-01-01
        • 1970-01-01
        • 2022-11-28
        相关资源
        最近更新 更多