Java的。创建类似于List的新类

时间:2013-08-08 12:28:17

标签: java class

Structure 我想创建自己的类,它有3个字段。第一个字段 - 整数,第二个字段采用对象(字符串,列表),第三个字段采用整数。我不明白两件事。

  1. 如何组织变量的存储。我需要编写一个方法,其中Array或List将保存这些值?如何保存对象值?
  2. 第二场。如果输入是字符串或列表,那么需要什么类型?如果我想采取原始类型,那么呢?如何保存对象?

    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;
       };
    
  3. 这不起作用。

       Object nobj = new Object();
    nobj = "ss";
    

2 个答案:

答案 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<>();