报错 加@SuppressWarnings(&quot什么意思;unchecked&quot什么意思;)

一、前言                                  
& 编码时我们总会发现如下变量未被使用的警告提示:
& 上述代码编译通过且可以运行,但每行前面的&感叹号&就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加&@SuppressWarnings("unused")&去除这些&感叹号&。
二、&@SuppressWarings注解&                           
& 作用:用于抑制编译器产生警告信息。
& 示例1&&抑制单类型的警告:
@SuppressWarnings("unchecked")
public void addItems(String item){
@SuppressWarnings("rawtypes")
List items = new ArrayList();
items.add(item);
& 示例2&&抑制多类型的警告:
@SuppressWarnings(value={"unchecked", "rawtypes"})
public void addItems(String item){
List items = new ArrayList();
items.add(item);
& 示例3&&抑制所有类型的警告:
@SuppressWarnings("all")
public void addItems(String item){
List items = new ArrayList();
items.add(item);
三、注解目标                                
&通过&@SuppressWarnings&的源码可知,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。
&而家建议注解应声明在最接近警告发生的位置。
四、抑制警告的关键字                                
to suppress all warnings
to suppress warnings relative to boxing/unboxing operations
to suppress warnings relative to cast operations
to suppress warnings relative to deprecated annotation
deprecation
to suppress warnings relative to deprecation
fallthrough
&to suppress warnings relative to missing breaks in switch statements
to suppress warnings relative to finally block that don&t return
to suppress warnings relative to locals that hide variable
incomplete-switch
&to suppress warnings relative to missing entries in a switch statement (enum case)
&to suppress warnings relative to non-nls string literals
to suppress warnings relative to null analysis
to suppress warnings relative to un-specific types when using generics on class params
restriction
to suppress warnings relative to usage of discouraged or forbidden references
to suppress warnings relative to missing serialVersionUID field for a serializable class
static-access
o suppress warnings relative to incorrect static access
synthetic-access&
&to suppress warnings relative to unoptimized access from inner classes
&to suppress warnings relative to unchecked operations
unqualified-field-access
to suppress warnings relative to field access unqualified
to suppress warnings relative to unused code
五、Java Lint选项                            
& 1. lint的含义
  用于在编译程序的过程中,进行更细节的额外检查。
& 2.&&javac&的标准选项和非标准选项
& & &标准选项:是指当前版本和未来版本中都支持的选项,如&-cp&和&-d&等。
& & &非标准选项:是指当前版本支持,但未来不一定支持的选项。通过&javac -X&查看当前版本支持的非标准选项。
& 3. 查看警告信息
& &默认情况下执行&javac&仅仅显示警告的扼要信息,也不过阻止编译过程。若想查看警告的详细信息,则需要执行&javac -Xlint:keyword&来编译源码了。
六、总结                                  
& 现在再都不怕不知道设置断点没有咯!
& 尊重原创,转载请注明来自:& ^_^肥仔John
七、参考                                  
http://blog.csdn.net/mddy2001/article/details/8291484
/liubiqu/archive//1211503.html
/content/13/1_.shtml
阅读(...) 评论()如何避免jsp里的泛型警告
- 专业IT学术交流论坛
如何避免jsp里的泛型警告
1.用JDK1.5以前的版本 2.或着用@SuppressWarnings(&unchecked&) (注:在jsp中要使用&%! @SuppressWarnings(&unchecked&) %& )3.如果是在Eclipse下开发的话,还可以更改Eclipse的编译属性,在 windows-设定-java-compile-错误和警告 里面有不检查泛型 这个选项。改成无视就行了
不区分大小写匿名
等待您来回答
该问题来自:IT星球是安哥网络旗下的专业IT学术交流论坛,欢迎各位前来发帖学习编程领域专家@SuppressWarnings是什么意思?_百度知道
@SuppressWarnings是什么意思?
J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。 @SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷 — 您看到的每一个警告都将值得注意。
其他类似问题
按默认排序
其他2条回答
取消警告表示,在编译.java文件的时候,不在出现一些警告 ,如变量没有用到,会有提示警告,用@SuppressWarnings(&unused&)之后 ,警告消失。
取消警告提醒
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁注:文章转自:
解释一:&&&
&&&&&&&屏蔽某些编译时的警告信息&
&&&& &&&在强制类型转换的时候编译器会给出警告&
&&&&&&&加上
&&&&&&&程序代码
&&&&&& @SuppressWarnings(&unchecked&)
&&&&&&&就不会警告了
当你的编码可能存在警告时,比如安全警告,可以用它来消除
api中是这样描述的
指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。注意,在给定元素中取消显示的警告集是所有包含元素中取消显示的警告的超集。例如,如果注释一个类来取消显示某个警告,同时注释一个方法来取消显示另一个警告,那么将在此方法中同时取消显示这两个警告。
根据风格不同,程序员应该始终在最里层的嵌套元素上使用此注释,在那里使用才有效。如果要在特定的方法中取消显示某个警告,则应该注释该方法而不是注释它的类。
@SuppressWarnings
J2SE&提供的最后一个批注是&@SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。
一点背景:J2SE 5.0&为&Java&语言增加了几个新的特性,并且和它们一起增加了许多新的警告并承诺在将来增加更多的警告。您可以为&javac&&增加&-Xlint&参数来控制是否报告这些警告(如上面的&@Deprecated&部分所示)。
默认情况下,Sun&编译器以简单的两行的形式输出警告。通过添加&-Xlint:keyword&标记(例如&-Xlint:finally),您可以获得关键字类型错误的完整说明。通过在关键字前面添加一个破折号,写为&-Xlint:-keyword,您可以取消警告。(-Xlint&支持的关键字的完整列表可以在
上找到。)下面是一个清单:
deprecation
使用了不赞成使用的类或方法时的警告
执行了未检查的转换时的警告,例如当使用集合时没有用泛型&(Generics)&来指定集合保存的类型。
fallthrough
当&Switch&程序块直接通往下一种情况而没有&Break&时的警告。
在类路径、源文件路径等中有不存在的路径时的警告。
当在可序列化的类上缺少&serialVersionUID&定义时的警告。
任何&finally&子句不能正常完成时的警告。
关于以上所有情况的警告。
@SuppressWarnings&批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个&@SuppressWarnings&批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷&—&您看到的每一个警告都将值得注意。
下面是使用&@SuppressWarnings&来取消&deprecation&警告的一个例子:
public class DeprecatedExample2 { @Deprecated public static void foo() { } } public class DeprecatedUser2 { @SuppressWarnings(value={&deprecation&}) public static void main(String[] args) { DeprecatedExample2.foo(); } }
@SuppressWarnings&批注接收一个&&value&&变量,该变量是一个字符串数组,它指示将取消的警告。合法字符串的集合随编译器而变化,但在&JDK&上,可以传递给&-Xlint&的是相同的关键字集合(非常方便)。并且要求编译器忽略任何它们不能识别的关键字,这在您使用一些不同的编译器时非常方便。
因为&@SuppressWarnings&批注仅接收一个参数,并为该参数使用了特殊的名称&&value&,所以您可以选择省略&value=,作为一种方便的缩写:
public class DeprecatedUser2 { @SuppressWarnings({&deprecation&}) public static void main(String[] args) { DeprecatedExample2.foo(); } }
您可以将单个数组参数中的任意数量的字符串值传递给批注,并在任何级别上放置批注。例如,以下示例代码指示将取消整个类的deprecation&警告,而仅在&main()&方法代码内取消&unchecked&和&fallthrough&警告:
import java.util.*; @SuppressWarnings({&deprecation&}) public class NonGenerics { @SuppressWarnings({&unchecked&,&fallthrough&}) public static void main(String[] args) { Runtime.runFinalizersOnExit(); List list = new ArrayList();
list.add(&foo&); } public static void foo() { List list = new ArrayList(); list.add(&foo&); } }
@SuppressWarnings&是否比前两个批注更有用?绝对是这样。不过,在&JDK 1.5.0&版本中还没有完全支持该批注,如果您用&1.5.0&来尝试它,那么它将类似无操作指令。调用&-Xlint:-deprecation&也没有任何效果。Sun&没有声明什么时候将增加支持,但它暗示这将在即将推出的一个&dot&版本中实现。
如果您试图在&Javadocs&页面中查看这些属性,那么您可能很难找到它们。它们位于核心的&java.lang&包中,但有点隐蔽,它们出现在Javadoc&类的最底端,列在&Exceptions&和&Errors&后面。
注意到了附加在&SuppressWarnings&批注后面的陌生的批注&@Target&和&@Retention&了吗?这些称为元数据批注,它们描述了该批注在哪里适用。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:46310次
积分:1204
积分:1204
排名:第14966名
原创:65篇
转载:89篇
(3)(15)(3)(16)(7)(3)(1)(8)(11)(7)(1)(1)(2)(2)(6)(1)(5)(3)(2)(17)(5)(4)(1)(5)(14)(7)(4)请大家讨论一下hibernate这样的写法的优点和不足 - 张严聪 - ITeye技术网站
博客分类:
import java.io.S
import java.sql.SQLE
import java.util.L
import org.hibernate.HibernateE
import org.hibernate.Q
import org.hibernate.S
import org.springframework.orm.hibernate3.HibernateC
import org.springframework.orm.hibernate3.support.HibernateDaoS
* @描述: 公共DAO层实现
@SuppressWarnings(&unchecked&)
public class CommonDaoImpl extends HibernateDaoSupport implements ICommonDao {
public Serializable add(Object object) throws Exception{
& return (Serializable) super.getHibernateTemplate().save(object);
public void del(Object object)& throws Exception{
& super.getHibernateTemplate().delete(object);
public void update(Object object) throws Exception{
& super.getHibernateTemplate().update(object);
public Object get(Class clazz, Serializable id) throws Exception{
& return super.getHibernateTemplate().get(clazz, id);
& }catch (Exception e) {
&& e.printStackTrace();
public List list(final String hql, final int pageNo, final int pageSize) throws Exception{
& return super.getHibernateTemplate().executeFind(new HibernateCallback() {
&& public Object doInHibernate(Session session)
&&&& throws HibernateException, SQLException {
&&& Query query = session.createQuery(hql);
&&& query.setFirstResult((pageNo - 1) * pageSize);
&&& query.setMaxResults(pageSize);
&&& return query.list();
public int getRowCount(final String hql) throws Exception{
& Long i = (Long) super.getHibernateTemplate().execute(new HibernateCallback() {
&& public Object doInHibernate(Session session)
&&&& throws HibernateException, SQLException {
&&&& Query query = session.createQuery(hql);
&&& return query.uniqueResult();
& return i.intValue();
public List list(String hql) throws Exception{
& return super.getHibernateTemplate().find(hql);
public void execute(final String hql) throws Exception{
& super.getHibernateTemplate().execute(new HibernateCallback() {
&& public Object doInHibernate(Session session)
&&&& throws HibernateException, SQLException {
&&& Query query = session.createQuery(hql);
&&& return query.executeUpdate();
public Object execHql(final String hql) throws Exception{
& return (Object)super.getHibernateTemplate().execute(new HibernateCallback() {
&& public Object doInHibernate(Session session)
&&&& throws HibernateException, SQLException {
&&& Query query = session.createQuery(hql);
&&& return query.uniqueResult();
public List sqllist(final String sql, final int pageNo, final int pageSize) throws Exception{
& return super.getHibernateTemplate().executeFind(new HibernateCallback() {
&& public Object doInHibernate(Session session)
&&&& throws HibernateException, SQLException {
&&& Query query = session.createSQLQuery(sql);
&&& query.setFirstResult((pageNo - 1) * pageSize);
&&& query.setMaxResults(pageSize);
&&& return query.list();
public List sqllist(final String sql) throws Exception{
& return super.getHibernateTemplate().executeFind(new HibernateCallback() {
&& public Object doInHibernate(Session session)
&&&& throws HibernateException, SQLException {
&&& Query query = session.createSQLQuery(sql);
&&& return query.list();
浏览: 1948 次
来自: 北京
求高手分析该代码的优缺点,hibernate模板

我要回帖

更多关于 quot什么意思 的文章

 

随机推荐