我有这个问题,我不确定它到底在问什么,我已经发布了整个问题,但是我不希望得到答案,请有人指出我正确的方向!

问题还说不要使用泛型。

提前致谢

题:

在以下程序中,缺少CountHighs方法中的代码。
编写此方法的代码,该方法将向量m和
返回向量中作为HighRights实例的对象的数量

该方法还应检查从向量中提取的元素确实是实例
  HighRights或LowRights类中的一个。如果元素不是此类的实例,
  然后该方法应返回-1。

如果向量为null,则处理NullPointerException。使用以下
  捕获发生的异常时的代码:

System.out.println("Error");


暗示:

1使用m.size()获得向量m中的元素数

2使用关键字instanceof检查对象是否为类的实例)

例如,
如果向量m仅包含两个HighRights对象和一个LowRights对象,则CountHighs(m)将返回2
如果向量m仅包含两个HighRights对象和一个String对象,则CountHighs(m)将返回-1
如果向量m仅包含五个LowRights对象,而没有HighRights对象,则CountHighs(m)将返回0

import java.util.*;
@SuppressWarnings( "unchecked" ) public class Ex6 {

    public static void main(String[] a)
    {
       int i=Integer.parseInt(a[0]);
       if (i==0) {
           Vector ma = new Vector();
          ma.add(new HighRights("Jimmy"));
          ma.add(new HighRights("Jim"));
          ma.add(new HighRights("Mark"));
          ma.add(new HighRights("John"));
          ma.add(new LowRights("Lisa") );
           System.out.println(new Ex6().CountHighs(ma));
        }
         if (i==1) {
           Vector ma = new Vector();
          ma.add(new HighRights("Jimmy"));
          ma.add("I'm not Jimmy" );
           System.out.println(new Ex6().CountHighs(ma));
        }
        if (i==2)  System.out.println(new Ex6().CountHighs(null));
    }
    public static int CountHighs (Vector m) {

    }
}

最佳答案

问题是要您计算向量中特定类型的值的数量。您需要实现CountHighs才能具有以下行为


如果提供的列表为NULL,则执行System.out.println(“ Error”);
如果列表具有除HighRights或LowRights之外的任何其他值,则返回-1
否则返回列表中的HighRights数量


在您的功能中,按此顺序执行。如果为null,则执行打印输出,然后返回完成。

接下来遍历向量。建议您使用m.size()定义何时中断for或while循环。

保持局部int变量,并在每次迭代的值均为'HighRights'类型时将其递增1(您可以使用instanceof关键字确定此值)

如果在迭代过程中遇到无效值,请立即返回-1。

那应该为您指明正确的方向,而无需编写代码。

10-06 13:41