如果我这样做:
class Example {
int a;
char b;
String c;
}
public static void main(String[] args) {
Example example = new Example();
example.a = 5;
sort (example);
}
//sort is in another class than main
public sort (Object object) {
//how can I get example.a here?
}
我怎样才能得到" a"在方法排序中,不知道类Example的定义?
答案 0 :(得分:0)
示例类将由sort类继承,并将实现Example类型的比较器。代码就像:
class sort extends Example implements Comparator<Example>{
public int compare(Example e1, Example e2){
if(e1.a > e2.a) return 1;
else if(e1.a < e2.a) return -1;
else return 0;
}
}
给定代码将用于排序Object类型示例的数组。
实际上,从示例本身实现可比性更好,如:
class Example implements Comparable<Example>{
int a;
char b;
String c;
@Override
public int compareTo(Example e) {
if(this.a == e.a)
return 0;
else
return this.a > e.a ? 1 : -1;
}
}
//For calling sort
public static void main(String args[]){
ArrayList<Example> arr = new ArrayList<>();
Collections.sort(arr, new Example());
}
或
public static void main(String args[]){
Example[] arr = new Example[n];
Arrays.sort(arr, new Example());
}
答案 1 :(得分:0)
您可以使用Object类中定义的repo_b
方法。
就像那样:
user_b
或者您创建的任何其他实例,并且您想要找到它的类型
(如果那是你的问题,因为它不够明确)