我遇到过各种不允许直接创建实例的类.相反,我们必须从其他类的静态方法创建它们的实例,或者它拥有静态方法.例如:
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) 我有这样的模板:
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行获得价值?
我有字符串列表
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)
先感谢您!
我有一个util类,它应该使用反射调用给定的Class对象上的方法.
现在它使用.newInstance()创建一个新实例,然后调用我想测试的方法.
问题是我的一些类的零参数构造函数由于缺少依赖性等而抛出异常,并使我无法调用我实际想要测试的方法.
是否可以调用Java的default-constructor来创建实例而不是自定义零参数构造函数?
所以我有一个我在C#应用程序中创建的类(myClass).当使用这个类的数组时,我一直在想,编写一个循环来填充myClass对象的数组是相当烦人的.我知道当你创建一个枚举值数组时,该数组已经填充了枚举的实例,这些实例被设置为它们的默认值.
我想知道是否可以通过类实现相同类型的功能,以便调用如下:
myClass[] myClassArray = new myClass[25];
Run Code Online (Sandbox Code Playgroud)
将生成一个myClass对象数组,它们只是该类的空构造函数的实例.
假设我有一个被调用ParentClass的类和一个被调用的类ChildClass
它ParentClass是抽象的,并ChildClass扩展了ParentClass每个Java术语.此外,它ParentClass有一个构造函数,它以int一个参数为参数.现在在另一个类中我想实例化ChildClass.我尝试了以下两种方式:
ChildClass obj1 = new ChildClass(5)ParentClass obj2 = new ChildClass(5)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
我去采访了.采访者问我是否可以实例化一个接口和抽象类?据我所知,我说"不".但他说"是的,我们可以借助匿名课程".
你能告诉我怎么样吗?
我创建了一个C++程序和类,并计划将其编译到库中.我找到了几个网站,解释了如何创建和使用包装器来访问C++类方法.
我的环境是IAR EWARM,在我的情况下我需要使用标准C.要创建类实例化对象,我使用(或将需要使用)运算符"new",即对于类"scrnDev":bLink1 = new(scrnDev) );
我一直在寻找有关如何使用C程序中的"new"运算符实例化对象的信息,但无法找到如何实现这一点.
我有一个这样的名字列表:
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循环)?
instantiation ×10
java ×5
c# ×2
c++ ×2
class ×2
arrays ×1
c ×1
constructor ×1
inheritance ×1
python ×1
python-3.x ×1
reflection ×1
string ×1
subclass ×1
templates ×1