Eclipse IDE - 类型安全:未选中的调用

时间:2015-08-30 07:44:59

标签: java eclipse gson

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

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

我已严格修改代码以说明问题。代码工作正常;它只是有一头牛的Eclipse。 "返回" line是带警告的那一行。

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

是因为返回属于Type对象吗?它是通用的,能够返回所有类型的类,对吧?

2 个答案:

答案 0 :(得分:1)

问题在于Class参数_class

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

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

答案 1 :(得分:0)

  

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

以下是答案如何抑制警告:

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;
                }

            });

<Object>旁边添加CallableStatementCallback消除警告