这段 java 代码比较 UID 是用来做什么的?

2015-03-23 22:10:55 +08:00
 cicku

小弟不才,对安卓这方面了解不是很深

https://github.com/msg555/PowerTutor/blob/src/edu/umich/PowerTutor/components/Audio.java

这是几年前的 powertutor 的代码,audio 用来获取音频设备信息,不过

public int uid;
public int id;
public int assignUid;

public int compareTo(Object obj) {
  MediaData x = (MediaData)obj;
  if(uid < x.uid) return -1;
  if(uid > x.uid) return 1;
  if(id < x.id) return -1;
  if(id > x.id) return 1;
  return 0;
}

public boolean equals(Object obj) {
  MediaData x = (MediaData)obj;
  return uid == x.uid && id == x.id;
}

}

请问为什么要比较呢?是用来确定读写权限的嘛?现在是不是又比这个更简单的实现?

9581 次点击
所在节点    Android
3 条回复
xupefei
2015-03-24 03:05:44 +08:00
http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html#compare(T,%20T) 说:

Return: a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

返回 -1 和返回 -10086 一样,1 和 10010 也一样。
cicku
2015-03-24 11:50:59 +08:00
@xupefei 不是,我的意思是这段音频设备的代码为什么要比较uid,就是单纯确定数据共享安全性的吗?
vjnjc
2015-03-30 00:42:28 +08:00
@cicku 用来判断2个MediaData 是不是包含了相同的数据。
如果仅仅是用mediaData1 == mediaData2 只能判断是不是相同的引用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/178892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX