草庐IT

boolean_field

全部标签

javax.lang.模型 : How do I get the type of a field?

在java.lang.reflect,一个会做:FieldsomeField=...;ClassfieldType=someField.getType();但是我该如何处理javax.lang.model的VariableElement(这可能代表也可能不代表一个领域)?相应的返回值将是(我猜)TypeElement.VariableElementsomeField=...;TypeElementfieldType=someField.???;所以,在javax.lang.model,如何获取字段的类型(或TypeElement),由VariableElement表示?顺便说一句,没有

Java 内存模型 : Is it safe to create a cyclical reference graph of final instance fields, 全部在同一个线程中分配?

比我更了解Java内存模型的人可以证实我对以下代码已正确同步的理解吗?classFoo{privatefinalBarbar;Foo(){this.bar=newBar(this);}}classBar{privatefinalFoofoo;Bar(Foofoo){this.foo=foo;}}我知道这段代码是正确的,但我还没有完成整个happens-before数学运算。我确实找到了两个非正式的引用,表明这是合法的,但我有点担心完全依赖它们:Theusagemodelforfinalfieldsisasimpleone:Setthefinalfieldsforanobjectinth

Kotlin判断null比较let布尔值Boolean

Kotlin判断null比较let布尔值BooleanclassMyData{valcount:Int?=2023valnumber:Int?=null}funmain(args:Array){valdata=MyData()valyear=2022if(data.count!=null){if(data.count>year){println("data.count!=null")}}if(data.count!!>year){println("data.count!!")}varb1=data.count?.let{it>2022}?:falseprintln(b1)varb2=data.

java - 在 Java 数据库中执行基于 boolean 值的方法的好的设计是什么?

我们的规则很少,它们在Java中作为方法实现。但有时我们需要绕过规则。因此,对于每条规则,我们都有一个boolean指示符来指示是否执行。将方法映射到数据库中的boolean值并根据boolean值执行方法是一个好的设计。下面是示例模板1Rule1true2Rule2false3Rule3true4Rule4true所以,现在我需要分别执行method1()、method3()和method4()。一种简单的方法是使用If(rulee==true)executeMethod();其次是使用Switch来执行案例(方法调用)注意:我们可能需要在不同的位置(方法)执行方法。所以请不要认为所

java - 检查 boolean 值比在 Java 中设置 boolean 值更快吗?

这个:if(var){var=false;}与此相比:var=false;有速度差异吗? 最佳答案 有几件事会起作用,您需要针对您的用例衡量对实际性能的最终影响。我假设这是您发现经常发生的一种方法:分支预测-如果var几乎始终为假(代码建议如此),则分支预测器几乎总是正确的。如果字段经常变化,那么这将成为一个经常被错误预测的分支,并且代价高昂。读取未命中-如果var主要被读取(并且读取很多),那么避免无故更改可以帮助您的软件,因为它不会使它所在的缓存行无效。如果您写入它,所有其他读取它的核心(以及同一缓存行上的任何内容)都将需要获得

java - 为什么 Java 不允许转换 Boolean -> Int?

我想知道为什么Java不允许从boolean值转换为int,如下所示:booleanfoo=true;intbar=(int)foo;这可以在一行代码中完成,例如,bar=foo?1:0;但似乎更好、更易于阅读的方法是允许类型转换,如double和int。为什么Java不包含此功能? 最佳答案 它不允许这样做,因为Java设计者(正确地)认识到C和C++中的boolean/整数重载是错误的重要来源。(我记得在一些设计原理中看到过,但我找不到。)例如:if(i=0){...}是合法的,但可能是用C或C++编写的应用程序中的错误。Jav

java:循环两个 boolean 值(false,true)

这是一个文体问题。我想用变量on循环两次,该变量设置为false,然后设置为true。以下哪个更清楚:一个)for(finalbooleanon:newboolean[]{false,true}){doStuffBasedOnABooleanFlag(on);}B)for(inti=0;iC)别的东西编辑:墨菲意外解释定律开始发挥作用……我最初看起来像这样的用例而不是doStuffBasedOnABooleanFlag:for(finalbooleanon:newboolean[]{false,true}){JButtonbutton=on?onButton:offButton;but

java - 返回 boolean 值而不是在 Java 中声明 void 类型?

关于在方法签名中返回boolean值以指示操作成功而不是声明无效,是否有任何硬性规定?我发现对于调用方法中更关键的操作,我想知道操作是否已完成,以便记录任何问题。这是对boolean值的“不当”使用吗? 最佳答案 通常我使用Exception来发出错误信号。您可以抛出一个Exception,而不是返回false,并附上有关问题所在的详细消息。返回false不会为您提供有关问题的太多信息。然后,如果您希望该方法返回,则不检查false返回值,只需将方法调用放在try/catch中很容易失败。很多人会提示这种方法比较慢。但是,您获得的好

java - 解决方案 "Undefined field text"

我最近将我的solr实例从1.4升级到了3.6。但是,现在每当我更新索引时,我的日志中似乎都会收到一条“未定义的字段文本”严重消息。我的模式中确实有文本字段(自1.4版起有效),但以前从未声明为字段类型。这在3.6中有变化吗?我的模式在这里>>http://pastebin.com/KrCVab0USEVERE:org.apache.solr.common.SolrException:undefinedfieldtextatorg.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1330)atorg

java - 多次调用 Method/Field.getAnnotation(Class) 与在 Map 中预缓存此数据的性能

我想知道是否有任何关于重复调用(在Java中)Method.getAnnotation(Class)和Field.getAnnotation(Class)的性能的比较/研究方法,而不是存储(在程序启动时)具有类元数据信息的预计算Map并稍后重复查询。哪一个可以提供最佳的运行时性能?这个性能在Java5、6和7下是否相同? 最佳答案 Map应该是更可取的方法。主要问题不仅与缓存有关。还能改善多线程争用。在Method.getAnnotation()中,它调用同步私有(private)方法declaredAnnotations()。同步