我一直在尝试用Java模拟Python列表; 即,维护一个动态数组,可以同时存储不同类型的对象.Java中是否有任何方法可以使用通用对象引用,即可以指向任何类型的对象,用户定义或内置的对象引用?
我认为你误解了Python中的列表.虽然它们可以容纳不同类型的对象,但它们并非旨在:Python列表被设计为同质数据结构.相比之下,元组意味着异构(并且那些是不可变的).
您可以通过执行以下操作来模仿Java中的元组:
class Tuple1<A> {
private final A a;
public Tuple1(A a) {
this.a = a;
}
}
class Tuple2<A, B> {
private final A a;
private final B b;
public Tuple2(A a, B b) {
this.a = a;
this.b = b;
}
}
class Tuple3<A, B, C> {
private final A a;
private final B b;
private final C c;
public Tuple3(A a, B b, C c) {
this.a = a;
this.b = b;
this.c = c;
}
}
...
Run Code Online (Sandbox Code Playgroud)
您可以考虑使用Tuple基类或接口来使用index()方法和重载的静态工厂方法.
可以使用类型的变量Object来存储任何和所有实例.但是,这很少是你想要做的.你应该把它缩小到你想要存储和使用的那个,而不是Object.