Java测试类

Java测试类,java,generics,Java,Generics,我还是一个编程新手,需要一点帮助来编写一个程序。它由两个类组成,一个泛型OrderedPair类和一个ObjectPairTest类。到目前为止,这是我的OrderedPair类: 我使用了下面评论中的一些建议,并将我的ObjectPair类更改为: package lab2; public class OrderedPair<F, S>{ public F getFirst; public S getSecond; private F first; pri

我还是一个编程新手,需要一点帮助来编写一个程序。它由两个类组成,一个泛型OrderedPair类和一个ObjectPairTest类。到目前为止,这是我的OrderedPair类: 我使用了下面评论中的一些建议,并将我的ObjectPair类更改为:

    package lab2;

    public class OrderedPair<F, S>{ 


public F getFirst;
public S getSecond;

private F first;
private S second;

public OrderedPair(F first, S second ){
    this.first = first;
    this.second = second;
    }
    public F getFirst() { return first; }
    public S getSecond() {return second;}
    public String toString() {return first.toString() + " | "+second.toString();}
public static final OrderedPair<String, Integer> c1 = new OrderedPair<String, Integer>("Pi", 3);
public static final OrderedPair<String,String> c2 = new OrderedPair<String, String>("Great", "Super");
public static final OrderedPair<Integer, Integer> c3 = new OrderedPair<Integer, Integer>(1, 2);
public static final OrderedPair<Float, String> c4 = new OrderedPair<Float, String>( 5f, "Maximum");
public static final OrderedPair<Integer, Float> c5 = new OrderedPair<Integer, Float>(69, 69f);

    }
package lab2;

    public class OrderedPairTest{

public static void main(String[] args){
    System.out.println(c1.toString());
    System.out.println(c2.toString());
    System.out.println(c3.toString());
    System.out.println(c4.toString());
    System.out.println(c5.toString());
}//End class Main
}//End class OrderedPairTest
但是,当我尝试运行时,会显示错误消息:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
c1 cannot be resolved
c2 cannot be resolved
c3 cannot be resolved
c4 cannot be resolved
c5 cannot be resolved
at lab2.OrderedPairTest.main(OrderedPairTest.java:6)

感谢大家迄今为止的帮助

添加OrderedPair。在所有这些变量之前
public class OrderedPair<F, S>{ 

    private F first;
    private S second;

    public OrderedPair(F first, S second ){
        this.first = first;
        this.second = second;
    }

    public F getFirst() { return first; }
    public S getSecond() {return second;}
    public String toString() {return first.toString() + " | "+second.toString();}

    public static void test(){
        //Five pairs of data 
        OrderedPair<String, Integer> c1 = new OrderedPair<String, Integer>("Pi", 3);
        OrderedPair<String,String> c2 = new OrderedPair<String, String>("Great", "Super");
        OrderedPair<Integer, Integer> c3 = new OrderedPair<Integer, Integer>(1, 2);
        OrderedPair<Float, String> c4 = new OrderedPair<Float, String>( 5f, "Maximum");
        OrderedPair<Integer, Float> c5 = new OrderedPair<Integer, Float>(69, 69f);
        System.out.println(c1.toString());
    }
}
公共静态无效字符串[]args{ System.out.PrintLOrderedPair.c1.toString; System.out.PrintLOrderedPair.c2.toString; System.out.PrintLOrderedPair.c3.toString; System.out.PrintLOrderedPair.c4.toString; System.out.PrintLOrderedPair.c5.toString; }

toString应该能满足您的需求。所以要打印它,您需要输入:System.out.printlnc1.toString;我的答案已经更新了。嗯,奇怪,以前的版本对我有效。不需要。toString。由谁推荐?为什么?当它需要转换成字符串时,它被称为。为什么不写它,让它产生一些东西呢。。。当然,这是一个很好的讨论主题:。我属于隐式阵营。我更喜欢显式,但这是您的选择:通常,测试类与被测试的类位于同一个包中。所以默认的可见性已经足够了。我尝试了你们的一些建议,但是当我试图将测试放在自己的类中时,我似乎遇到了更多的问题。我重新发布了带有错误消息的代码。