草庐IT

weak_ptr_cast

全部标签

java - 类型安全 : Unchecked cast from Object to ArrayList<MyVariable>

这是从服务器向客户端发送ArrayList的程序的一部分。我想删除这段代码最后一行的警告:客户端代码:Sockets;(...)//Aserverissendingalistfromtheothersideofthelink.ois=newObjectInputStream(s.getInputStream());MyList=(ArrayList)ois.readObject();MyVariable是一个具有一些属性的Java类。服务器正在创建一个ArrayList并用MyVariable变量作为项目填充它。然后它将完整的列表发送给客户端。我想知道为什么我会在那里出现警告,以及如何

java - Java 中的 Casting 是否有任何运行时成本?

这两个block之间会有性能差异吗?publicvoiddoSomething(Supertypeinput){Subtypefoo=(Subtype)input;foo.methodA();foo.methodB();}对比publicvoiddoSomething(Supertypeinput){((Subtype)input).methodA();((Subtype)input).methodB();}这两者之间还有其他注意事项或建议吗? 最佳答案 好吧,在第二种情况下,编译后的代码可能包含两次强制转换-所以理论上它做了两次相

java - 类型安全 : Unchecked cast from Object

我尝试将一个对象强制转换为我的Action类,但它会导致警告:Typesafety:UncheckedcastfromObjecttoActionActionaction=null;try{Objecto=c.newInstance();if(oinstanceofAction){action=(Action)o;}else{//TODO2Auto-generatedcatchblockthrownewInstantiationException();}[...]感谢您的帮助 最佳答案 是的-这是typeerasure的自然结果.如

node.js - 引用数组 : CastError: Cast to ObjectId failed for value "[object Object]" 的 Mongoose 模型架构

我用express.js和mongoosejs构建了一个博客网站。一篇文章可能有一个或多个类别。创建新文章时出现错误:{[CastError:CasttoObjectIdfailedforvalue"[objectObject]"atpath"categories"]message:'CasttoObjectIdfailedforvalue"[objectObject]"atpath"categories"',name:'CastError',type:'ObjectId',value:[[objectObject]],path:'categories'}谁能帮帮我?相关代码如下:Ar

node.js - 引用数组 : CastError: Cast to ObjectId failed for value "[object Object]" 的 Mongoose 模型架构

我用express.js和mongoosejs构建了一个博客网站。一篇文章可能有一个或多个类别。创建新文章时出现错误:{[CastError:CasttoObjectIdfailedforvalue"[objectObject]"atpath"categories"]message:'CasttoObjectIdfailedforvalue"[objectObject]"atpath"categories"',name:'CastError',type:'ObjectId',value:[[objectObject]],path:'categories'}谁能帮帮我?相关代码如下:Ar

casting - 类型不匹配 : inferred type is Int but Byte was expected

我目前正在试用kotlin,这里有一个简单的例子:varbyteToAdd:Byte=3varbyteArray=byteArrayOf(1,2,3,4,5)byteArray[0]+=byteToAddprintln(byteArray[0])但是在执行时,我在第3行得到一个错误,因为它说byteToAdd是一个Integer,即使我设置了byteToAdd到第1行的Byte。为什么会这样? 最佳答案 带有+=运算符的这一行相当于这个更长的调用-如果您在运算符上调用它,您实际上可以在IntelliJ中使用意图操作在两者之间进行转换

casting - 为什么 Kotlin 不执行自动类型转换?

vara:Doublea=Math.sin(10)//error:theintegerliteraldoesnotconformtotheexpectedtypeDoublea=Math.sin(10.0)//Thiscompilessuccessfullyprintln(a)为什么kotlin不进行隐式类型转换,强制我们传递确切类型的数据?funsin(value: Double):Double//atkotlindocumentation 最佳答案 我们都知道Kotlin既有不可为空的Int也有可以为空的Int?。当我们使用In

casting - Kotlin 中的 "as"和 "is"运算符有什么区别?

在Java中,我可以编写如下代码:voidcast(Aa){if(ainstanceofPerson){Personp=(Person)a;}}在Kotlin中,我应该怎么做?使用as运算符还是is运算符? 最佳答案 isX等价于instanceofXfooasX等价于((X)foo)此外,Kotlin会在可能的情况下执行智能转换,因此在您使用is检查类型后不需要额外的转换:openclassPerson:A(){valfoo:Int=42}openclassA然后:if(pisPerson){println(p.foo)//loo

kotlin - 编译错误 : Smart cast to '<type>' is impossible,,因为 '<variable>' 是一个局部变量,由变化的闭包捕获

为了简化我的实际用例,假设我想在一个列表中找到最大的数字:varmax:Int?=nulllistOf(1,2,3).forEach{if(max==null||it>max){max=it}}但是,编译失败并出现以下错误:Smartcastto'Int'isimpossible,because'max'isalocalvariablethatiscapturedbyachangingclosure为什么更改闭包会阻止智能转换在此示例中工作? 最佳答案 通常,当在lambda函数闭包中捕获可变变量时,智能转换不适用于该变量,无论是在

c++ - 通过传递指针的地址来初始化 std::unique_ptr

我正在创建一个与某些WindowsAPI代码互操作的类,现在我必须初始化的指针之一是通过调用初始化它的native函数来完成的。我的指针是std::unique_ptr类型,带有一个自定义删除器,它调用提供的WinAPI删除器函数,但是我不能将带有&地址运算符的unique_ptr传递给init函数.为什么?我创建了一个示例来演示我的问题:#includestructfoo{intx;};structcustom_deleter{};voidinit_foo(foo**init){*init=newfoo();}intmain(){std::unique_ptrfoo_ptr;init