标签: instantiation

如何在Java中创建通用数组?

由于Java泛型的实现,您不能拥有这样的代码:

public class GenSet<E> {
    private E a[];

    public GenSet() {
        a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在保持类型安全的同时实现这一点?

我在Java论坛上看到了这样的解决方案:

import java.lang.reflect.Array;

class Stack<T> {
    public Stack(Class<T> clazz, int capacity) {
        array = (T[])Array.newInstance(clazz, capacity);
    }

    private final T[] array;
}
Run Code Online (Sandbox Code Playgroud)

但我真的不知道发生了什么.

java arrays generics reflection instantiation

1045
推荐指数
15
解决办法
74万
查看次数

为什么[]比list()更快?

我最近比较了处理速度[]和,list()并且惊讶地发现它的[]运行速度比它三倍list().我跑了相同的测试与{}dict(),结果几乎相同:[]{}两个花了大约0.128sec /百万次,而list()dict()大约花费每个0.428sec /万次.

为什么是这样?不要[]{}(可能()'',太)立即传回文字的一些空股票的份,而其明确命名同行(list(),dict(),tuple(),str())完全去创建一个对象,他们是否真的有元素?

我不知道这两种方法有何不同,但我很想知道.我无法在文档中或在SO上找到答案,搜索空括号结果比我预期的问题更多.

我拨打了我的时序结果timeit.timeit("[]")timeit.timeit("list()"),和timeit.timeit("{}")timeit.timeit("dict()"),分别比较列表和字典.我正在运行Python 2.7.9.

我最近发现的" 为什么是,如果真慢于如果为1? "来比较的性能if Trueif 1,似乎触及了类似的文字,对全局的情况; 也许值得考虑一下.

python performance list instantiation literals

679
推荐指数
5
解决办法
7万
查看次数

使用类名创建实例并调用构造函数

有没有办法在给定类名(动态)的情况下创建特定类的实例,并将参数传递给其构造函数.

就像是:

Object object = createInstance("mypackage.MyClass","MyAttributeValue");
Run Code Online (Sandbox Code Playgroud)

哪个"MyAttributeValue"是构造函数的参数MyClass.

java reflection instantiation

299
推荐指数
7
解决办法
42万
查看次数

从字符串创建类的实例

有没有办法根据我在运行时知道类的名称来创建类的实例.基本上我会在字符串中有类的名称.

.net c# instantiation system.type

198
推荐指数
5
解决办法
25万
查看次数

有没有办法从持有类名的字符串中实例化对象?

我有一个文件:Base.h

class Base;
class DerivedA : public Base;
class DerivedB : public Base;

/*etc...*/
Run Code Online (Sandbox Code Playgroud)

和另一个文件:BaseFactory.h

#include "Base.h"

class BaseFactory
{
public:
  BaseFactory(const string &sClassName){msClassName = sClassName;};

  Base * Create()
  {
    if(msClassName == "DerivedA")
    {
      return new DerivedA();
    }
    else if(msClassName == "DerivedB")
    {
      return new DerivedB();
    }
    else if(/*etc...*/)
    {
      /*etc...*/
    }
  };
private:
  string msClassName;
};

/*etc.*/
Run Code Online (Sandbox Code Playgroud)

有没有办法以某种方式将此字符串转换为实际类型(类),以便BaseFactory不必知道所有可能的Derived类,并为每个类都有if()?我可以用这个字符串生成一个类吗?

我认为这可以通过Reflection在C#中完成.C++中有类似的东西吗?

c++ inheritance factory instantiation

135
推荐指数
3
解决办法
8万
查看次数

Instance member cannot be used on type

I have the following class:

class ReportView: NSView {  
    var categoriesPerPage = [[Int]]()
    var numPages: Int = { return categoriesPerPage.count }
}
Run Code Online (Sandbox Code Playgroud)

Compilation fails with the message:

实例成员'categoriesPerPage'不能用于'ReportView'类型

这是什么意思?

instantiation getter-setter swift computed-properties

118
推荐指数
6
解决办法
11万
查看次数

如何在Swift中为UIView子类编写自定义init?

假设我想要init一个UIView带a String和a的子类Int.

如果我只是子类化,我将如何在Swift中执行此操作UIView?如果我只是创建一个自定义init()函数,但参数是一个字符串和一个Int,它告诉我"在从初始化程序返回之前不调用"super.init()".

如果我打电话super.init()告诉我必须使用指定的初始化程序.我应该在那里使用什么?框架版本?编码器版本?都?为什么?

cocoa-touch instantiation uiview ios swift

113
推荐指数
5
解决办法
9万
查看次数

C++对象实例化

我是一名试图理解C++的C程序员.许多教程使用片段演示对象实例化,例如:

Dog* sparky = new Dog();
Run Code Online (Sandbox Code Playgroud)

这暗示你以后会这样做:

delete sparky;
Run Code Online (Sandbox Code Playgroud)

这是有道理的.现在,在不需要动态内存分配的情况下,有没有理由使用上面的代替

Dog sparky;
Run Code Online (Sandbox Code Playgroud)

一旦sparky超出范围,让析构函数被调用?

谢谢!

c++ instantiation

112
推荐指数
6
解决办法
15万
查看次数

在JavaScript中使用小写"f"的`new function()`

我的同事一直在使用带有小写"f"的"new function()"来定义JavaScript中的新对象.它似乎在所有主流浏览器中运行良好,并且在隐藏私有变量方面似乎也相当有效.这是一个例子:

    var someObj = new function () {
        var inner = 'some value';
        this.foo = 'blah';

        this.get_inner = function () {
            return inner;
        };

        this.set_inner = function (s) {
            inner = s;
        };
    };
Run Code Online (Sandbox Code Playgroud)

一旦使用"this",它就成为someObj的公共财产.所以someObj.foo,someObj.get_inner()和someObj.set_inner()都是公开的.另外,set_inner()和get_inner()是特权方法,因此它们可以通过闭包访问"内部".

但是,我在任何地方都没有看到任何对此技术的引用.甚至Douglas Crockford的JSLint抱怨它:

  • 怪异的建筑.删除'新'

我们在生产中使用这种技术,它似乎运作良好,但我有点担心它,因为它没有在任何地方记录.有谁知道这是否是一种有效的技术?

javascript function object instantiation

106
推荐指数
3
解决办法
3万
查看次数

有没有办法在Java中按名称实例化一个类?

我的问题是:从其字符串名称实例化一个类,该名称描述了如何在拥有名称时实例化一个类.有没有办法在Java中做到这一点?我将拥有包名和类名,我需要能够创建具有该特定名称的对象.

java string object instantiation

94
推荐指数
3
解决办法
11万
查看次数