设为首页 加入收藏

TOP

钻石运算符的一个 BUG
2014-11-23 23:55:11 来源: 作者: 【 】 浏览:8
Tags:钻石 运算 符的 一个 BUG

先看出错的代码:

public class Holder {

private T value;

public Holder() {

}

public Holder(T value) {

this.value = value;

}

public void setValue(T value) {

this.value = value;

}

// 此处省略若干行。

}

Holder holder = new Holder<>("xxx");

看起来还好,但编译的时候却报错:

Uncompilable source code - incompatible types

required: javax.xml.ws.Holder

found: javax.xml.ws.Holder

老老实实把类型写出来就没问题:

Holder holder = new Holder("xxx");

如果非要用钻石运算符的话,可以采取下列两种方式之一:

// 使用默认构造器,再调用setValue 方法。

Holder holder = new Holder<>();

holder.setValue("xxx");

// 使用泛型通配符,但之后就不能调用setValue 了,否则编译出错。

Holder< extends Object> holder = new Holder<>("xxx");

摘自 神奇好望角

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇二分查找的一个版本 下一篇C语言学习笔记(七)--循环程序设..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: