Tag: 静态

如何调用一个空引用(静态)方法不会抛出NullPointerException?

我用Java编写了这个程序 public class Why { public static void test() { System.out.println("Passed"); } public static void main(String[] args) { Why NULL = null; NULL.test(); } } 我读到,调用null对象上的方法导致NullPointerException ,但上述程序不? 为什么是这样? 我不正确地理解一些东西吗?

Python中的实例variables与类variables

我有Python类,其中我只需要在运行时的一个实例,所以每个类只有一个属性,而不是每个实例只是一个属性。 如果将有多个实例(这不会发生),则所有实例都应具有相同的configuration。 我不知道以下哪个选项会更好或者更“惯用”Python。 类variables: class MyController(Controller): path = "something/" children = [AController, BController] def action(self, request): pass 实例variables: class MyController(Controller): def __init__(self): self.path = "something/" self.children = [AController, BController] def action(self, request): pass

静态variables初始化顺序

C ++保证编译单元(.cpp文件)中的variables按照声明的顺序进行初始化。 对于编译单元的数量,这个规则分别适用于每一个(我是指类之外的静态variables)。 但是,variables初始化的顺序在不同的编译单元中是不确定的。 我在哪里可以看到关于gcc和MSVC的这个命令的一些解释(我知道依靠这是一个非常糟糕的主意 – 这只是为了理解我们在移植到新的GCC主要和不同的操作系统时可能会遇到的问题) ?

用术语来说,Java中的“静态”意味着什么?

我已经被告知了它的几个定义,看了维基百科,但作为Java的初学者,我还不确定这是什么意思。 任何人都可以stream利地使用Java和白痴?

Java中是否inheritance了静态方法?

我正在阅读Khalid Mughal 编写的Java™SCJPauthentication程序员指南 。 在inheritance章节中,它解释了这一点 成员的传承与他们宣称的可及性密切相关。 如果超类成员可以通过其子类中的简单名称访问(不使用任何额外的语法,如超级),该成员被视为inheritance 它还提到静态方法不被inheritance。 但下面的代码是完美的罚款: class A { public static void display() { System.out.println("Inside static method of superclass"); } } class B extends A { public void show() { // This works – accessing display() by its simple name – // meaning it is inherited according to the book. display(); } […]

新的自我与新的静态

我正在转换PHP 5.3库来处理PHP 5.2。 在我的方式站在主要的东西是使用晚静态绑定,如return new static($options); ,如果我转换这个return new self($options)我会得到相同的结果? new self和new static什么区别?

我可以将扩展方法添加到现有的静态类吗?

我是C#中扩展方法的粉丝,但没有成功添加扩展方法到静态类,如控制台。 例如,如果我想向控制台添加一个名为“WriteBlueLine”的扩展,那么我可以这样做: Console.WriteBlueLine("This text is blue"); 我试图通过添加一个本地的公共静态方法,作为一个“这个”参数的控制台…但没有骰子! public static class Helpers { public static void WriteBlueLine(this Console c, string text) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine(text); Console.ResetColor(); } } 这没有添加一个'WriteBlueLine'方法到控制台…我做错了吗? 或者要求不可能的?

静态类成员上未parsing的外部符号

很简单地说: 我有一个主要由静态公共成员组成的类,所以我可以将类似的函数组合在一起,而这些函数仍然需要从其他类/函数中调用。 无论如何,我已经在我的类的公共范围中定义了两个静态无符号字符,当我尝试在同一个类的构造函数中修改这些值时,编译时出现“未parsing的外部符号”错误。 class test { public: static unsigned char X; static unsigned char Y; … test(); }; test::test() { X = 1; Y = 2; } 我是C ++新手,所以对我来说很简单。 为什么我不能这样做?

C ++函数中静态variables的生命周期是什么?

如果一个variables在一个函数的作用域中被声明为static ,那么它只被初始化一次,并在函数调用之间保留它的值。 它的一生到底是什么? 它的构造函数和析构函数何时被调用? void foo() { static string plonk = "When will I die?"; } PS对于那些想知道我为什么问这个问题的人是否已经知道了答案?

为什么不通过Java编译器的错误实例调用静态方法?

我相信你们都知道我的意思 – 代码如: Thread thread = new Thread(); int activeCount = thread.activeCount(); 引发编译器警告。 为什么不是一个错误? 编辑: 要清楚:问题与Threads无关。 我认识到在讨论这个时候通常会给出Thread的例子,因为它们可能会把事情搞得一团糟。 但真正的问题是,这种用法总是无稽之谈,你不能(胜任)写这样一个电话,并指出它。 这种types的方法调用的任何例子都是无聊的。 这是另一个: String hello = "hello"; String number123AsString = hello.valueOf(123); 这看起来好像每个String实例都带有一个“String valueOf(int i)”方法。