Tag: 静态

Java中的静态嵌套类,为什么?

我正在查看LinkedList的Java代码,并注意到它使用了静态嵌套类Entry 。 public class LinkedList<E> … { … private static class Entry<E> { … } } 什么是使用静态嵌套类,而不是一个正常的内部类的原因是什么? 我能想到的唯一原因是Entry不能访问实例variables,所以从OOP的angular度来看,它具有更好的封装性。 但我想可能还有其他的原因,也许是performance。 它可能是什么? 注意。 我希望我已经得到了我的条款正确的,我会把它称为一个静态的内部类,但我认为这是错误的: http : //java.sun.com/docs/books/tutorial/java/javaOO/nested.html

从Java中的静态方法获取类名

如何从这个类的静态方法获得类的名字。 例如 public class MyClass { public static String getClassName() { String name = ????; // what goes here so the string "MyClass" is returned return name; } } 为了把它放在上下文中,我实际上希望返回类名作为exception中消息的一部分。

ReSharper警告:“genericstypes的静态字段”

public class EnumRouteConstraint<T> : IRouteConstraint where T : struct { private static readonly Lazy<HashSet<string>> _enumNames; // <– static EnumRouteConstraint() { if (!typeof(T).IsEnum) { throw new ArgumentException(Resources.Error.EnumRouteConstraint.FormatWith(typeof(T).FullName)); } string[] names = Enum.GetNames(typeof(T)); _enumNames = new Lazy<HashSet<string>>(() => new HashSet<string> ( names.Select(name => name), StringComparer.InvariantCultureIgnoreCase )); } public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, […]

Swift中的static func和class func有什么区别?

我可以在Swift库中看到这些定义: extension Bool : BooleanLiteralConvertible { static func convertFromBooleanLiteral(value: Bool) -> Bool } protocol BooleanLiteralConvertible { typealias BooleanLiteralType class func convertFromBooleanLiteral(value: BooleanLiteralType) -> Self } 定义为static func的成员函数与定义为class func的成员函数有什么区别? 简单地说static是用于结构体和枚举的静态函数,还是用于类和协议的类? 还有其他的区别吗? 在语法本身有这种区别的基本原理是什么?

stream体网站是否值得吗?

我正在制作一个网站,我正在试图决定是否应该让它变得stream畅。 固定宽度的网站制作起来要容易得多,而且更容易使它们显得一致。 说实话,我个人更喜欢看stream畅的网站,扩展到我的显示器的整个宽度。 我的问题来自于这样一个事实:在大多数现代浏览器中,您可以控制并滚动鼠标滚轮来调整任何网站的大小。 那么创build一个stream动的网站是否值得麻烦?

C ++静态常量string(类成员)

我想有一个类的私有静态常量(在这种情况下形状工厂)。 我想有这样的事情。 class A { private: static const string RECTANGLE = "rectangle"; } 不幸的是,我得到了来自C ++(g ++)编译器的各种错误,比如: ISO C ++禁止成员'RECTANGLE'的初始化 非整型types“std :: string”的静态数据成员的无效类内初始化 错误:使“RECTANGLE”静态 这告诉我这种会员devise不符合标准。 你怎么有一个私人文字常量(或者也许是公共的),而不必使用#定义指令(我想避免丑陋的数据全球性!) 任何帮助表示赞赏。 谢谢。

何时不使用Java中的static关键字?

什么时候在方法签名中使用Java中的static关键字被认为是不好的做法? 如果一个方法根据一些参数执行一个函数,并且不需要访问非静态的字段,那么你是否总是希望这些types的方法是静态的?

类模板中的静态成员初始化

我想这样做: template <typename T> struct S { … static double something_relevant = 1.5; }; 但是我不能,因为something_relevant不是整型。 它不依赖于T ,但是现有的代码依赖于它是S一个静态成员。 由于S是模板,我不能把定义放在编译的文件里面。 我如何解决这个问题?

静态和相对定位之间的区别

在CSS中,静态(默认)定位和相对定位有什么区别?

是否存在static_warning?

我意识到这个提到Boost的“STATIC WARNING”的问题,但是我想再问一次,具体地说,我该如何实现一个类似于static_assert的static_warning ,但是只在编译时发出警告 ,而不是中止编译错误。 我想要一些类似于Alexandrescu提出的在C ++之前的11天中静态断言的提议,它以某种方式设法打印一些有用的上下文信息作为错误的一部分。 要求用户启用某些标准的编译器警告才能使这种构造工作(也许是“无效的指针转换”或“打破严格的别名规则”) – 任何应该是正常编译的一部分的警告都是可以接受的使用。 总之,我想static_warning(false, "Hello world"); 创build一个编译器警告,应该以某种方式在警告消息中包含string“hello world”。 在GCC和MSVC中这是可能的,以及如何? 我乐意给予任何特别聪明的解决scheme一个小的奖励赏金。 作为一点解释:当我想到这个问题的时候,我得到了这个想法:静态警告将是一个有用的方式来跟踪复杂的模板特化,这是很难debugging的复杂模板特化。 静态警告可以用作编译器发出“我正在编译这部分代码”的简单信号灯。 更新。 理想情况下,警告将在以下设置中触发: template <typename T> struct Foo { static_warning(std::is_pointer<T>::value, "Attempting to use pointer type."); // … }; int main() { Foo<int> a; Foo<int*> b; }