Tag: 静态

在Java中的静态最终关键字

根据教程 : static修饰符与final修饰符一起也用于定义常量。 final修饰符表示这个字段的值不能改变。 只有涉及的types是原始的,我才会同意这一点。 对于引用types,例如一个Point2D类的实例,其位置属性不是final (即,我们可以改变它的位置),这类variables的属性如public static final Point2D A = new Point2D(x,y); 仍然可以改变。 这是真的?

@Autowired和静态方法

我有@Autowired服务,必须在静态方法中使用。 我知道这是错误的,但我不能改变目前的devise,因为它需要很多工作,所以我需要一些简单的黑客。 我不能改变randomMethod()是非静态的,我需要使用这个autowired bean。 任何线索如何做到这一点? @Service public class Foo { public int doStuff() { return 1; } } public class Boo { @Autowired Foo foo; public static void randomMethod() { foo.doStuff(); } }

为什么Java中的'Arrays'类的方法都是静态的?

我正在阅读Java文档,并且我了解到Java中的Arrays类中的方法都是静态的。 我真的不明白为什么他们把它变成静态的原因。 例如,下面的代码违反了面向对象的方法,因为如果我有一个types“X”,那么作用于它的所有方法应该在其中: int[] a = {34, 23, 12}; Arrays.sort(a); 如果他们实施了以下的方式会更好: int[] a = {34, 23, 12}; a.sort(); 任何人都可以解释一下吗?

在什么情况下静态方法是一个好的做法?

我已阅读以下讨论: 私人帮手方法应该是静态的,如果他们可以是静态的 , 如果所有的方法都没有成员variables,它们应该是静态的 一般人似乎都会接受静态方法,但对此有点怀疑,原因如下: 他们很难testing。 他们违反了OO原则。 (一个人说,他们是function,而不是方法。) 最可接受的静态方法是私有静态方法。 但是,为什么静态方法完全存在,在什么情况下它们是被优先采用的呢?

PowerMocktesting – 设置类的静态字段

我很难find一种方法来设置一个类的静态字段。 基本上是这样的: public class Foo{ // … private static B b = null; } B是另一类。 除了setInternalStateFromContext()之外,还有什么办法可以在PowerMock中做到这一点吗? 使用上下文类方法似乎有点矫枉过正设置一个领域。 谢谢。

链接时可以混合静态和共享对象库吗?

我有一个C项目,生成十个可执行文件,我想要静态链接所有这些文件。 我面临的问题是,其中一个可执行文件使用第三方库,其中只有共享对象版本可用。 如果我将-static标志传递给gcc,ld会报错,说找不到问题的库(我认为它正在寻找.a版本),并且不会build立可执行文件。 理想情况下,如果找不到静态库,我希望能够告诉“ld”尽可能静态地链接到共享对象库。 在interium我尝试了一些像gcc -static -lib1 -lib2 -shared -lib3rdparty foo.c -o foo.exe ,希望“ld”能够在lib1和lib2中静态链接,但只对lib3rdparty有运行时依赖。 不幸的是,这没有按照我的意图工作。 而是-shared标志覆盖了-static标志,所有东西都被编译为共享对象。 是静态链接一个或多或less的交易,还是有一些方法,我可以混合和匹配?

为什么Scala在一个类中没有静态成员?

我知道你可以 间接定义它们 实现与伴侣对象类似的东西 ,但我想知道为什么作为一个语言devise是从类定义退出静态。

Python类的静态方法

我想创build一种工具类,它只包含静态方法,可以通过名称类前缀调用。 看起来我做错了什么:) 这是我的小class class FileUtility(): @staticmethod def GetFileSize(self, fullName): fileSize = os.path.getsize(fullName) return fileSize @staticmethod def GetFilePath(self, fullName): filePath = os.path.abspath(fullName) return filePath 现在我的“主要”方法: from FileUtility import * def main(): path = 'C:\config_file_list.txt' dir = FileUtility.GetFilePath(path) print dir 和我得到一个错误: unbound method GetFilePath() must be called with FileUtility instance as first argument (got str instance instead) […]

静态方法和实例方法之间的区别

我正在阅读教材中给我的文字,我不太确定我明白这是什么意思。 这基本上告诉我,静态方法或类方法包括“修饰符”关键字静态。 但我真的不知道这是什么意思? 有人能请真正简单的解释静态或类方法是什么? 另外,我可以得到一个简单的解释什么样的实例方法? 这是他们在教科书中给我的: 存在或不存在静态修饰符有重要的实际意义。 一旦Java处理了它所属类的定义,就可以调用和执行公共类方法。 实例方法不是这种情况。 在公共实例方法可能被调用和执行之前,必须为其所属的类创build一个实例。 要使用公共类方法,您只需要该类。 另一方面,在你使用公共实例方法之前,你必须有一个类的实例。 在另一个方法的定义中调用静态方法的方式根据两个方法是否属于同一个类而不同。 在上面的例子中,factorial和main都是MainClass类的两个方法。 因此,在main定义中调用阶乘仅仅引用方法名“factorial”。

为什么要以静态方式访问静态字段?

public enum MyUnits { MILLSECONDS(1, "milliseconds"), SECONDS(2, "seconds"),MINUTES(3,"minutes"), HOURS(4, "hours"); private MyUnits(int quantity, String units) { this.quantity = quantity; this.units = units; } private int quantity; private String units; public String toString() { return (quantity + " " + units); } public static void main(String[] args) { for (MyUnits m : MyUnits.values()) { System.out.println(m.MILLSECONDS); System.out.println(m.SECONDS); […]