草庐IT

惯用语

全部标签

java - 在 Java 中安全地从长对象转换为长原语的惯用方法

我试图将一个Long对象值传递给一个需要long原语的方法,直接传递有效,但Long对象为null的情况除外。在这种情况下,我得到一个空指针异常。Longfoo=null;bar.methodExpects_long_primitive(foo);我可以创建一个检查foo是否为null并跳过调用该方法,例如Longfoo=null;if(foo!=null){bar.methodExpects_long_primitive(foo);}或者如果我想提供一个默认值Longfoo=null;bar.methodExpects_long_primitive(foo==null?default

C++惯用法之RAII思想: 资源管理

C++编程技巧专栏:http://t.csdnimg.cn/eolY7相关系列文章C++智能指针的自定义销毁器(销毁策略)目录1.概述 2.RAII的应用2.1.智能指针2.2.文件句柄管理2.3.互斥锁3.注意事项3.1.禁止复制3.2.对底层资源使用引用计数法3.3.复制底部资源(深拷贝)或者转移资源管理权(移动语义)4.RAII的优势和挑战5.总结1.概述        RAII是ResourceAcquisitionIsInitialization的缩写,即“资源获取即初始化”。RAII原则的基本思想是将资源的生命周期与对象的生命周期绑定在一起。它是C++语言的一种管理资源、避免资源泄

java - 用于构建 'debug' 和 'release' JAR 文件的惯用 Gradle 脚本

我正在尝试创建一个Gradle构建脚本来构建Java.jar文件处于“发布”或“调试”模式,并且无法参数化脚本。问题是:使用Java插件在Gradle脚本中执行此操作的惯用方法是什么?(或者,如果没有惯用的方法,那么实际有效的hacky解决方案是什么?)我不介意参数化的方法,只要命令行和IDE调用可以轻松地在两个输出选项之间进行选择。jar文件将用作其他项目中的库,例如一个Android应用程序和一个JavaFX应用程序,所以我希望参数化方法可以从他们自己的Gradle脚本中调用/依赖。理想情况下,我想“模拟”Androidgradle插件具有每个任务的调试/发布版本的能力,即$./g

将 Lambda 应用于返回另一个列表的列表的 Java 8 惯用方法?

将lambda应用于列表中的每个项目并返回由结果组成的列表的最惯用的机制是什么?例如:ListlistA=...imaginesomeinitializationcodehere...ListlistB=listA.apply(a->a*a);//pseudo-code(thereisno"apply")/*listBnowcontainsthesquareofeveryvalueinlistA*/我检查了APIjavadocs并查看了ApacheCommons,但没有找到任何东西。 最佳答案 您可以将Stream与map和coll

java - Scala 按分隔符拆分列表的惯用方法是什么?

如果我有一个字符串类型的列表,scala>valitems=List("Apple","Banana","Orange","Tomato","Grapes","BREAK","Salt","Pepper","BREAK","Fish","Chicken","Beef")items:List[java.lang.String]=List(Apple,Banana,Orange,Tomato,Grapes,BREAK,Salt,Pepper,BREAK,Fish,Chicken,Beef)我如何根据特定的字符串/模式("BREAK",在本例中)将其拆分为n个单独的列表。我考虑过使用inde

SQL常用语句

清空共享内存:altersystemflushshared_pool下面的SQL查询占用sharepool内存大于10m的sql;selectsubstr(sql_text,1,100)"stmt",count(*),sum(sharable_mem),sum(users_opening),sum(executions)fromv$sqlgroupbysubstr(sql_text,1,100)havingsum(sharable_mem)>10000000;查询sharepool的空闲内存;selecta.*,round(a.bytes/1024/1024,2)Mfromv$sgastata

sql常用语句

一、字符串相关1.根据指定字符替换selectreplace(column_name,'旧字符','新字符')from table_name;2.截取指定下标开始的指定长度字符串selectsubstring(column_name,start_index,字符长度)from table_name;3.获取指定字符的下标selectcharindex('字符',column_name)from table_name;4.反转指定字段数据selectreverse(column_name)fromtable_name;5.获取指定前几个字符selectleft(column_name,字符长度)

c++ - 在索引处分配 boost::mpl vector_c 元素的惯用方式

我有mpl::vector_c我想“分配”位置3的元素,比如说我想将它设置为30。因此,我必须写一个元函数获取和索引、vector和新值并返回修改后的序列。我最终得到了以下解决方案templateclassassign_element{typedeftypenamempl::begin::typebegin;typedeftypenamempl::advance>::typepos;typedeftypenamempl::erase::typesequence2;typedeftypenamempl::begin::typebegin2;typedeftypenamempl::adva

c++ - 将调用者姓名传递到模板函数中的惯用方式

我有一个从多个其他函数调用的模板化函数,需要记录调用它的函数的名称。理想情况下,我想执行以下操作:templatevoidfoo(constT&arg){//...}但是,这当然不会编译,因为CALLER是一个无效的模板参数。当然,我可以简单地修改foo的签名,使其也接受一个字符串(调用者的姓名)来实现这一点。问题:是否有首选的C++惯用方法来实现此类事情? 最佳答案 不幸的是你can'tusestringliteralsastemplateargumentsBecausestringliteralsareobjectswithin

c++ - 使用 C++ 检测惯用语计算任意可调用对象的参数

我一直在使用C++detectionidiom创建一个元函数来确定任意可调用对象的参数数量。到目前为止,我有这个(完整的、可编译的代码在http://ideone.com/BcgDhv):staticconstexprautomax_num_args=127;structany{templateoperatorT(){}};templateusingcallable_archetype=decltype(declval()(declval()...));templateusingis_callable_with_args=is_detected;templatestructcount_