草庐IT

finalizer

全部标签

java - final 关键字在 Android 中的工作原理

我知道在Java中我们对变量或其他东西使用final关键字来使其值不被改变。在下面的示例中使用final有什么区别?publicclassMainActivityextendsActionBarActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);finalTextViewcampoTexto=(TextView)findViewById(R.id.campoTe

java - 不能继承final类

我刚刚创建了我的第一个android库。在另一个应用程序中,我想从它扩展一个类。但它向我显示了一个错误:“无法从最终的‘library.com.kukaintro.activities.KukaIntro’扩展”。如您所见,没有一个父类(superclass)是最终的。如果我点击父类(superclass)KukaIntro(在应用程序而不是图书馆),它会说:这是我第一次创建图书馆。有人可以告诉我如何解决这个问题吗? 最佳答案 在Kotlin中,与Java不同,默认情况下所有类都隐式标记为final。如果要从类继承,则必须在类声明之

java.lang.IllegalStateException : AssetManager has been finalized 错误

我昨天sleep时我的应用程序还在运行,今天当我尝试运行时它根本无法启动。一旦我尝试打开它,它就会崩溃并出现java.lang.IllegalStateException。我已经在我的代码中进行了几次提交,只是为了排除这是我最近所做的事情。这毫无意义,一个应用程序怎么能在一夜之间停止工作呢?我在互联网上查找错误,但没有太多有用的信息。这真的是一个奇怪的错误吗?这是完整的堆栈跟踪:E/AndroidRuntime:FATALEXCEPTION:mainjava.lang.IllegalStateException:AssetManagerhasbeenfinalized!atandroi

java - Android 单元测试类的“private static final”成员将值更改为 null

我在Android项目中有一个JUnit测试用例,它包含如下代码:privatestaticfinalURITEST_RESOURCE_URL=TasksService.TASKLIST_RESOURCELIST_URL.resolve("task/test.task");publicvoidsetUp(){Log.i("Test","TEST_RESOURCE_URL="+TEST_RESOURCE_URL);}这个测试类有多个测试方法,其中一些方法引用(但不试图修改)这个常量的值。但是,当我运行这些测试(Android2.2.2)时,所有这些测试都失败了,但第一个失败,并且logc

android - 终结器抛出的未捕获异常 java.lang.IllegalStateException : Binder has been finalized

这段代码soundPool.release();soundPool=null;有时会产生这个错误:Uncaughtexceptionthrownbyfinalizerjava.lang.IllegalStateException:Binderhasbeenfinalized!atandroid.os.BinderProxy.transactNative(NativeMethod)atandroid.os.BinderProxy.transact(Binder.java:503)atcom.android.internal.app.IAppOpsService$Stub$Proxy.st

android - AssetManager$AssetInputStream.finalize() 在 10 秒后超时

我们看到以下崩溃流,全部发生在Android4.3SamsungGalaxys3上java.util.concurrent.TimeoutException:android.content.res.AssetManager$AssetInputStream.finalize()timedoutafter10secondsatandroid.content.res.AssetManager$AssetInputStream.close(AssetManager.java:559)atandroid.content.res.AssetManager$AssetInputStream.fin

c++ - __finally 应该在 EXCEPTION_CONTINUE_SEARCH 之后运行吗?

在下面的代码中,函数foo递归调用了一次。内部调用导致引发访问冲突。外部调用捕获异常。#include#includevoidfoo(intcont){__try{__try{__try{if(!cont)*(int*)0=0;foo(cont-1);}__finally{printf("innerfinally%d\n",cont);}}__except(!cont?EXCEPTION_CONTINUE_SEARCH:EXCEPTION_EXECUTE_HANDLER){printf("except%d\n",cont);}}__finally{printf("outerfinall

C++ Java static final 等价物

我正在使用C++编写国际象棋游戏程序。我想为类Board创建两个类属性:ROWS和COLUMNS。在Java中,我会将它们声明为staticfinal,一切都会按我的意愿运行。我如何在C++中做同样的声明?我需要在其他类中通过“Board::ROWS”和“Board::COLUMNS”访问这些属性。我所拥有的是这个,它抛出编译错误,因为ROWS和COLUMNS没有在m_TileMap的声明范围内声明。在不使用#define语句的情况下执行此操作是否有好的做法?classBoard{Tile*m_TileMap[ROWS][COLUMNS];public:staticconstintRO

c++ - 具有公共(public)非虚拟析构函数的类是否应标记为 "final"?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion要关闭选民,请帮助我改进问题以便重新打开:HowcanIimprovethisquestionsothatitgetsreopened?赫伯萨特wrote:Abaseclassdestructorshouldbeeitherpublicandvirtual,orprotectedandnonvirtual.根据该指南,如果您有一个带有公共(public)非虚拟析构函数的类,则不应将该类用作

java - Kotlin for android 和 static final 内部类

我正在尝试在Kotlin上重写我的android应用程序,并且在转换ContentProvider契约(Contract)类时遇到了问题。所以我有简单的契约(Contract)类(内容类型和内容uris等默认内容被省略):publicfinalclassContract{publicstaticfinalclassContacts{publicstaticfinalStringNAME="Name"publicstaticfinalStringBIRTH="Birth"publicstaticfinalStringIMAGE="Image"}}如果我理解正确,在Kotlin中我们没有静