繁体   English   中英

java中的数组接口泛型

[英]Array interface generic in java

public class MyArrayImp<T extends Comparable<T>> implements MyArray<T> {
    private MyArrayImp[] m;
    private int i;
    private T element;

    @Override
    public T get(int i) {
        return (T) m[i].element;
    }

    @Override
    public void set(int i, T e) {
        m[i].element = e;   
    }

    etc...

我想用 MyArrayImp 类实现一个具有以下接口的通用数组类

public interface MyArray<T extends Comparable<T>> {
    T get(int i);
    void set(int i, T e);
    int min();
    int max();
    int nbBetween(T e1, T e2);
}

最后创建一个 MyArrayFactory 类,它创建并返回一个大小为 n 的数组 public static > MyArray getMyArray(int n) { return new ...; }

我不想要该方法,我只想知道如何使用接口实现类并从另一个类创建对象。

我会这样定义:

public class MyArrayImp<T extends Comparable<T>> implements MyArray<T> {
    private T[] m;

    @SuppressWarnings("unchecked")
    public MyArrayImp(Class<T> clazz, int size) {
        this.m = (T[]) Array.newInstance(clazz, size);
    }

    @Override
    public T get(int i) {
        return m[i];
    }

    @Override
    public void set(int i, T e) {
        m[i] = e;   
    }
...etc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM