gpt4 book ai didi

java - Java 的 Array clone() 可以返回 null 吗?

转载 作者:太空狗 更新时间:2023-10-29 14:44:32 25 4
gpt4 key购买 nike

给定这段代码:

public class SoundAndFilterCollection {

private final Sound[] sounds;
private final Filter[] filters;

public SoundAndFilterCollection(Sound[] sounds, Filter[] filters) {
this.sounds = sounds.clone();
this.filters = filters.clone();

Arrays.sort(sounds);
Arrays.sort(filters);
}

public Sound[] getSounds() {
return sounds.clone();
}

public Filter[] getFilters() {
return filters.clone();
}
}

我在执行 getSounds() 时遇到 NullPointerException:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object gab[].clone()' on a null object reference
at com.mycompany.messenger.push2talk.domain.SoundAndFilterCollection.getSounds(SoundAndFilterCollection.java:24)
at com.mycompany.messenger.shareinchat.chatbar.hiddenpanel.views.soundstickers.presenter.SoundStickersPanelPresenter.setSoundsViews(SoundStickersPanelPresenter.java:92)
at com.mycompany.messenger.shareinchat.chatbar.hiddenpanel.views.soundstickers.presenter.SoundStickersPanelPresenter.access$000(SoundStickersPanelPresenter.java:20)
at com.mycompany.messenger.shareinchat.chatbar.hiddenpanel.views.soundstickers.presenter.SoundStickersPanelPresenter.access$200(SoundStickersPanelPresenter.java:20)
at com.mycompany.messenger.shareinchat.chatbar.hiddenpanel.views.soundstickers.presenter.SoundStickersPanelPresenter$3.onDoneWithContext(SoundStickersPanelPresenter.java:59)
at com.mycompany.messenger.shareinchat.chatbar.hiddenpanel.views.soundstickers.presenter.SoundStickersPanelPresenter$3.onDoneWithContext(SoundStickersPanelPresenter.java:56)
at com.mycompany.deferred.Done$UIContextual.onDone(Done.java:35)

我的问题是:如何使用此实现在 getSounds() 中包含空对象?我已经在 J​​DK 1.8 和几个 Android 设备中测试了 Array clone(),它永远不会返回 null。

关于 2 Arrays.sort() 我知道它们对错误的引用进行了排序,我认为它们与这次崩溃无关,但我想按原样共享代码。

PS:另外,我在各种各样的手机中都遇到过这种崩溃,所以我认为这与修改后的手机中奇怪的 clone() 实现无关。

最佳答案

谜团解开了,这个类是在缓存中用 Gson 实例化的,正如我所见here即使没有空的构造函数,这也是可能的。

这个类被 proguard 混淆了,所以它无法恢复序列化的信息,它被初始化为空值

关于java - Java 的 Array clone() 可以返回 null 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42087984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com