2017-10-16 11 views
2
package Comparar; 

import java.util.*; 

public class Exercici { 

    public void Exercici(){ 

    } 

    public static <E extends Comparable <E>> int numMinors(E e, Iterator<E> it){ 
     int numMenors = 0; 
     while(it.hasNext()){ 
      int comparacio = e.compareTo(it.next()); 
      if (comparacio == -1){ 
       numMenors += 1; 
      } 
     } 
     return numMenors; 
    } 

    public static <E extends Comparable <E>> int numMinors(Comparator<E> comp, E e, Iterator<E> it){ 
     int numMenors =0; 
     while (it.hasNext()){ 
      int comparacio = comp.compare(e, it.next()); 
      if(comparacio == -1){ 
       numMenors += 1; 
      } 
     } 
     return numMenors; 
    } 

} 

ユニットテストクラス:JUnitテスト(ジェネリック関数を)私の機能を認識しません

import java.util.*; 
import org.junit.After; 
import org.junit.AfterClass; 
import org.junit.Before; 
import org.junit.BeforeClass; 
import org.junit.Test; 
import static org.junit.Assert.*; 

public class ExerciciTest { 

    public ExerciciTest() { 

    } 

    @Test 
    public void compararCosesComparables() { 
     int num = 0; 

     Bottle b1 = new Bottle(0.33, 10, "Agua de Oro", "Dubai"); 
     Bottle b2 = new Bottle(1.5, 1, "asdf", "Rabat"); 
     Bottle b3 = new Bottle(2.5, 1.5, "qwerty", "Londres"); 
     Bottle b4 = new Bottle(5, 2, "poiuy", "Paris"); 
     Bottle b5 = new Bottle(2.5, 2, "Botella", "EEUU"); 

     List<Bottle> alb = new ArrayList<>(); 
     Iterator<Bottle> it = alb.iterator(); 
     alb.add(b1); 
     alb.add(b2); 
     alb.add(b3); 
     alb.add(b4); 

     num = numMinors(b5, it); //Error cannot find symbol 

    } 

    @Test 
    public void compararCosesAmbComparador() { 
     int num = 0; 

     Bottle b1 = new Bottle(0.33, 10, "Gold water", "Dubai"); 
     Bottle b2 = new Bottle(1.5, 1, "asdf", "Rabat"); 
     Bottle b3 = new Bottle(2.5, 1.5, "qwerty", "Londres"); 
     Bottle b4 = new Bottle(5, 2, "poiuy", "Paris"); 
     Bottle b5 = new Bottle(2.5, 2, "Botella", "EEUU"); 

     ArrayList<Bottle> alb = new ArrayList<>(); 
     BottleComparator comp = new BottleComparator(); 
     Iterator<Bottle> it = alb.iterator(); 

     alb.add(b1); 
     alb.add(b2); 
     alb.add(b3); 
     alb.add(b4); 

     num = numMinors(comp, b5, it); //Error cannot find symbol 

    } 

} 

だから私は3つのクラス、コンパレータを実装BottleComparator、比較可能であるexercici実装ボトルを得ました私がやるように求められたメソッドを含むクラス。

問題は、テストクラスが私の関数numMinorsを認識していないと思われます。私は既にすべてのドキュメントを別のパッケージに置き、プロジェクトを閉じて別の時間に開くことを試みました。どんな手掛かり??

(私はまだテストにアサート機能を配置する必要があります)

エラーメッセージ:

シンボルに

シンボルが見つかりません:メソッドnumMinorsを(......)

場所:クラスexerciciTest

答えて

0

numMinorsはクラスExerciciTestの静的メソッドではありません。これはあなたのクラスの静的メソッドExerciciです。

Exercici.numMinors(...)だからできますが、ExerciciTest.numMinors(...)ではできません。

ここではExerciciTestクラスでnumMinors(...)と直接電話します。静的メソッドがないのでエラーがありますExerciciTestクラス

numMinorsがあります
関連する問題