草庐IT

unchecked-cast

全部标签

casting - 在 Go 中从 float32 转换为 int

我尝试了几种将float转换为int的方法,我想要的是截断float,所以我只得到整数部分。我正在使用x:=float32(3.1)y,_:=strconv.Atoi((strconv.Ftoa32(x,'f',0)))//ybecomes3但如果x为3.9,y将变为4,因为此函数将舍入float32而不是截断。有没有一种截断而不是舍入的方法?如果是这样,是否可以在不涉及字符串的情况下做到这一点?(就像在C中将float转换为int一样) 最佳答案 只需使用int():x:=float32(3.1)fmt.Println(int(x

casting - 类型断言/类型切换是否性能不佳/在 Go 中很慢?

在Go中使用类型断言/类型切换作为运行时类型发现的方法有多慢?我听说例如在C/C++中,在运行时发现类型的性能很差。为了绕过这一点,您通常将类型成员添加到类中,这样您就可以与这些成员进行比较而不是强制转换。我在整个www中都没有找到明确的答案。这是我要问的一个示例-与其他类型检查方法(如上面提到的或我不知道的其他方法)相比,这是否被认为快速?funcquestion(anythinginterface{}){switchv:=anything.(type){casestring:fmt.Println(v)caseint32,int64:fmt.Println(v)caseSomeCu

casting - 在 Go 中对多个返回值进行转换/类型断言的惯用方法

在Go中转换多个返回值的惯用方式是什么?您可以在一行中完成,还是需要使用临时变量,例如我在下面的示例中所做的?packagemainimport"fmt"funconeRet()interface{}{return"Hello"}functwoRet()(interface{},error){return"Hejsan",nil}funcmain(){//Withonereturnvalue,youcansimplydothisstr1:=oneRet().(string)fmt.Println("String1:"+str1)//Itisnotaseasywithtworeturnv

Java 未选中 : unchecked generic array creation for varargs parameter

我已将Netbeans设置为在我的Java代码中显示未经检查的警告,但我无法理解以下几行中的错误:privateListcocNumbers;privateListvatNumbers;privateListibans;privateListbanks;...List>combinations=Utils.createCombinations(cocNumbers,vatNumbers,ibans);给予:[unchecked]uncheckedgenericarraycreationforvarargsparameteroftypeList[]方法来源:/***Returnsalis

Java Class.cast() 与强制转换运算符

在我的C++时代,我被教导C风格转换运算符的弊端,起初我很高兴发现在Java5中java.lang.Class获得了cast方法。我认为我们终于有了一种面向对象的方式来处理强制转换。原来Class.cast与C++中的static_cast不同。它更像是reinterpret_cast。它不会在预期的地方产生编译错误,而是会推迟到运行时。这是一个简单的测试用例来演示不同的行为。packagetest;importstaticorg.junit.Assert.assertTrue;importorg.junit.Test;publicclassTestCast{staticfinalcl

Java 泛型 : Cannot cast List<SubClass> to List<SuperClass>?

这个问题在这里已经有了答案:IsListasubclassofList?WhyareJavagenericsnotimplicitlypolymorphic?(19个回答)关闭6年前.刚刚遇到这个问题:Lista1=newArrayList();Listb1=a1;//compileerror:incompatibletypeDataNode类型是Tree的子类型。publicclassDataNodeimplementsTree令我惊讶的是,这适用于数组:DataNode[]a2=newDataNode[0];Tree[]b2=a2;//thisisokay这有点奇怪。任何人都可以对

c++ dynamic_cast 错误处理

是否有任何与dynamic_cast错误处理相关的良好做法(除非在不必要时不使用它)?我想知道我应该如何处理它可以抛出的NULL和bad_cast。我应该检查两者吗?如果我捕捉到bad_cast或检测到NULL,我可能无论如何都无法恢复......现在,我使用assert来检查dynamic_cast是否返回非NULL值。你会在代码审查时接受这个解决方案吗? 最佳答案 如果dynamic_cast应该成功,最好使用boost::polymorphic_downcast代替,这有点像这样:assert(dynamic_cast(o)=

c++ dynamic_cast 错误处理

是否有任何与dynamic_cast错误处理相关的良好做法(除非在不必要时不使用它)?我想知道我应该如何处理它可以抛出的NULL和bad_cast。我应该检查两者吗?如果我捕捉到bad_cast或检测到NULL,我可能无论如何都无法恢复......现在,我使用assert来检查dynamic_cast是否返回非NULL值。你会在代码审查时接受这个解决方案吗? 最佳答案 如果dynamic_cast应该成功,最好使用boost::polymorphic_downcast代替,这有点像这样:assert(dynamic_cast(o)=

java - 如何修复 "The expression of type List needs unchecked conversion...' ?

在Java代码段中:SyndFeedInputfr=newSyndFeedInput();SyndFeedsf=fr.build(newXmlReader(myInputStream));Listentries=sf.getEntries();最后一行产生警告"List类型的表达式需要未经检查的转换才能符合List"有什么合适的方法来解决这个问题? 最佳答案 这是处理Java5之前的API时的常见问题。自动化solutionfromerickson,您可以创建以下泛型方法:publicstaticListcastList(Class

c++ - std::lexical_cast - 有这样的事情吗?

C++标准库是否定义了这个函数,还是我必须求助于Boost?我在网上搜索,除了Boost找不到任何东西,但我想我最好在这里问一下。 最佳答案 只是部分。C++11有std::to_string对于内置类型:[n3290:21.5/7]:stringto_string(intval);stringto_string(unsignedval);stringto_string(longval);stringto_string(unsignedlongval);stringto_string(longlongval);stringto_st