草庐IT

null-propagation-operator

全部标签

c# - null 到底有什么值(value)?

(我知道null是什么以及它的用途)问题:好的,假设我们用任何语言引用一个对象。计算机在内存中留出一点32位(或其他大小,取决于计算机的设计)空间供该引用。该内存可以分配给表示对象在内存中的位置的值。但是当我将引用设置为null时,它到底有什么值(value)呢?(引用集中的各个位是什么)这些位是否刚刚清零?但这不也是内存中的一个位置吗?计算机如何判断引用包含null而不是对对象的引用?我知道这不是一个“重要”的问题,但我很好奇它是如何工作的。谢谢大家:D 最佳答案 答案分为两部分:值为零(即值中的所有位均为零)零永远不会被视为有效

Java I/O : Ensure a file is not locked by another process before any r/w operation

我在基于Java7WatchServiceAPI跟踪目录中文件内容的应用程序中遇到了一个反复出现的问题。当底层文件系统触发文件修改事件时,我想立即计算其SHA-256。但经常会发生另一个进程打开文件(即Word),从而保留独占锁并阻止我的应用程序进行任何读/写操作。如果针对打开的文件创建了任何流/channel,则会抛出FileNotFoundException或nioAPI的FileSystemException以及如下消息:Theprocesscannotaccessthefilebecauseitisbeingusedbyanotherprocess当文件在fs上实际上不存在时,

java - 为什么 Netbeans 在我的 Java 代码中建议我使用 "Flip operands of the binary operators"

Netbeans经常建议我在进行数学计算时“翻转二元运算符的操作数”。例如,在下面的代码行中:change=100-price;quarters=change/25;dimes=change%25/10;nickels=change%25%10/5;pennies=change%25%10%5;Netbeans为每个数学符号提出建议(因此它在“便士”行中提出了3次。我不确定我是否理解它提出建议的原因。如果我在执行除法时翻转操作数,我会得到不同的结果(如果“翻转”意味着我认为它所做的,即切换两个值的顺序)。为什么会这样提示? 最佳答案

java - Node.snapshot(null, null) 改变场景的大小

我有Scene,它被设置为我的primaryStage的Scene,在其他节点中,它包含一个VBox和一个TableView和一些按钮。当我使用TableRow.snapshot(null,null)在表中的一行拍摄快照时,Scene的大小发生了变化。宽度改变了大约10像素,而高度改变了大约40-有时超过600(!)-像素。发生这种情况是因为Node.snapshot(null,null)调用了Scene.doCSSLayoutSyncForSnapshot(Nodenode)这似乎获得了所有节点的首选大小使用它重新计算大小。这不知何故返回了错误的值,因为我的节点只指定了首选大小并且在

java - 在 Java 运行时从 zip 文件读取 ESRI shapefile - DataStoreFinder.getDataStore(connectParameters) 返回 null

我们正在构建一项服务,用于上传包含ESRI形状文件的zip文件。该服务应该能够读取shapefile并对其内容进行处理。所以我构建了一个将zip文件解压缩到临时文件夹(System.getProperty("java.io.tmpdir")的子文件夹)的类。另一个类从Unzip类调用unzip方法,然后尝试使用Geotools读取解压缩的shapefile。它使用GeotoolsDataStoreFinder.getDataStore(Mapparams)方法从解压缩的shapefile创建数据存储。这里出现了问题:getDataStore方法返回null。我测试了URL,它看起来没问

java - JPQL Hibernate NULLS LAST 被忽略

已更新-请在评论中查看答案我知道CriteriaQuery.orderBy不支持NULLSLAST。我试图使用TypedQuery并注意到它似乎只是忽略了“NULLSLAST”之后的所有内容-不会抛出任何错误,只是忽略它:Stringsql="SELECTcFROMContactcWHEREc.partnerCode=:pCodeandc.activeFlag='Y'"+"ORDERBYc.primaryFlagDESCNULLSLAST,c.lastNameASC";TypedQueryquery=em.createQuery(sql,Contact.class);query.set

导致虚拟机故障的 Java 映射/nio/NFS 问题 : "a fault occurred in a recent unsafe memory access operation in compiled Java code"

我已经为特定的二进制格式(nfdump如果有人感兴趣)编写了一个解析器类,它使用了java.nio的MappedByteBuffer。读取每个几GB的文件。二进制格式只是一系列header和大部分固定大小的二进制记录,通过调用nextRecord()将其馈送到被调用方,nextRecord()会推送状态机,完成后返回null。它表现良好。它在开发机器上运行。在我的生产主机上,它可以运行几分钟或几小时,但似乎总是抛出“java.lang.InternalError:afaultoccurredinarecentunsafememoryaccessoperationincompiledJa

java - com.sun.org.apache.xpath.internal.operations.String 的用途是什么?

我正在编写一个Java程序,当我尝试使用字符串时,弹出的建议是com.sun.org.apache.xpath.internal.operations.String.什么是com.sun.org.apache.xpath.internal.operations.String,我应该什么时候使用它?我在网上看过,但找不到文档。谢谢! 最佳答案 您可以根据包名称向后工作。Xpath让我们了解它的作用的第一个部分。然后是Apache,它是ApacheSoftwareFoundation.所以它是来自Apache的一个名为Xpath的API

java - Gradle:路径和 baseDir 都不能为 null 或空字符串

每次构建时,我都尝试在我的Gradle脚本中使用ProGuard来混淆我的代码,但是我遇到了以下错误:FAILURE:Buildfailedwithanexception.*Whatwentwrong:NeitherpathnorbaseDirmaybenulloremptystring.path='null'basedir='/Users/hassansyyid/Workspace/Random/Launcher/launcher'*Try:Runwith--stacktraceoptiontogetthestacktrace.Runwith--infoor--debugoption

java - 具有 null Long 的三元表达式中的 NullPointerException

为什么下面这行代码会产生一个NullPointerException?Longv=1==2?Long.MAX_VALUE:(Long)null;我知道正在对null执行拆箱操作,但为什么呢?注意Longv=(Long)null;不产生异常。 最佳答案 所以看起来很明显,如果条件为真,你只需要装箱,如果条件为假,则不应该装箱。但是,三元运算符表达式必须具有特定的static类型。所以我们有Long和long。JLS声明结果将是原语(同样-假设运算符是+甚至是==)。所以三元运算符将强制拆箱,然后赋值才会导致装箱。如果您要用等效的if-