downcasting相关内容
在java中: Base b = new Base(); 派生d =(派生)b; throws ClassCastException 。为什么?为什么向下投掷异常?我无法弄清楚原因。 解决方案 让我重命名你的课程以使事情更加清晰。 Base - > Animal 。 派生 - > Cat 。 仅仅因为你'重新动物并不意味着你是 Cat
..
我正在编写一个大型应用程序,我试图尽可能多地保存内存并提高性能。因此,当我有一个我知道的字段只有0到10或-100 - 100的值时,我尝试使用 short 数据类型代替 int 。 这对于其余代码来说意味着什么呢?我调用这些函数,我必须将简单的 int 转换为 short s。例如: 方法签名 public void coordinates(短x,短y)...
..
我将一些Python移植到Rust作为学习练习,需要从文件或标准输入中获取输入。我在一个结构中保留了输入的句柄,所以我想我只是制作一个 Box 但是我遇到了需要寻找的情况在输入上, seek 不是 Read 特征的一部分。我知道你不能在管道中寻找,所以我要继续并且现在假设这个方法只在输入是一个文件时才被调用,但是我的问题是我无法在Rust中检查它并且向下转发。 / p>
..
我知道在stackoverflow中有很多文章/问题描述了Java中的向上转换和向下转换。我知道什么是向上倾斜和向下倾斜。但我的问题并不是特别的。 Upcasting - 从子节点转换为父节点 - 编译器需要注意。不需要演员阵容 向下转换 - 从父母到孩子的转换 - 需要明确演员? public class Animal { public void getAnimalNa
..
当java可以隐式执行转换时,为什么不隐式执行转换?请用一些简单的例子来解释一下? 解决方案 关键是,向上转换总会成功,所以它是安全的 - 而向下转换可能会失败: String x = getStringFromSomewhere(); 对象y = x; //这将*总是*工作 但是: Object x = getObjectFromSomewhere()
..
给出以下代码,我有一个问题: A类{} 类B扩展A { } class C extends B {} public class Test { public static void main(String [] args){ A a = new A(); A a1 = new A(); B b = new B(); // a = b; // ok // b
..
我正在尝试理解Java的多态性,我有一个关于向下转换对象的问题。 让我们说这个例子我有两个子类Dog和Cat继承自超类Animal 从我的理解,向下转换对象的唯一方法是如果这个Object已经是好的类型,如下所示: Animal a = new Dog(); 狗d =(狗)a; 这适用吗? 但是如果我想在不知道它的情况下制作一只普通的动物,然后在我知道
..
我试图看看HashSet是否会成为我下一个项目的解决方案,所以我正在做一些非常简单的测试来检查功能。 我有一个简单的类 Klant : public class Klant { private int klantNummer; public Klant(int nummer){ this.klantNummer = nummer; } public int getK
..
我有超级抽象类Node和50种子类SubNode。 我有一个通用类其具有私有var List和一个方法,不幸的是必须接受超类节点ALWAYS,不能将它移动到E: public void addSubElement(节点节点) { if(node instanceOf E)subElements.add((E)node); else //
..
这两个代码片段之间有什么区别: let cell = tableView.dequeueReusableCellWithIdentifier(“cellId”)as UITableViewCell? // vs let cell = tableView.dequeueReusableCellWithIdentifier(“cellId”)as? UITableViewCell
..
我有两个对象 - “太空船”和“星球”派生自基地“Obj”。我已经定义了几个类 - Circle,Triangle,Rectangle等,它们都继承自一个“Shape”类。 为了碰撞检测的目的,我想给Obj a “shape”: Dim MyShape as Shape 在“宇宙飞船”中,我可以: MyShape = new Triangle ,blah)
..
我的方法将一个对象作为输入。 例如: binarySearch(Object o); 在binarySearch方法中,我需要一种方法来确定Object o的类型(或类)。然后我需要把它与那种类型。我会怎么做? 更具体地说,Object o是基类的子类(EG SalariedEmp是Employee的子类),我特别需要基类。 编辑: 我想出了如何做我想要的,这真的应该是一
..
之间有什么区别。 public class Test { public static void main String args []){ String toBeCast =“cast this string”; A a = toBeCast; // error - 类型不匹配:无法从String转换为A Object object = toBeCast; } }
..
请检查以下程序。 我怀疑编译器会在编译器级别发出转换异常,何时会在 runtime ? 像下面的程序一样,表达式 我假设 )应该在编译时失败,因为Tree不是Redwood。但它不会在编译时中失败,因为预期它在运行时失败 !!! public class Redwood extends Tree { public static void main(String [] a
..
我想检查一个对象(例如 someObject )是否可分配给另一个类型的变量(例如 SpecifiedType )。在Java中,我可以写: someObject instanceof SpecifiedType 一个相关的问题是查找对象的运行时类型是否等于另一个类型。在Java中,我可以写: someObject.getClass()。equals(Speci
..
我在 http://www.javabeginner.com/learn-java/上看到这个例子java-object-typecasting 和在其中谈到显式类型转换的部分有一个例子困惑我。 示例: class Vehicle { 字符串名称; Vehicle(){ name =“Vehicle”; } } class HeavyVehicle extend
..
相对于类变量,上转换和下转换之间有什么区别? 例如,在以下程序类中,Animal只包含一个方法,类包含两个方法,那么我们如何将Dog变量转换为动态变量。 如果转换完成,那么我们如何使用Animal的变量来调用Dog的另一个方法。 / p> class Animal { public void callme() { System。 out.println(“在动物的ca
..
我有一个简单的层次树结构,基类Node表示一个节点。节点可以是另一种特定类型(子类化)。 class Node { vector儿童 //简单节点操作方法 const向量& getChildren(){return childs; } } 我有几个子类 : class FacultyNode:public Node;
..
可能重复: 常见问题:为什么只有当一个类至少有一个虚方法时dynamic_cast才起作用? p> 我在C ++中读过,在一组类的层次结构中执行动态转换, cast只允许在类是多态的情况下,例如当基类有一个虚函数等时。这个限制的原因是什么?在基类中有一个纯虚函数代替普通的虚函数更安全吗? 谢谢! 解决方案 此限制的原因是什么? dynamic_cast 只有在对
..
首先,问题非常类似于 具有附加功能的派生类的向下转换共享指针是,其中有很好的答案。但我想解释为什么这是有效(或不)和不使用共享指针。所以: class Base {/ * ... * /}; class Derived:public Base { public: void addnalFunc(int i){/ * access base members * /} };
..