标签: instantiation

为什么有些类会限制直接实例化?

我遇到过各种不允许直接创建实例的类.相反,我们必须从其他类的静态方法创建它们的实例,或者它拥有静态方法.例如:

B b = A.getB();
Run Code Online (Sandbox Code Playgroud)

要么

B b = B.getInstance();
Run Code Online (Sandbox Code Playgroud)

这背后是什么原因?

为什么他们不允许直接创建实例,如:

B b = new B();
Run Code Online (Sandbox Code Playgroud)

java instantiation factory-pattern

2
推荐指数
1
解决办法
1153
查看次数

如何实例化模板模板

我有这样的模板:

100 template<size_t A0, size_t A1, size_t A2, size_t A3>
101 struct mask {
103     template<size_t B0, size_t B1, size_t B2, size_t B3>
104     struct compare {
105         static const bool value = (A0 == B0 && A1 == B1 && A2 == B2 && A3 == B3);
106     };
107 };
...
120 const typename boost::enable_if_c<
121 mask<a,b,c,d>::compare<2,3,0,1>::value || ...>::type
Run Code Online (Sandbox Code Playgroud)

我试图实例化比较结构.如何在第121行获得价值?

c++ templates instantiation

2
推荐指数
1
解决办法
293
查看次数

从顺序数据填充属性时创建类实例的最短方法

我有字符串列表

var data = new List<string> {"Name1", "Surname1", "Name2", "Surname2" };
Run Code Online (Sandbox Code Playgroud)

和描述Person的类

class Person
{
   public string Name { get; set; }
   public string Surname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

List<Person>data列表创建填充的最短方法是什么结果应该等于

var persons = new List<Person>
{ 
    new Person { Name = "Name1", Surname = "Surname1" }, 
    new Person { Name = "Name2", Surname = "Surname2" }
};
Run Code Online (Sandbox Code Playgroud)

先感谢您!

c# instantiation

2
推荐指数
1
解决办法
493
查看次数

是否可以调用default-constructor而不是零参数构造函数?

我有一个util类,它应该使用反射调用给定的Class对象上的方法.

现在它使用.newInstance()创建一个新实例,然后调用我想测试的方法.

问题是我的一些类的零参数构造函数由于缺少依赖性等而抛出异常,并使我无法调用我实际想要测试的方法.

是否可以调用Java的default-constructor来创建实例而不是自定义零参数构造函数?

java reflection constructor instantiation

2
推荐指数
1
解决办法
763
查看次数

创建实例化类对象的数组

所以我有一个我在C#应用程序中创建的类(myClass).当使用这个类的数组时,我一直在想,编写一个循环来填充myClass对象的数组是相当烦人的.我知道当你创建一个枚举值数组时,该数组已经填充了枚举的实例,这些实例被设置为它们的默认值.

我想知道是否可以通过类实现相同类型的功能,以便调用如下:

myClass[] myClassArray = new myClass[25];
Run Code Online (Sandbox Code Playgroud)

将生成一个myClass对象数组,它们只是该类的空构造函数的实例.

c# arrays class instantiation

2
推荐指数
1
解决办法
1万
查看次数

在实例化(子)类时,您声明对象的"类型"是否有任何区别?

假设我有一个被调用ParentClass的类和一个被调用的类ChildClass

ParentClass是抽象的,并ChildClass扩展了ParentClass每个Java术语.此外,它ParentClass有一个构造函数,它以int一个参数为参数.现在在另一个类中我想实例化ChildClass.我尝试了以下两种方式:

  1. ChildClass obj1 = new ChildClass(5)
  2. ParentClass obj2 = new ChildClass(5)

Java允许我使用上述两种方法中的任何一种.我的问题是,实际上有什么区别吗?如果我愿意,可以互换使用这两种吗?

java inheritance subclass instantiation

2
推荐指数
1
解决办法
1820
查看次数

是"someString"等同于新的String("someString")?在java中

我总是认为在java中这样的表达式:

String tmp = "someString";
Run Code Online (Sandbox Code Playgroud)

只是某种"语法糖"

String tmp = new String("someString");
Run Code Online (Sandbox Code Playgroud)

正如我最近反编译我的java应用程序,我看到了所有的用法

public static final String SOME_IDENTIFIER = "SOME_VALUE";
Run Code Online (Sandbox Code Playgroud)

在代码中只用值替换,静态最终变量被剥离.

每次想要访问静态final时,都不会将这个新的String实例化吗?如何将其视为"编译器优化"?

java compiler-construction string instantiation compiler-optimization

2
推荐指数
1
解决办法
415
查看次数

我们可以借助Java中的匿名类创建接口和抽象类的实例化吗?

我去采访了.采访者问我是否可以实例化一个接口和抽象类?据我所知,我说"不".但他说"是的,我们可以借助匿名课程".

你能告诉我怎么样吗?

java instantiation

2
推荐指数
1
解决办法
916
查看次数

使用operator new从C实例化C++对象

我创建了一个C++程序和类,并计划将其编译到库中.我找到了几个网站,解释了如何创建和使用包装器来访问C++类方法.

我的环境是IAR EWARM,在我的情况下我需要使用标准C.要创建类实例化对象,我使用(或将需要使用)运算符"new",即对于类"scrnDev":bLink1 = new(scrnDev) );

我一直在寻找有关如何使用C程序中的"new"运算符实例化对象的信息,但无法找到如何实现这一点.

c c++ instantiation

2
推荐指数
1
解决办法
537
查看次数

如何在Python中从名称和类列表中实例化许多不同的类

我有一个这样的名字列表:

names = ['name_1', 'name_2', ..., 'name_n']
Run Code Online (Sandbox Code Playgroud)

以及类的列表(类的名称),如下所示:

classes = ['class_1', 'class_2', ..., 'class_n']
Run Code Online (Sandbox Code Playgroud)

我可以像这样实例化每个类:

name_1 = class_1()
Run Code Online (Sandbox Code Playgroud)

如何一次实例化具有给定名称的所有类(可能使用for循环)?

python class instantiation python-3.x

2
推荐指数
1
解决办法
190
查看次数