小编Hee*_*jin的帖子

关于静态方法的Java编码约定

这是一个非常简单的问题,但我认为这有点争议.

当我编写Java类时,我使用以下顺序.

class Foo {

    // static fields
    // instance fields
    // constructors
    // methods (non-static and static methods are mixed but sorted based on their functionalities)
}
Run Code Online (Sandbox Code Playgroud)

我读了一篇文章说:(
来自http://code.google.com/webtoolkit/makinggwtbetter.html#codestyle)

Java类型应具有以下成员顺序:

嵌套类型(混合内部类和静态类是可以的)
静态字段
静态初始化器
静态方法
实例字段
实例初始化器
构造函数
实例方法

如果我按照文章,上面的顺序应该是

class Foo {

    // static fields
    // static methods
    // instance fields
    // constructors
    // instance methods
}
Run Code Online (Sandbox Code Playgroud)

在后者的情况下,我在构造函数之前使用某些方法感到不舒服.哪一个是更广泛使用的惯例?

java convention coding-style

11
推荐指数
2
解决办法
1万
查看次数

是否会在编译时优化局部变量的一次性使用?

double calcTaxAmount() {
    double price = getA() * getB() + getC();
    double taxRate = getD() + getE();
    return price * taxRate;
}
Run Code Online (Sandbox Code Playgroud)

上述功能计算纳税金额.

通过调用其他一些功能来计算价格和费率.

我介绍了两个局部变量price和taxRate来提高代码的可读性,因此两者都只使用一次.在大多数现代编译器的编译时,这些"一次性"局部变量是否会被替换和内联?

c++ java compiler-construction optimization

7
推荐指数
1
解决办法
677
查看次数

这是如何工作的:在Python中打印(sum(int(x)for x in raw_input().split()))

我是Python的新手,我对以下代码行感到惊讶.

print (sum(int(x) for x in raw_input().split()))
Run Code Online (Sandbox Code Playgroud)

我无法理解我的Java大脑里面发生了什么,特别是x从for循环传递给int()的方式.

python

4
推荐指数
1
解决办法
7370
查看次数

使用trigger()进行重复事件处理是不好的做法吗?

我经常使用jQuery .trigger()来处理重复事件.

例如,如果我有一个具有四个导航按钮的小部件(向上,向下,向左,向右),并且每个按钮上都绑定了一个事件处理程序,如:

$('#up').on('click', function() {
    // move up
    ...
});
Run Code Online (Sandbox Code Playgroud)

到目前为止,小部件运行良好,现在我想添加键盘快捷键,up/down/left/right arrow key使每个按钮的工作方式与up/down/left/right button按下时完全相同.

在这种情况下,我经常使用.trigger()键盘快捷键作为这些按钮的包装.

$(document).on('keydown', function(e) {
    // up arrow key
    if (e.keyCode == 38) $('#up').trigger('click');
    ...
});
Run Code Online (Sandbox Code Playgroud)

这样使用是不好的做法.trigger()吗?

我认为将图书馆作为黑匣子处理时非常方便.如果已经有一些按钮来帮助控制库,我可以通过触发这些按钮上的点击事件来使用库的功能,即使不知道库的API.

javascript jquery

3
推荐指数
1
解决办法
676
查看次数

jQuery:对话框没有正确打开第二次

我创建了一个jQuery对话框.下面是我创建它的Ajax函数.

$.ajax({
    url: "/StaffManageCertifications/GetExamCodesAndCategory/",
    type: "Post",
    datatype: "html",
    success: function (data) {
        debugger;
        $('#divExamCodesCategory').html(data);
        $("#divExamCodesCategory").dialog({
            autoOpen: false,
            width: 700,
            height: 610,
            modal: true,
            resizable: false,
            draggable: true,
            title: 'Add Exam Code/Category'
        });
        $("#divExamCodesCategory").dialog("open");
        $('a.ui-dialog-titlebar-close').remove();
        $('#divProcessImage').css({
            "display": "none"
        });
    },
    error: function (req, status, error) {
        ErrorMessageStaff(req.responseText);
        $('#screen').css({
            "display": "block",
            "width": "",
            "height": ""
        });
        $('#divProcessImage').css({
            "display": "none"
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

现在,我在div = divExamCodesCategory上放置了两个按钮(Ok和Cancel).

并且在我关闭它时,每次都在代码行下面写下来销毁这个对话框.

$("#divExamCodesCategory").dialog("destroy");
Run Code Online (Sandbox Code Playgroud)

现在,当我第二次打开它时,第一次点击 - 它没有显示对话框.在第二次点击时 - 它确实显示对话但没有数据.空对话框.

此外,它不是在屏幕的中心.它下降到屏幕的底部.下面是此对话框的位置样式.

.ui-dialog {
    padding: 0em !important;
    position: fixed !important;
} …
Run Code Online (Sandbox Code Playgroud)

jquery

2
推荐指数
1
解决办法
5960
查看次数

更好的避免施法的方法?

我有界面Foo

public interface Foo {
    public void test();
}
Run Code Online (Sandbox Code Playgroud)

类FooChild实现了接口Foo.

public class FooChild implements Foo {

    @Override
    public void test() {...}

    public void test2() {...}
}
Run Code Online (Sandbox Code Playgroud)

我必须在代码中的某个地方调用函数test2.

Foo f = new FooChild();
((FooChild) f).test2();
Run Code Online (Sandbox Code Playgroud)

我真的很讨厌将类接口转换为类.

所以我添加了另一个界面栏.

public interface Bar extends Foo {
    public void test2();
}

public class FooChild implements Bar {

    @Override
    public void test() {...}

    @Override
    public void test2() {...}
}
Run Code Online (Sandbox Code Playgroud)

现在我将test2()调用为接口而不是类.

Foo f = new FooChild();
((Bar) f).test2();
Run Code Online (Sandbox Code Playgroud)

我可以将函数test2添加到接口Foo,但实现Foo的类太多了.

如果我添加该函数,我必须向所有实现Foo的类添加代码.

虽然我可以这样做,但实际上我没有编辑Foo的权限.

有没有更好的方法来解决这个问题?(希望没有铸造)

编辑:f作为方法参数传递.

正如乔恩所说,我应该更加具体.对困惑感到抱歉.

public void doSomething(Foo …
Run Code Online (Sandbox Code Playgroud)

java inheritance implementation casting interface

1
推荐指数
2
解决办法
3128
查看次数

根据键盘输入返回值?

如果用户键入"C",我只想输出为12.0,输入"H"就相同.问题是输入存储为字符串正确吗?我试图通过Double.parseDouble将字符串转换为double


import java.util.Scanner;

public class Elements {

    Scanner input=new Scanner(System.in);   
    public static final double H = 1.0; 
    public static final double Li = 6.9;
    public static final double Be = 9;
    public static final double B = 10.8;
    public static final double C = 12.0;

    public double output() {
        return C ; // I want the user to choose the variable to return
    }
}
Run Code Online (Sandbox Code Playgroud)

java input

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

jQuery儿童方法选择孙子

我正在关注jQuery上的net.tuts教程.我有jQuery儿童选择方法的问题.我对以下函数的理解我可以改变孩子们的颜色但是它会超过一个级别以将所有列表元素的颜色更改为红色.我做错了什么?我已经看到相同的脚本在视频教程上工作正常.这是代码

<ul class="color_change">
    <li>Item 1</li>
    <li>Item 2</li>
    <li> 
        <ul>
            <li>sub item</li>
            <li>sub item</li>
        </ul>
    </li>
</ul>

<script>
    $('ul.color_change').children('li').css('color','red');
</script>`
Run Code Online (Sandbox Code Playgroud)

jquery children

0
推荐指数
1
解决办法
798
查看次数