一般来说,将私有类声明为静态是否有任何好处? 在哪些情况下,我想使用其中一个以下的其中一个? private static class Foo { … } VS private class Foo { … }
我喜欢c#,但为什么我可以这样做: public static bool Initialized { private set; get; } 或这个 : public static bool Initialized = false; 但不是在一条线上的混合? 我只需要设置访问级别我的variables(私人设置),我需要在启动时设置为false。 我不想让这个无聊的私人_Initializedvariables,这将由公共的初始化var的getter返回。 我喜欢我的代码是美丽的。 (注意:我的variables是静态的,不能在构造函数中初始化)。 谢谢
是否有可能在构造函数之外初始化静态常量值? 是否可以在发现成员声明的同一个地方初始化? class A { private: static const int a = 4; /*…*/ };
$count = 5; function get_count() { static $count = 0; return $count++; } echo $count; ++$count; echo get_count(); echo get_count(); 我猜测它输出5 0 1,这是正确的,但我需要一个更好的解释?
根据我对Java语言的理解,可以在static initialization block初始化静态variables。 然而,当我尝试在实践中实现这个( staticvariables也是final )时,我得到了下面屏幕截图中显示的错误。 截图可以直接访问http://i49.tinypic.com/5vxfn4.jpg (如果下面的图片是不可思议的小)。 http://i49.tinypic.com/5vxfn4.jpg
我的项目中有一些静态的util方法,其中一些只是传递或抛出exception。 这里有很多关于如何模拟一个返回types不是void的静态方法的例子。 但是,我怎样才能嘲笑一个静态方法返回无效只是“ doNothing() ”? 非void版本使用这些代码行: @PrepareForTest(StaticResource.class) … PowerMockito.mockStatic(StaticResource.class); … Mockito.when(StaticResource.getResource("string")).thenReturn("string"); 但是,如果应用于返回void的StaticResources ,则编译将会抱怨when(T)不适用于void … 有任何想法吗? 一个解决方法可能只是让所有静态方法返回一些Boolean成功,但我不喜欢解决方法。
我有这个: 一个保存类名的stringvariables( $classname ) 一个stringvariables与持有属性名称( $propertyname ) 我想从那个类中获得这个属性,问题是,属性是静态的,我不知道该怎么做。 如果财产不是静态的,那将是: $classname->$propertyname; 如果该属性是一种方法,我可以使用call_user_function call_user_func(array($classname, $propertyname)); 但就我而言,我刚刚输了。 然而,我希望这是可能的。 有了PHP的数以千计的function,他最好也有这个function。 也许我错过了什么? 谢谢! 编辑: 对于那些与eval()解决scheme:谢谢,但它是不可能的 对于那些获得_class _vars()解决scheme:谢谢,但它似乎返回“给定类的默认属性” (php.net),是的,我希望这个值是可变的(即使它帮助我在某些情况下)
我认为public或private static目标必须减less内存使用量,因为在内存中只有一个静态目标副本。 这似乎是因为一种方法是静态的,可能会使该方法成为CLR编译器进一步优化的一个潜在的点,超出了使用非静态函数的可能性。 只是一个脆弱的理论,所以我来问你们所有人。 static public或private方法提供了更多的性能优势,而不仅仅是减less内存使用量 (注意:我对那些谈论过早优化问题的反应并不感兴趣,当然这是我每天所遵循的合理build议,但这并不意味着有时候优化是不必要的(双重否定!)。让我放纵我的好奇心,至less)
我有一个nested static class如: package ab public class TopClass { public static class InnerClass { } } 我想用Class.forName()实例化,但它引发了一个ClassNotFoundException 。 Class.forName("abTopClass"); // Works fine. Class.forName("abTopClass.InnerClass"); // raises exception TopClass.InnerClass instance = new TopClass.InnerClass(); // works fine 我的代码有什么问题? 你做。
为什么C#没有像C这样的本地静态variables? 我想念那!