我在掌握仿制药时遇到了一些麻烦.我已经阅读了Oracle关于泛型的教程,它似乎没有解决我的问题.我也不知道在找到答案时要搜索什么.
假设我有以下代码:
public abstract class Buff<V> {
public V value;
{
public interface Buffable<V> {
public void buff(Buff<V extends Buff> buff);
}
public class DoubleBuff extends Buff<double> {
public double value;
}
public class DoubleBuffable implements Buffable<DoubleBuff> {
public void Buff(DoubleBuff buff) {
//implementation
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够创建继承Buff并具有成员"value"的类,但是指定value的类型(请参阅参考资料DoubleBuff).我还想buff使用输入参数定义实现该方法的类,该输入参数的子类型为Buff.
DoubleBuffable是一些实现的类Buffable,但期望输入DoubleBuff和不输入StringBuff.
我是否正确表达了我的仿制药?
在下面的代码中,我有两个Book Collections.一个系列有"Moby Dick",而另一个系列有"The Firm".然而,当我看第二个系列时,它也有Moby Dick.如何创建不共享相同数据的图书?
function Collection () {
var stuff = [];
this.get = function () {
return stuff;
};
this.add = function (item) {
stuff.push(item);
};
}
function Books () {}
Books.prototype = new Collection ();
var myBooks = new Books();
myBooks.add("Moby Dick");
var yourBooks = new Books();
yourBooks.add("The Firm");
console.log(yourBooks.get()); // ["Moby Dick", "The Firm"]
Run Code Online (Sandbox Code Playgroud)
我结束了这个:
function Collection () {
var stuff = [];
this.get = function(){
return stuff;
};
this.add = function(item){
stuff.push(item);
};
}
function …Run Code Online (Sandbox Code Playgroud)