您的位置:首页 > 数据库 > MySQL

不小心把mysql的root用户删除了

2013-11-19 14:35 302 查看
在使用泛型通配符“?”进行对象声明时,不能通过向上转型设置对象的属性值。在此例中“<?>”并不会响应<String>的转型,“<?>”与<Object>是不同的。


//:DefineError.java
package ch10_generics;

/**
* Class Info
*
* @author 望江门外
*
* @param <T>
*            泛型类型
*/
class Info<T> {
/** 属性 */
private T var;

/** 默认构造器 */
public Info() {
}

/**
* 带有泛型类型参数的构造器
*
* @param var
*            参数
*/
public Info(T var) {
this.var = var;
}

/**
* 设置var
*
* @param var
*            需要设置的属性

*/
public void setVar(T var) {
this.var = var;
}

/**
* 取得var
*
* @return var
*/
public T getVar() {
return this.var;
}
}

/**
* 通过向上转型设置泛型参数值会出现错误
*
* @author 望江门外
*
*/
public class DefineError {
public static void main(String[] args) {
Info<?> info = new Info<String>(); // 警告:info没有被读取

// !info.setVar("Wang Yanmei");

// 注释掉的部分在没有注释掉之前,如果运行会有下面出错信息,这说明不能通过向上转型
// 为对象设置值,而此时只能为将info对象的var属性设置为"null"
/*
* Exception in thread "main" java.lang.Error: Unresolved compilation
* problem: The method setVar(capture#1-of ?) in the type
* Info<capture#1-of ?> is not applicable for the arguments (String) at
* ch10_generics.DefineError.main(DefineError.java:42)
*/
info.setVar(null);
}
}///:)


本文出自 “望江门外” 博客,请务必保留此出处http://wjmw2010.blog.51cto.com/4107210/740629
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: