我想创建自己的类,它有3个字段。第一个字段 - 整数,第二个字段采用对象(字符串,列表),第三个字段采用整数。我不明白两件事。
第二场。如果输入是字符串或列表,那么需要什么类型?如果我想采取原始类型,那么呢?如何保存对象?
public class Record { private int[] number; private int[] count; private Object[] code; public void add(int newNumber, List<String> newCode, int newCount){ return; }; public void add(List<String> newCode, int newCount,){ return; };
这不起作用。
Object nobj = new Object();
nobj = "ss";
答案 0 :(得分:6)
好。在我看来,你误解了你班级的目的。您编写了一个类来模拟单个Record
,但您已编写Record
来存储许多值。
让我们重新安排你的班级结构
public class Record {
private int number;
private int count;
private Object code;
public Record(int number, int count, Object code)
{
this.number = number;
this.count = count;
this.code = code;
}
然后你可以创建一个类来管理Record
类之间的接口,例如:
public class Storage
{
List<Record> records;
public Storage()
{
this.records = new ArrayList<Record();
}
public void addRecord(int number, int count, Object code)
{
records.add(new Record(number, count, code));
}
}
这样一来,你就不会搞乱许多不同的阵列了,这些阵列很难跟踪,一切都整齐地包裹在你的物体里。
您的第二个属性
的问题现在,您似乎想在此变量中存储任何。这比原始问题复杂一些,但我认为Generics会为您解决问题。我不会为你编写代码,但我能做的就是给你一个演示。
public class GenericExample<T>
{
T object;
public GenericExample(T object)
{
this.object = object;
}
}
好的,我在这里所做的很简单。我已经创建了一个新类GenericExample
,我说过这个类有一个特殊类型T
。此类型在运行时定义,表示您可以定义大量不同的值。例如。
GenericExample<String> example = new GenericExample<String>("This is a string");
GenericExample<Object> example2 = new GenericExample<Object>(new Object());
了解如何定义类型,并在运行时传递它?现在考虑将它应用到你的类结构中。
答案 1 :(得分:1)
如果您确实不需要创建自己的List
,请避免这样做。只需创建自己的数据类型,并将其用作List
的参数:
public class Record {
private int number;
private int count;
private Object code;
// Constructors, setters and getters
};
List<Record> myList = new ArrayList<>();