Machine-translated by Google. Questions are authored in English.
Top

Discussion

Which line contains the error?

public class Sample63
{
    static class Item implements Comparable<Item>
    {
        int size;

        public int compareTo(Item other)
        {
            assert compareTo(other) == -other.compareTo(this);
            return Integer.compare(size, other.size);
        }
    }
}

  • A.int size;
  • B.Every line above is correct as written.
  • C.assert compareTo(other) == -other.compareTo(this);
  • D.return Integer.compare(size, other.size);

Answer: C

The assertion calls the very method it sits in, so it recurses until the stack overflows before any comparison happens. Checking the symmetry of compareTo is a sensible idea, but it belongs in a test that calls the method from outside, not inside the method itself.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.