Tag: 构造函数的

inheritance父构造函数参数

我正在浏览一个类似的话题的讨论,但无法find我的情况… 我正在尝试调用具有参数的父类构造函数…似乎无法正确使用它。 我有一个PhysicsBody超类,它把一个PhysicsBody作为唯一的构造参数: function PhysicsBody(aNode) { this.userData = aNode; // … } 这个PhysicsBodyinheritance了一个DynamicBody类。 构造函数也只需要一个参数作为参数…就像我会在Java中做的那样,我很想调用一些等同于"super(aNode");东西"super(aNode"); 似乎无法找出如何。 以下是DynamicBody类: // Wanted to give "new PhysicsBody(this, aNode)", but that fails! DynamicBody.prototype = new PhysicsBody(); DynamicBody.prototype.constructor=DynamicBody; function DynamicBody(aNode) { // calling the parent constructor fails too: // PhysicsBody.prototype.constructor.call(this, aNode); //… }

使用scala构造函数来设置trait中定义的variables

如果我理解正确,特征是最接近的Java接口和类构造函数自动设置variables。 但是如果我有一个扩展特性的类,并且有一个构造函数从特性中设置一个variables,那么如果是这样的话: trait Foo { var foo: String } class Bar (foo: String) extends Foo { /* … */ } 当我制作一个Bar对象的时候,我想让这个特质的foostring被设置。 编译器似乎给了我这个错误。 什么是实现这一目标的正确方法?

用于实例化内部类的奇怪语法

在这个阶段,我没有想到我会在Java中遇到全新的语法,但是你看,我刚刚遇到了一些事情: 确切的上下文和下面的代码应该做什么是非常不相干的 – 它只是为了给某种上下文。 我试图在IT Mill Toolkit中综合创build一个事件,所以我写了这样一行: buttonClick(new Button.ClickEvent(button)); 但是,Eclipse给我以下错误信息: 没有封闭types的Button实例可以访问。 必须使用封闭的Buttontypes实例来限定分配(egxnew A(),其中x是Button的一个实例)。 当我重写上面的行,如下所示,它不再抱怨: buttonClick(button.new ClickEvent(button)); // button instanceof Button 所以,我的问题是: 后面的语法究竟是什么意思,为什么不是第一个片段的工作? Java抱怨什么,第二个版本在做什么? 背景信息: Button和Button.ClickEvent都是非抽象的公共类。

为什么在java中的构造函数没有返回types?

可能重复: 为什么构造函数不返回值 为什么构造函数没有返回types,甚至没有void? 这是什么原因?

在构造函数中抛出ArgumentNullException?

对于具有单个参数的构造函数,如果参数为null / empty,那么在构造函数中抛出ArgumentNullException是否可以? 或者,是否应该在实际使用该方法的方法中抛出? 谢谢。

在Scala中,如何使用多个构造函数inheritance一个Java类?

假设我有一个带有多个构造函数的Java类: class Base { Base(int arg1) {…}; Base(String arg2) {…}; Base(double arg3) {…}; } 我怎样才能扩展它在斯卡拉,仍然提供访问所有三个基地的构造? 在Scala中,子类只能调用其超类的构造函数之一。 我该如何解决这个规则? 假设Java类是我无法更改的遗留代码。

有没有可能创build构造函数扩展方法? 怎么样?

有没有可能添加一个构造函数的扩展方法? 我想添加一个List <T>构造函数来从给定的部分填充的缓冲区中接收特定数量的字节(不需要仅复制相关字节等的开销): … public static List<T>(this List<T> l, T[] a, int n) { for (int i = 0; i < n; i++) l.Add(a[i]); } … 所以用法是: List<byte> some_list = new List<byte>(my_byte_array,number_of_bytes); 我已经添加了一个AddRange扩展方法: public static void AddRange<T>(this List<T> l, T[] a, int n) { for (int i = 0; i < n; i++) l.Add(a[i]); } […]

Python的构造函数和默认值

不知何故,在下面的Node类中,wordList和adjacencyListvariables在Node的所有实例之间共享。 >>> class Node: … def __init__(self, wordList = [], adjacencyList = []): … self.wordList = wordList … self.adjacencyList = adjacencyList … >>> a = Node() >>> b = Node() >>> a.wordList.append("hahaha") >>> b.wordList ['hahaha'] >>> b.adjacencyList.append("hoho") >>> a.adjacencyList ['hoho'] 有什么办法可以继续使用构造函数参数的默认值(在这种情况下为空列表),但要同时获得a和b有自己的wordList和adjacencyListvariables? 我正在使用Python 3.1.2。

代码片段或简写在Visual Studio中创build构造函数

什么是在Visual Studio中创build构造函数的代码片段或捷径? Visual Studio 2010和C#。 我以前用过,但我不记得了。

你如何使用非默认构造函数的成员?

我有两个class class a { public: a(int i); }; class b { public: b(); //Gives me an error here, because it tries to find constructor a::a() a aInstance; } 我怎样才能得到它,使aInstance实例化(int我),而不是试图寻找一个默认的构造函数? 基本上,我想从b的构造函数中控制a的构造函数的调用。