我注意到Java中的Set和SortedSet接口之间存在逻辑不一致.
如果在比较期间它们是相同的,则SortedSet将不同的对象(通过equal()方法)识别为equals,但它在逻辑上是不正确的.对象的比较应仅对对象的顺序负责.
例如:我可以有很多产品,我想按价格对它们进行排序.在这种情况下,SortedSet不能包含具有相同价格的不同产品:["salt",0.5 $],["milk",1 $],["bread",1 $],["bananas",2 $在上面的例子中,牛奶将被面包取代.在这种情况下,将违反继承的Set接口的合同,因为不相等的对象会相互替换.我是Reded JavaDoc的SortedSet,并且知道这个行为有很好的记录,但我认为这是一个逻辑上的失败.
你有什么看法,也许你已经和Set和SortedSet有类似的问题了?
我开发了一个android-app(家庭噪音警报),它可以在许多设备上正常工作.但是现在我收到了使用以下设备的用户的错误报告:
ANDROID_VERSION=6.0.1
PHONE_MODEL=HTC One A9
Run Code Online (Sandbox Code Playgroud)
一种用户向我发送错误报告,但我不明白.如果他启动应用程序,他会收到此错误.
这是错误日志:
02-05 18:42:41.501 E/AudioRecord( 6200): AudioFlinger could not create record track, status: -1
02-05 18:42:41.505 E/AudioRecord-JNI( 6200): Error creating AudioRecord instance: initialization check failed with status -1.
02-05 18:42:41.505 E/android.media.AudioRecord( 6200): Error code -20 when initializing native AudioRecord object.
02-05 18:42:41.505 E/android.media.AudioRecord( 6200): startRecording() called on an uninitialized AudioRecord.
Run Code Online (Sandbox Code Playgroud)
我相信如果麦克风被另一个应用程序阻止,会发生此错误,是否有某些机构有此类错误的经验?
如果特定字段是枚举数组,我想在Java中使用反射来查找.有谁知道如何做到这一点?
java ×2
android ×1
arrays ×1
audiorecord ×1
collections ×1
enums ×1
reflection ×1
set ×1
sortedset ×1