小编dav*_*ooh的帖子

从Java中的父类复制字段

我有一个关于Java类字段的问题.

我有两个Java类:Parent和Child

class Parent{
    private int a;
    private boolean b;
    private long c;

    // Setters and Getters
    .....
}


class Child extends Parent {
    private int d;
    private float e;

    // Setters and Getters
    .....
}
Run Code Online (Sandbox Code Playgroud)

现在我有了一个Parent类的实例.有没有办法创建Child类的实例并复制父类的所有字段而不是逐个调用setter?

我不想这样做:

   Child child = new Child();
   child.setA(parent.getA());
   child.setB(parent.getB());
   ......
Run Code Online (Sandbox Code Playgroud)

此外,Parent没有自定义构造函数,我无法在其上添加构造函数.

请给你意见.

非常感谢.

java inheritance

15
推荐指数
3
解决办法
9513
查看次数

具有有限元素的FIFO映射

我需要a HashMap或simpy a Map,其中固定数量的元素(n)像FIFO队列一样工作.

因此,在元素编号<= n之前,新元素只需放入地图中.

对于元素编号> n,将删除第一个插入的元素,并将最新的元素放入地图中.

Java中有类似的东西,还是我必须实现它?

java queue collections map fifo

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

不可变对象和Spring/Spring MVC:正确的选择?

我通常尝试将我的类设计为不可变类,因此我在编码压力方面有很多优点.

但是在使用Spring时,我有时会注意到框架在大多数情况下"劝阻"这种设计,而不是经典的JavaBeans设计:默认构造函数+ getter/setter.

我真的不喜欢JavaBean设计的对象,因为他们疯狂的可变性.所以我想知道我是否遗漏了一些东西......

我尽量让我的课程设计尽可能优雅和可重复使用,但是框架需要改变这种设计或允许它以困难的方式...

这有什么问题?

java spring spring-mvc

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

为什么我们需要Java中的默认方法?

我看看Java 8新闻与7相比,除了lambdas或新时间框架之类的非常有趣的东西,我发现引入了一个新功能(?):默认方法.

我在本文中找到了以下示例:

public interface Math {

    int add(int a, int b);

    default int multiply(int a, int b) {
        return a * b;
    }
}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很奇怪.上面的代码看起来像一个abstract带有实现方法的类.那么,为什么要在接口中引入默认方法呢?这种方法的实际优势是什么?

在同一篇文章中,我读到了这个解释:

为什么要在接口中添加方法?我们之所以这是因为接口与它们的实现类太紧密耦合了.即,在不破坏实现者类的情况下,无法在接口中添加方法.在接口中添加方法后,其实现的所有类必须声明此新方法的方法体.

嗯,这根本不能说服我.恕我直言我相信,当一个类实现一个接口时,必须为其中的每个方法声明方法体.这肯定是一个约束,但它也证实了它的"本质"(如果你明白我的意思......)

如果你对每个继承类都有共同的逻辑,那么你将把它放到一个实现abstract类中.

那么,默认方法的真正优势是什么?(看起来更像是一种解决方法,而不是新功能...)


更新 我理解这种方法是为了向后兼容,但它仍然不能让我这么说服.接口表示类必须具有的行为.所以实现某个接口的类肯定会有这种行为.但是,如果有人可以随意更改界面,则此约束会被破坏.行为可以随时改变......我错了吗?

java programming-languages java-8

13
推荐指数
2
解决办法
1387
查看次数

评论整个文件

有时,我需要注释掉整个文件.通常情况下,我只是将类包装进去/* */,但如果类中已存在注释,那么这不起作用:

/*
class foo {

    /**
     * Great documentation - but this breaks my 
     * whole-file-comment!
     */
    public void dooFoo() {
    }

}
*/
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题?最好不要//在每一行插入评论.

c# java comments coding-style

12
推荐指数
2
解决办法
2557
查看次数

spring-config中的auto-config = true有什么用?

spring-config中的auto-config = true有什么用?在哪种情况下我们应该使用它.使用auto-config = true的实际用途是什么?

java spring spring-security

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

String.Replace(char,char)还是Replace(string,string)?

当我只需要用另一个字符替换一个字符时,String.Replace(char,char)和String.Replace(字符串,字符串)之间是否存在性能差异?

.net c# string performance

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

如何阻止Callable提交给ExecutorService?

我正在尝试实现一个示例应用程序来测试CallableExecutorService接口.

在我的应用程序中,我声明:

ExecutorService exSvc = Executors.newSingleThreadExecutor();
Run Code Online (Sandbox Code Playgroud)

然后:

Future<Integer> test = exSvc.submit(
    new Callable<Integer>() {
        public Integer call() {
            for(int i = 0; i < 1000; i++){
                System.out.println(i);
            }
            return 1;
        }
    });
Run Code Online (Sandbox Code Playgroud)

现在我试图在它终止之前停止该过程,我正在使用exSvc.shutdownNow()但它不起作用.

为了优雅地停止经典,Thread我通常使用某种条件变量.这是一种常见的跟进方法ExecutorService

java multithreading

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

Spring MVC的动态表单和数据绑定

在我的Spring MVC应用程序中,我需要实现一个动态的问卷形式:我有N个问题,每个我都有3个选项.

所以在我的页面中我会有这样的东西:

|    Question 1   |   1   |   2   |   3   |
|    Question 2   |   1   |   2   |   3   |
|    Question 3   |   1   |   2   |   3   |
|    ...          |   1   |   2   |   3   |
|    Question N   |   1   |   2   |   3   |
Run Code Online (Sandbox Code Playgroud)

问题存储在数据库中,对于我将使用单选按钮的选项.我将使用forEach标签来修改动态行,但我不知道如何ModelAttribute在这种情况下发布数据和处理绑定...

对于我的模型属性类,这可能是一个很好的结构?是否可以在Spring MVC中使用动态形式的绑定?

java spring spring-mvc model-binding modelattribute

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

servlet容器和弹簧容器有什么区别?

servlet容器和弹簧容器的作用和责任是什么?请有人澄清我的疑虑.

java spring servlets

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