我试图在Java中第一次使用泛型类型,因为我只希望我的构造函数接受实现“Anealable”接口的类。由于我得到的唯一错误,我的代码出现问题是“类型的非法启动”,试图使其工作并没有走得太远
这是我班级的代码
package simulated_anealing;
public class Crystal extends Thread {
Object a;
public Crystal(<? implements Anealable> a)
{
this.a = a;
}
}
答案 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
}
}
很难确定你的意图是什么,所以我无法评论哪种适合你的需求。