java泛型应该注意的问题。
2016-07-01 14:45
381 查看
相关代码如下:
package test;
class Point<T,E>{
private T x;
private T y;
private E z;
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
public T getY() {
return y;
}
public void setY(T y) {
this.y = y;
}
public E getZ() {
return z;
}
public void setZ(E z) {
this.z = z;
}
}
/**
* @author : suyuyuan
* @date :2016年6月16日 下午5:29:13
* @version 1.0
*/
public class Test {
public static void main(String[] args) {
Point<String,String> p = new Point<String,String>();
p.setX("xx");
p.setY("yy");
p.setZ("zz");
System.out.println(p.getX() + p.getY() + p.getZ());
}
}
注意:
如果把Point<T,E>换成Point<T,E,A>
则会包如下错误:
Incorrect number of arguments for type Point<T,E,A>; it cannot be parameterized with arguments <String, String>
package test;
class Point<T,E>{
private T x;
private T y;
private E z;
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
public T getY() {
return y;
}
public void setY(T y) {
this.y = y;
}
public E getZ() {
return z;
}
public void setZ(E z) {
this.z = z;
}
}
/**
* @author : suyuyuan
* @date :2016年6月16日 下午5:29:13
* @version 1.0
*/
public class Test {
public static void main(String[] args) {
Point<String,String> p = new Point<String,String>();
p.setX("xx");
p.setY("yy");
p.setZ("zz");
System.out.println(p.getX() + p.getY() + p.getZ());
}
}
注意:
如果把Point<T,E>换成Point<T,E,A>
则会包如下错误:
Incorrect number of arguments for type Point<T,E,A>; it cannot be parameterized with arguments <String, String>
相关文章推荐
- java 23种设计模式详解
- eclipse API 文档生成时出现误: 编码GBK的不可映射字符
- java内存管理与垃圾回收
- Java基础加密之HMAC加密
- java 使用enum(枚举)
- Java反射获取private属性和方法(子类,父类,祖先....)
- DTrace to Troubleshoot Java Native Memory Problems
- Spring <bean> 参数意义
- Spring中配置和读取多个Properties文件
- java-callgraph
- 二、Mybatis-Spring整合配置
- 转: java DES的算法片码
- spring @Transactional注解参数详解
- java.lang.ClassNotFoundException: javax.servlet.Filter
- 深入理解 Spring 事务原理【转】
- Java基础--定时任务Timer
- Java中的自动装箱与拆箱
- Java知识图谱收集整理
- Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson vs. JSONP
- java读取大文件(分割)