Java泛型的未知问题

时间:2009-10-31 20:51:43

标签: java generics interface

我试图在Java中第一次使用泛型类型,因为我只希望我的构造函数接受实现“Anealable”接口的类。由于我得到的唯一错误,我的代码出现问题是“类型的非法启动”,试图使其工作并没有走得太远

这是我班级的代码

package simulated_anealing;

public class Crystal extends Thread {

    Object a;

    public  Crystal(<? implements Anealable> a)
    {
        this.a = a;
    }

}

2 个答案:

答案 0 :(得分:6)

为什么不直接将构造函数传递给Anealable类型:

package simulated_anealing;

public class Crystal extends Thread {

    Object a;

    public  Crystal(Anealable a)
    {
        this.a = a;
    }

}

答案 1 :(得分:3)

我假设您要参数化该类。如果是,那么:

public class Crystal<T extends Anealable> extends Thread {
  Object a;

  public  Crystal(T a) {
    this.a = a;
  }
}

或者,可以参数化方法(包括构造函数),如下所示:

public class Crystal extends Thread {
  public <T extends Anealable> Crystal(T t) {
    // do stuff with T
  }
}

很难确定你的意图是什么,所以我无法评论哪种适合你的需求。