小编use*_*337的帖子

实现具有参数的方法的Java类,该参数是接口中指定的子类型

我在掌握仿制药时遇到了一些麻烦.我已经阅读了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.

我是否正确表达了我的仿制药?

java generics

3
推荐指数
1
解决办法
111
查看次数

如何让每个实例继承自己的成员实例?

在下面的代码中,我有两个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)

javascript prototypal-inheritance

2
推荐指数
1
解决办法
49
查看次数