我有像
这样的实现private List<E> myList = new ArrayList<E>();//just a local variable of MyClass
public MyClass<E> methodFromInterface(Interface<E> Obj) {
MyClass<E> ooo = (MyClass<E>) obj;
}
我面临的主要问题是我在MyClass中有一些变量,虽然我是对MyClass进行类型转换的接口,但我无法访问这些变量。 我在哪里错了?
答案 0 :(得分:1)
假设您的界面如下所示:
public interface MyInterface<E> {
MyClass<E> methodFromInterface(Interface<E> Obj);
}
然后你可以编写这样的代码来访问myList
变量:
public MyClass<E> implements MyInterface<E> {
private List<E> myList = new ArrayList<E>();
public MyClass<E> methodFromInterface(MyInterface<E> obj) {
MyClass<E> ooo = (MyClass<E>) obj;
// now you can access 2 different instances of `myList`
List<E> firstInstance = this.myList;
List<E> secondInstance = ooo.myList;
// note that these will not be the same instance of a List!
}
}
免责声明:我必须补充说,这对你的课来说似乎是一个非常糟糕的结构。我有一个interface
定义了一个方法,它接受一个自身的实例并返回一个子类型,这似乎很奇怪。我想你可能需要更多地了解继承,接口,超类型等。