我有一个辅助类与一些静态function。 类中的所有函数都需要一个“繁重的”初始化函数来运行一次(就像它是一个构造函数一样)。 有没有一个很好的做法,实现这一目标? 我唯一想到的就是调用一个init函数,如果它已经运行一次(使用静态的$initializedvariables),就会中断它的stream程。 问题是我需要在每个类的函数上调用它。
public class A { private static final int x; public A() { x = 5; } } final意味着variables只能被赋值一次(在构造函数中)。 static意味着它是一个类实例。 我看不出为什么这是禁止的。 这些关键字在哪里互相干扰?
我已经放弃了所有能够在PHP中重载我的构造函数的希望,所以我真正想知道的是为什么 。 有甚么理由呢? 它创build固有的错误代码? 是不是被广泛接受的语言devise不允许它,或者比PHP更好的其他语言?
我想检查一个在运行时已知的types是否提供了一个无参数的构造函数。 Type类没有产生任何有希望的东西,所以我假设我必须使用reflection?
我想在我的ListActivity的构造函数中传递一些variables 我通过这个代码开始活动: startActivity(new Intent (this, viewContacts.class)); 我想使用类似的代码,但要传递两个string的构造函数。 怎么可能?
我只是意识到一些疯狂的东西,我认为这是完全不可能的:当反序列化一个对象时, DataContractSerializer不会调用构造函数 ! 以这个class级为例: [DataContract] public class Book { public Book() { // breakpoint here } [DataMember(Order = 0)] public string Title { get; set; } [DataMember(Order = 1)] public string Author { get; set; } [DataMember(Order = 2)] public string Summary { get; set; } } 当我反序列化这个类的一个对象时,断点不会被打中。 我完全不知道它是如何可能的,因为它是这个对象的唯一构造函数! 我认为,也许由于DataContract属性,编译器生成了一个额外的构造函数,但我无法通过reflectionfind它… 所以,我想知道的是:如何创build我的类的实例,而不需要调用构造函数? 注:我知道,我可以使用OnDeserializing属性来初始化我的对象,当反序列化开始时,这不是我的问题的主题。
在斯卡拉2.8是否有一种方法来重载一个case类的构造函数? 如果是的话,请把一个片段解释一下,如果没有,请解释为什么?
有没有解决如何创build静态类的构造函数? 我需要在初始化类时加载一些数据,但是我只需要一个对象。
有几个类似的话题,但我找不到一个有足够的答案。 我想知道在Java中构造函数重载的最佳做法是什么。 我对这个问题已经有了自己的想法,但是我想听听更多的build议。 我指的是构造函数重载在一个简单的类和构造函数重载,而inheritance已经重载的类(意味着基类重载构造函数)。 谢谢 :)
为什么复制构造函数必须通过引用传递参数?