小编Rae*_*ald的帖子

何时在String文字上使用intern()

我看到很多这样的遗留代码:

class A {
    public static final String CONSTANT = "value".intern();
    ...
}
Run Code Online (Sandbox Code Playgroud)

我没有看到intern()的任何原因,因为在Javadoc中可以读取:"所有文字字符串和字符串值常量表达式都被实现." 是否有一些这样的意图,也许是在过去的语言修订版中?

java string string-interning

38
推荐指数
3
解决办法
5407
查看次数

如何使用capybara + cucumber在ruby中断言html表行的数量

我正在尝试使用黄瓜+水豚来处理Ruby中的BDD Web开发,我仍然坚持应该是一个简单的任务 - 只是为了检查表中的行数.我想要实现的目的是:

page.should have_xpath("//table[@id='myTable']")
find("//table[@id='myTable']/tr").length.should == 3
Run Code Online (Sandbox Code Playgroud)

但这不起作用(缺少方法长度),我找不到一种方法来断言表长度.

任何想法任何人(请对我很轻松'我是一个红宝石nooby)

提前致谢

尼尔

ruby cucumber capybara

38
推荐指数
4
解决办法
2万
查看次数

是否有充分的理由为抽象类的公共构造函数

通过直接调用abstract类的构造函数来创建对象是不可能的.abstract只能从派生类中调用类的构造函数.因此,在我看来,抽象类的构造函数必须是或者是protected私有的(后者用于限制将构造函数用于包中的派生类的异常情况).然而,Java允许abstract类的构造函数public.

有没有在它是任何情况下有用申报的构造函数abstract的类要public,而不是protected或包专用?

这与" 抽象类构造函数访问修饰符 " 这个问题并不完全相同:显然你可以声明一个构造函数public; 我想知道是否有过任何好的理由这样做.在我看来,没有.我看到C#具有类似的特性.

java constructor abstract-class

38
推荐指数
1
解决办法
6879
查看次数

为什么C++标准算法"count"会返回difference_type而不是size_t?

为什么的返回类型std::countdifference_type迭代器(通常是的ptrdiff_t).

由于计数永远不会是负数,size_t 技术上不是正确的选择吗?如果计数超出ptrdiff_t阵列理论上可能的大小范围,该size_t怎么办?


编辑:到目前为止,没有合适的答案为什么函数返回ptrdiff_t.从下面的答案中得到的一些解释是返回类型iterator_traits<InputIterator>::difference_type是通用的,可以是任何东西.直到那时它才有意义.有些情况下,计数可能会超过size_t.但是,为什么返回类型是typedef ptrdiff_t iterator_traits<InputIterator>::difference_type标准迭代器而不是为什么仍然没有意义typedef size_t iterator_traits<InputIterator>::difference_type.

c++ std

38
推荐指数
4
解决办法
3103
查看次数

如何计算数组的中位数?

我正在尝试计算由文本字段接收的输入填充的数组的总数,平均值和中位数.我已经设法计算出总数和均值,我只是无法得到中位数.我认为在我能做到这一点之前需要对数组进行排序,但我不知道如何做到这一点.这是问题,还是有另一个我没找到的?这是我的代码:

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;

public class whileloopq extends Applet implements ActionListener
{
    Label label;
    TextField input;
    int num;
    int index;
    int[] numArray = new int[20];
    int sum;
    int total;
    double avg;
    int median;



    public void init ()
    {
        label = new Label("Enter numbers");
        input = new TextField(5);
        add(label);
        add(input);
        input.addActionListener(this);
        index = 0;
    }

    public void actionPerformed (ActionEvent ev)
    {
        int num = Integer.parseInt(input.getText());
        numArray[index] = num;
        index++;
        if (index == 20)
        input.setEnabled(false);
            input.setText("");
        sum …
Run Code Online (Sandbox Code Playgroud)

java arrays

38
推荐指数
4
解决办法
17万
查看次数

在找不到REST资源时返回404是否正确?

假设我有一个简单的Jersey REST资源,如下所示:

@Path("/foos")
public class MyRestlet
        extends BaseRestlet
{

    @GET
    @Path("/{fooId}")
    @Produces(MediaType.APPLICATION_XML)
    public Response getFoo(@PathParam("fooId") final String fooId)
            throws IOException, ParseException
    {
        final Foo foo = fooService.getFoo(fooId);

        if (foo != null)
        {
            return Response.status(Response.Status.OK).entity(foo).build();
        }
        else
        {
            return Response.status(Response.Status.NOT_FOUND).build();
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

基于上面的代码,返回NOT_FOUNDstatus(404),或者我应该返回204,还是其他一些更合适的代码是正确的吗?

提前谢谢了!

rest http-status-codes

38
推荐指数
3
解决办法
6万
查看次数

破坏者可能是最终的吗?

C++标准是否允许将析构函数声明为final?像这样:

 class Derived: public Base
 {
      ...
      virtual ~Derived() final;
 }
Run Code Online (Sandbox Code Playgroud)

如果是这样,那是否会阻止派生类的声明:

 class FurtherDerived: public Derived {// allowed?
 }
Run Code Online (Sandbox Code Playgroud)

如果允许的,是一个编译器可能会发出警告?声明析构函数是final一个可行的习惯用法,用于表明某个类不打算用作基类?

(在最终的基类中,没有必要这样做,只有派生类.)

c++ inheritance destructor c++11

38
推荐指数
1
解决办法
3450
查看次数

我们什么时候应该创建自己的java异常类?

从一个好的设计/实践的角度来看,我们何时应该创建和使用自定义java异常类而不是已经在java中预定义的异常类?

在某些应用程序中,我几乎看不到,甚至没有创建自定义异常类,他们总是努力使用本机java异常.另一方面,有一些应用程序为所有内容定义自定义异常.

什么是最佳做法?

谢谢!

java api-design exception class

37
推荐指数
3
解决办法
2万
查看次数

当n为偶数时针对x ^ n优化的递归方法

我需要编写一个使用Java的递归方法,称为power,它接受一个双x和一个整数n并返回x ^ n.这是我到目前为止所拥有的.

public static double power(double x, int n) {
    if (n == 0)
        return 1;
    if (n == 1)
        return x;
    else
        return x * (power(x, n-1));

}
Run Code Online (Sandbox Code Playgroud)

此代码按预期工作.但是,我正在努力加倍努力并执行以下可选练习:

"可选挑战:当n为偶数时,你可以使用x ^ n =(x ^(n/2))^ 2来提高这种方法的效率."

当n是偶数时,我不确定如何实现最后一个公式.我不认为我可以使用递归.我试图实现以下内容,但它也不起作用,因为我不能把一个双倍的功能.

if (n%2 == 0)
        return (x^(n/2))^2;
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?我觉得我错过了一些明显的东西.所有帮助赞赏.

java recursion exponentiation

37
推荐指数
5
解决办法
6841
查看次数

更改循环变量类型时,Java For循环更改数值结果

我写了一个用Leibniz公式计算PI数的程序:

[莱布尼茨公式]

我写了一个for循环,初始化类型为"int",循环工作正常,但是当我将初始化类型更改为"long"时,结果会发生变化.这仅在循环时间超过十亿时才会发生.这使得"int-loop"计算PI比"长循环"更准确.我不知道为什么会这样.请帮我理解这个问题.谢谢!这是我的代码.

public static void main(String[] args) {
    double result1 = 0;
    double result2 = 0;
    double sign = 1;

    for (int i = 0; i <= 1607702095; i++) {
        result1 += sign/(2 * i + 1);
        sign *= -1;
    }
    sign = 1;

    for (long j = 0; j <= 1607702095; j++) {
        result2 += sign/(2 * j + 1);
        sign *= -1;
    }

    System.out.println("result1  " + result1 * 4);
    System.out.println("result2  " + result2 * 4);
    System.out.println("pi       " …
Run Code Online (Sandbox Code Playgroud)

java numeric

37
推荐指数
5
解决办法
2087
查看次数