草庐IT

static-assert

全部标签

java - 通俗地说,Java 中的 'static' 是什么意思?

这个问题在这里已经有了答案:Whatdoesthe'static'keyworddoinaclass?(22个回答)关闭5年前。我在Wikipedia上看到了它的几个定义,但作为Java的初学者,我仍然不确定它的含义。有人精通Java吗? 最佳答案 static表示标记为此类的变量或方法在类级别可用。换句话说,您无需创建该类的实例即可访问它。publicclassFoo{publicstaticvoiddoStuff(){//doesstuff}}所以,与其创建Foo的实例,然后像这样调用doStuff:Foof=newFoo();

java - Java 修饰符(abstract、final、public、static 等)的合理顺序是什么?

Java修饰符的合理顺序是什么?摘要最终原生私有(private)的protected公开静态strictfp同步transient易变更新我已将措辞从推荐更改为合理,以平息是否推荐订单的讨论。 最佳答案 JavaLanguageSpecification中提到了修饰符的习惯使用顺序。(而不是Java虚拟机规范)例如对于classmodifiers你会发现以下定义(摘录):ClassModifiers:ClassModifierClassModifiersClassModifierClassModifier:oneofAnnotat

java - 如何断言大于使用 JUnit Assert?

我有这些值来自测试previousTokenValues[1]="1378994409108"currentTokenValues[1]="1378994416509"我试试//currenttimestampisgreaterassertTrue(Long.parseLong(previousTokenValues[1])>Long.parseLong(currentTokenValues[1]));我在调试时得到java.lang.AssertionError和detailMessage是null。如何在使用JUnit时断言大于条件 最佳答案

java - 为什么我们将 Loggers 声明为 static final?

在Java中,为什么最好声明一个记录器staticfinal?privatestaticfinalLoggerS_LOGGER 最佳答案 private-这样没有其他类可以劫持您的记录器static-因此每个类只有一个记录器实例,同时也避免尝试序列化记录器final-在类的生命周期内无需更改记录器另外,我更喜欢名称log尽可能简单,但具有描述性。编辑:但是,这些规则有一个有趣的异常(exception):protectedfinalLoggerlog=LoggerFactory.getLogger(getClass());相对于:p

java - 'public static void' 在 Java 中是什么意思?

publicstaticvoid在Java中是什么意思?我正在学习中。在本书的所有示例中,我使用publicstaticvoid工作的所有示例都出现在任何正在使用或创建的方法之前。这是什么意思? 最佳答案 这是三个完全不同的东西:public表示该方法是可见的,可以从其他类型的其他对象中调用。其他替代方案是private、protected、package和package-private。见here了解更多详情。static表示该方法与该类相关联,而不是该类的特定实例(对象)。这意味着您可以在不创建类的对象的情况下调用静态方法。vo

java - 警告 : The method assertEquals from the type Assert is deprecated

由于方法Assert.assertEquals已被弃用,我们现在应该使用哪种方法?以下代码:Stringarg1="test";Stringarg2="me";Assert.assertEquals(arg1,arg2);给出以下警告:MultiplemarkersatthislineThemethodassertEquals(String,String)fromthetypeAssertisdeprecatedThetypeAssertisdeprecated 最佳答案 您正在使用junit.framework.Assert而不是

java - : The serializable class does not declare a static final serialVersionUID field?是什么意思

这个问题在这里已经有了答案:WhatisaserialVersionUIDandwhyshouldIuseit?(25个回答)关闭4年前。我有标题中给出的警告信息。我想了解并删除它。我已经找到了关于这个问题的一些答案,但由于技术术语过多,我不理解这些答案。能不能用简单的话来解释这个问题?附:我知道OOP是什么。我知道什么是对象、类、方法、字段和实例化。附言如果有人需要我的代码,就在这里:importjava.awt.*;importjavax.swing.*;publicclassHelloWorldSwingextendsJFrame{JTextAream_resultArea=ne

c++ - 如何完全禁用对 assert() 的调用?

我的代码充满了对assert(condition)的调用。在调试版本中,我使用g++-g来触发我的断言。出乎意料的是,在我的发布版本中也触发了相同的断言,即编译时没有-g选项。如何在编译时完全禁用我的断言?我是否应该在我生成的任何构建中明确定义NDEBUG,无论它们是调试、发布还是其他任何东西? 最佳答案 您必须#defineNDEBUG(或使用标志-DNDEBUG和g++)这将禁用断言,只要它在包含断言头文件。 关于c++-如何完全禁用对assert()的调用?,我们在StackOve

c++ - 带有 boost::shared_ptr 的 static_cast?

static_cast与boost::shared_ptr的等价物是什么?也就是说,我要如何重写下面的内容Base*b=newDerived();Derived*d=static_cast(b);当使用shared_ptr时?boost::shared_ptrb(newDerived());boost::shared_ptrd=??? 最佳答案 使用boost::static_pointer_cast:boost::shared_ptrb(newDerived());boost::shared_ptrd=boost::static_

c++ - 在 C++ 中使用 assert() 是不好的做法吗?

我倾向于在我的C++代码中添加大量断言,以便在不影响发布版本的性能的情况下更轻松地进行调试。现在,assert是一个纯C宏,设计时没有考虑C++机制。另一方面,C++定义了std::logic_error,这是为了在程序逻辑中出现错误的情况下抛出(因此得名)。抛出一个实例可能只是assert的完美、更C++的替代方案。问题是assert和abort都立即终止程序而不调用析构函数,因此跳过了清理,而手动抛出异常会增加不必要的运行时成本。解决这个问题的一种方法是创建一个自己的断言宏SAFE_ASSERT,它的工作方式与C对应项一样,但在失败时抛出异常。关于这个问题,我能想到三种意见:坚持C