草庐IT

Try-finally

全部标签

java - 在java中将对象声明为final

谁能阐明下面代码的意义。classA{inti=10;publicvoidsetI(intb){i=b;}publicintgetI(){returni;}}classTest{publicstaticvoidmain(Stringargs[])throwsThrowable{finalAob=newA();ob.setI(10);System.out.println(ob.getI());}}对象A被声明为final,但我可以更改此对象实例变量的值并检索更新后的值。那么将一个对象声明为final有什么意义呢。我知道将原始数据类型声明为final,这会使该变量保持不变。

java - 将类设置为 final 和将类构造函数设置为私有(private)有什么区别

final类和将类构造函数设置为私有(private)的到底有什么区别。我知道两者都不能被子类化(如果我错了请纠正我)。它们有什么区别吗? 最佳答案 无法扩展最终类。它可以防止这种情况finalclassFinalClass{}//andlaterclassExtendedClassextendsFinalClass{//ERROR}这对像String这样的东西很有用-你不希望有人能够覆盖String的逻辑,最常用的对象之一,并且能够,哦,我不知道,添加网络和将您使用的所有字符串发回。如果可以扩展String就可以做到。不能在类外调

java - 变量 "effectively final"是什么意思?

这个问题在这里已经有了答案:Differencebetweenfinalandeffectivelyfinal(14个答案)关闭8年前。documentation关于匿名类状态Ananonymousclasscannotaccesslocalvariablesinitsenclosingscopethatarenotdeclaredasfinaloreffectivelyfinal.我不明白“有效最终”变量是什么意思。谁能提供一个例子来帮助我理解这意味着什么?

java - 最终字符串类与非最终字符串类的 final方法

我知道java.lang.String类被声明为final是出于安全和性能相关的原因。我不明白的是,是否可以使用所有最终变量和final方法而不是声明最终类来实现相同的目的?简而言之,下面两个代码片段有什么区别..例如publicclassfinalString{..}速度/速度//nonfinalclasspublicclassString{//allfinalvariablesprivatefinalchar[]value;//allfinalmethodspublicfinalStringsubString(){..}publicfinalintlength(){returnva

Java 并发数 : is final field (initialized in constructor) thread-safe?

谁能告诉我这个类是否是线程安全的?classFoo{privatefinalMapaMap;publicFoo(){aMap=newHashMap();aMap.put("1","a");aMap.put("2","b");aMap.put("3","c");}publicStringget(Stringkey){returnaMap.get(key);}}编辑:我没有澄清问题是我的错。根据JMMFAQ:Anewguaranteeofinitializationsafetyshouldbeprovided.Ifanobjectisproperlyconstructed(whichmea

java - 为什么 Java 8 Optional 实现为 final,没有 Some 和 None 层次结构?

在Java中,Optional实现为publicfinalclassOptional{...}而不是作为Some的密封层次结构和None.为什么这里不是这种情况?这是缺少sealed的解决方法吗?在java?是否有更深层次的原因?如果你看一下方法实现,你会发现通过这种方式,它具有丑陋的空检查功能:publicOptionalmap(Functionmapper){Objects.requireNonNull(mapper);if(!isPresent())returnempty();else{returnOptional.ofNullable(mapper.apply(value));

java - 在 Java 运行时添加 final 修饰符

这听起来可能有点奇怪,但是否可以在运行时添加final修饰符?我有一个标记为publicstaticint/short的变量。在某些时候,我想防止更改它的值,并且我想将其可访问性保持为标准静态值(ClassName.field)。publicclassMain{privatestaticinta=0;publicstaticvoidaddFinalMod(Fieldf){FieldmodifiersField=null;try{modifiersField=Field.class.getDeclaredField("modifiers");}catch(NoSuchFieldExcep

python - OSError : [Errno 22] when I try to . read() 一个 json 文件

我只是想用Python读取我的json文件。当我这样做时,我在正确的文件夹中;我在下载中,我的文件名为“Books_5.json”。但是,当我尝试使用.read()函数时,出现错误OSError:[Errno22]Invalidargument这是我的代码:importjsonconfig=json.loads(open('Books_5.json').read())这也会引发同样的错误:books=open('Books_5.json').read()如果有帮助,这是我的数据的一小段:{"reviewerID":"A10000012B7CGYKOMPQ4L","asin":"0001

python - 在使用 try 和 except 语句赋值之前引用的局部变量

这个问题在这里已经有了答案:localvariable'servers'referencedbeforeassignment(3个答案)关闭9年前。我在try和except语句中遇到了一些问题,我有一个输入字符串的条目小部件,但我有稍后将其转换为整数的代码,问题是如果用户输入类似文本的内容,它会抛出像这样的错误:ExceptioninTkintercallbackTraceback(mostrecentcalllast):File"/usr/lib/python3.2/tkinter/__init__.py",line1402,in__call__returnself.func(*ar

python - 使用 Try & Except Python 2.7.1 的文件打开功能

defFileCheck(fn):try:fn=open("TestFile.txt","U")exceptIOError:print"Error:Filedoesnotappeartoexist."return0我正在尝试制作一个函数来检查文件是否存在,如果不存在,则它应该打印错误消息并返回0。为什么这不起作用??? 最佳答案 如果你想从exceptblock中返回,你需要缩进return0。另外,您的论点没有做任何事情。我假设您希望此函数能够测试任何文件,而不是为其分配文件句柄?如果不是,则不需要任何参数。defFileChec