我创建了一个函数,其中我在方法级别使用了@SuppressWarning(“未选中”),它按预期工作,但我需要将此@SuppressWarning(“未选中”)移动到只有警告进来的那些代码行,而不是在方法级别:
public static <T> T marshal(Class<T> cls , String xml){
T res;
if(cls == xml.getClass()){
res=(T) xml;--->Need to use @SuppressWarning("unchecked") before this line
}else{
JAXBContext ct= JAXBContext.newInstance(cls);
Unmarshal marshal=ctx.createUnmarshller();
res=(T)marshal.unmarshal(new StringReader(xml));-->Need to use @SuppressWarning("unchecked") before this line
}
return res;
}
在上面的函数中,我必须在if和else之后使用@SuppressWarning(“unchecked”),因为这些是显示警告的地方。
如果合适,您可以使用泛型方法来处理<code>@SuppressWarning(“unchecked”),定义如下:
@SuppressWarnings("unchecked")
public <C> C cast(Object o) {
return (C) o;
}
然而,当您使用它并希望进行检查时,您需要在赋值时检查可能的<code>ClassCastException</code>(请参见此)。比如:
try {
res = cast(xml);
} catch (ClassCastException cce) {
// a bug, help!
}
Java注释只能放置在某些结构中,这些结构在ElementType
中枚举,在指定注释可以使用的位置时使用(在@Target()
中)。SubpressWarning
具体声明为:
@Target({TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE,MODULE})
@Retention(SOURCE)
public @interface SuppressWarnings
这意味着它可以放置在这些声明上下文之一上。因此,正如@Fluffy在评论中提出的,引入注释可以放置的这种上下文的一种方法是引入一个局部变量:
@SuppressWarnings("unchecked")
final T uncheckedXml = (T) xml;
res = uncheckedXml;
问题内容: 我在项目中配置了一个checkstyle验证规则,该规则禁止使用超过3个输入参数来定义类方法。该规则适用于我的类,但有时我必须扩展第三方类,而第三方类则不遵守此特定规则。 是否有可能指示“ checkstyle”某种方法应以静默方式忽略? 问题答案: 在http://checkstyle.sourceforge.net/config_filters.html#SuppressionCo
问题内容: 我需要一些有关ajax的liferay方面的帮助。现在,我正在从页面调用ajax方法来提交一些数据。 这是我正在使用的示例代码: 在我的课程中,有一种方法被此ajax调用所调用: 所以我的问题是,现在它只是通过任何ajax类的默认方法进行校准。但是如何在ajax调用中调用类的特定方法? 我是ajax的新蜜蜂。所以无论如何请引导我..... 使用以下网址调用ajax时出现以下错误 我的流
我有这样的东西: 现在,有一个需求,添加一个公共API,用于检查输入类型是否有效,只有当validateFlag为true时。 你能在这里建议一些设计吗?最适合搭配什么? 我在想这样的事情:
本文向大家介绍PHP cURL初始化和执行方法入门级代码,包括了PHP cURL初始化和执行方法入门级代码的使用技巧和注意事项,需要的朋友参考一下 这个是采集基础,最好熟悉一下
我们正在使用Flyway在我们的测试环境中使用sql脚本保持最新的许多数据库,并且它工作正常。但是我们特别需要使用csv文件更新数据库。我知道Flyway提供了一些基于Java的迁移来处理更复杂的更新。但问题是,这些 Java 类的名称中都有所需的版本,这将迫使我们在每次使用该类时重新编译该类。如果我们能像对待sql文件一样将csv文件放在迁移目录中,那将更加简单。然后,一些特定的Java代码将处
我不是很清楚怎么说这个,但我正在做一个21点游戏,玩家收到2张牌后,他们得到一个Y/N选项来收到另一张牌。我将播放器的响应(Y/N)通过一个方法,该方法在输入无效输入时保持防弹和重新提示,然后将其返回到主代码,以便它将运行。下面是我的防弹方法的代码: } 我现在遇到的问题是防弹的工作,但是在一个Y/N放进去之后,玩家的卡没有显示出来。这是来自我的主要方法的代码: 当播放机输入无效时,程序要求播放机