Java 具有继承性的泛型
类Java 具有继承性的泛型,java,generics,Java,Generics,类TrainingData具有属性intent,该属性可以是类intent的任何子类型。我试图使用Java泛型来强制执行泛型类型T只能是Intent的子类。我该怎么做 public class TrainingData<T> extends Data { private T intent; private String id; public TrainingData (UserCommand userCommand, T intent) {
TrainingData
具有属性intent
,该属性可以是类intent
的任何子类型。我试图使用Java泛型来强制执行泛型类型T
只能是Intent
的子类。我该怎么做
public class TrainingData<T> extends Data {
private T intent;
private String id;
public TrainingData (UserCommand userCommand, T intent) {
super(userCommand);
this.intent = intent;
}
public Klass getKlass() {
return intent.getKlass(); // <-- THIS WORKS ONLY IF T extends from Intent
}
public Intent getIntent() {
return intent;
}
public void setIntent(Intent intent) {
this.intent = intent;
}
@Override
public String toString() {
return "TrainingData [intent=" + intent + ", id: " + id + "]";
}
}
公共类培训数据扩展数据{
私人目的;
私有字符串id;
公共培训数据(UserCommand UserCommand,T intent){
超级(用户命令);
本意=本意;
}
公共Klass getKlass(){
返回intent.getKlass();//
class TrainingData具有属性intent,该属性可以是class intent的任何子类型
尝试使用T extends Intent
,这意味着可以接受任何扩展Intent的类
public class TrainingData<T extends Intent> extends Data {...}
公共类TrainingData扩展数据{…}
阅读更多
对getter和setter方法也进行更改
class TrainingData<T extends Intent> extends Data {
private T intent;
public T getIntent() {
return intent;
}
public void setIntent(T intent) {
this.intent = intent;
}
...
}
class TrainingData扩展数据{
私人目的;
公共T getIntent(){
返回意图;
}
公共无效设置意图(T意图){
本意=本意;
}
...
}
class TrainingData具有属性intent,该属性可以是class intent的任何子类型
尝试使用T extends Intent
,这意味着可以接受任何扩展Intent的类
public class TrainingData<T extends Intent> extends Data {...}
公共类TrainingData扩展数据{…}
阅读更多
对getter和setter方法也进行更改
class TrainingData<T extends Intent> extends Data {
private T intent;
public T getIntent() {
return intent;
}
public void setIntent(T intent) {
this.intent = intent;
}
...
}
class TrainingData扩展数据{
私人目的;
公共T getIntent(){
返回意图;
}
公共无效设置意图(T意图){
本意=本意;
}
...
}
我想是这样的:
public class TrainingData<T extends Intent>
公共类培训数据
有关更多信息,请参见。我认为是这样的:
public class TrainingData<T extends Intent>
公共类培训数据
有关更多信息,请参阅。的可能副本