Assume you have some objects which have several fields they can be compared by:
public class Person {
private String firstName;
private String lastName;
private String age;
/* Constructors */
/* Methods */
}
So in this example, when you ask if:
a.compareTo(b) > 0
you might be asking if a's last name comes before b's, or if a is older than b, etc...
What is the cleanest way to enable multiple comparison between these kinds of objects without adding unnecessary clutter or overhead?
java.lang.Comparable
interface allows comparison by one field only
- Adding numerous compare methods (i.e.
compareByFirstName()
, compareByAge()
, etc...) is cluttered in my opinion.
So what is the best way to go about this?
Question&Answers:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…