小编bra*_*orm的帖子

当对象是 Java 中的接口引用时的类型转换

我熟悉type castingin inheritance model.

SuperClass and SubClass是父子类;

SuperClass superClass = new SubClass(); -- 这里object实例化的是一个subclass object; 但它reference typeSuperClass;这仅仅是对那些methodsSuperClass可以在被调用subclass object; 任何methods不在inherited/overridden中的subclass都不能被调用(这是 的任何唯一methodssubclass)。

我观察到与上面相同的行为 ifSuperClass is an interfaceSubClass implements it。也就是说,只有在SuperClass interface中声明的方法才能在SubClass对象上调用。我的理解正确吗?但是对于一些casting,我可以调用methods它不是接口的一部分,我在下面的示例代码中观察到了这一点;

我已经对我的理解做了一些评论,它是如何工作的;但我想知道这是否有意义,或者我的解释是否错误;

class Animals {

     public void bark(){
         System.out.println("animal is barking"); …
Run Code Online (Sandbox Code Playgroud)

java inheritance casting interface

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

使用Java中的日历类获取月份的开始日期和月份的结束日期

给定一年零一个月; 我想要两个Date Objects.一个startDate月份,一个end Date月份.我在这里实现了它,它的工作原理.但这看起来太冗长了,我想知道是否有一个简洁的解决方案;

例如,2014年3月,开始日期为3月1日,结束日期为3月31日(Date objects精确到毫秒)

public setDates(int month,int year) {

        Calendar calendar = Calendar.getInstance();


        // Use the calendar to get the startDate and endDate of this Invoice.
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.MONTH,month);

        //set start date
        calendar.set(Calendar.DAY_OF_MONTH,
                     calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
        calendar.set(Calendar.HOUR_OF_DAY,
                     calendar.getActualMinimum(Calendar.HOUR_OF_DAY));
        calendar.set(Calendar.MINUTE,
                     calendar.getActualMinimum(Calendar.MINUTE));
        calendar.set(Calendar.SECOND,
                     calendar.getActualMinimum(Calendar.SECOND));
        calendar.set(Calendar.MILLISECOND,
                     calendar.getActualMinimum(Calendar.MILLISECOND));
        this.startDate = calendar.getTime();

        //endDate start date
        calendar.set(Calendar.DAY_OF_MONTH,
                     calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        calendar.set(Calendar.HOUR_OF_DAY,
                     calendar.getActualMaximum(Calendar.HOUR_OF_DAY));
        calendar.set(Calendar.MINUTE,
                     calendar.getActualMaximum(Calendar.MINUTE));
        calendar.set(Calendar.SECOND,
                     calendar.getActualMaximum(Calendar.SECOND));
        calendar.set(Calendar.MILLISECOND,
                     calendar.getActualMaximum(Calendar.MILLISECOND));
        this.endDate = calendar.getTime();
}
Run Code Online (Sandbox Code Playgroud)

java calendar date

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

如何获取与 Django 中的用户关联的所有相关对象?

我正在写Django application一个用户可以保存“搜索”的地方。

class Searches(models.Model):
        user = models.ForeignKey(User)
        ....

       def get_searches(self):
           try:
                search_list=Searches.objects.get(user)
           except:
                 return []
           else:
               return search_list.
Run Code Online (Sandbox Code Playgroud)

因此,当用户登录时,在我看来,

@login_required
def display_search_list(request):
     user=request.user
     search_list=user.get_searches()
     return render(request,"display.html",{'obj_list':search_list})
Run Code Online (Sandbox Code Playgroud)

我的问题是关于get_searches(self) method我上面定义的。我如何通过“当前登录的用户”来获取search_list. 我感兴趣的是user.get_searches()应该返回所有saved searchesUser。如何让它发挥作用?

谢谢

django django-models django-views django-users

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

AttributeError:myview在Django中的自定义mixin中没有属性对象

我正在尝试写一个mixin能够部分保存表单并稍后恢复.当表单很长并且用户无法一次性完成时,这非常有用.mixin下面的代码直接来自Marty Alchin的prodjango书.我已经在误差来自哪个是代码评论POST methodmixin.下面的详细的错误描述.

从追溯,我认为错误来自这两个调用self.get_form(form_class)get_form_kwargs.但我不知道如何解决这个问题.

这是view:

class ArticleCreateView(PendFormMixin, CreateView):
      form_class = ArticleForm
      model = Article
      template_name = "article_create.html"
      success_url = '/admin'
Run Code Online (Sandbox Code Playgroud)

这是mixin:

from django.views.generic.edit import FormView
from pend_form.models import PendedForm, PendedValue
from hashlib import md5



class PendFormMixin(object):
    form_hash_name = 'form_hash'
    pend_button_name = 'pend'
    def get_form_kwargs(self):
        """
        Returns a dictionary of arguments to pass into the form instantiation.
        If resuming a pended form, this …
Run Code Online (Sandbox Code Playgroud)

django mixins django-generic-views django-class-based-views

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

java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory

我已经按照本教程使用servlet进行文件上传。

这是文件夹结构(使用Eclipse创建的动态项目)。我没有在这个简单的项目中使用maven。我将外部jar添加到构建路径。

在此处输入图片说明

当我启动Tomcat并通过右键单击Eclipse中的项目>在服务器上运行时,部署此应用程序时,

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2499)
    at java.lang.Class.getDeclaredFields(Class.java:1811)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:139)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:415)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:892)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5380)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    ... 20 more
Run Code Online (Sandbox Code Playgroud)

请帮助我解决这里出了什么问题以及如何解决此问题?

java eclipse tomcat servlets file-upload

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

HashMap使用java 8流API的平均计数?

我有Map以下类型

public class MapUtils {

    private Map<String, Integer> queryCounts = new HashMap<>();

public void averageCounters(){

    int totalCounts = queryCounts.values().stream().reduce(0, Integer::sum);
    queryCounts = queryCounts.entrySet()
                             .stream()
                             .collect(Collectors.toMap(
                                 Map.Entry::getKey,
                                 (Map.Entry::getValue)/totalCounts
    ));
}
Run Code Online (Sandbox Code Playgroud)

这不会编译并在此行中显示错误(Map.Entry::getValue)/totalCounts.我该如何解决?有没有更好的方法来获得Map使用Java 8 API的平均值?

编辑:这是一个更好的方法吗?

queryCounts.entrySet()
           .forEach(entry -> queryCounts.put(entry.getKey(),
                                   entry.getValue()/totalCounts));
Run Code Online (Sandbox Code Playgroud)

dictionary java-8 java-stream

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

如何在 spring EL 中将 null 作为可选值传递?

正如这篇文章中所建议的,我正在尝试从属性文件中读取列表strings

@Value("#{'${app.messages}'.split(',')}")
    private List<String> messages;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error creating bean with name 'MyController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.app.controller.HealthManager com.app.MyController.Manager; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'healthManager': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.util.List com.app.Manager.messages; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'health.messages' in string value "#{'${health.messages}'.split(',')}"
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc spring-el properties-file

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

使用递归反转双链表

我正在编写程序来使用递归反转双链表。我知道如何迭代实施。但陷入了递归。

这是我所拥有的

public static Node reverseRecurseDoubleLinkedList(Node node){
        if (node==null || node.next==null)
            return node;
        Node newNode = reverseRecurseDoubleLinkedList(node.next);
        node.next.next=node;
        node.next=null;
        node.prev=newNode;
        return newNode;
    }
Run Code Online (Sandbox Code Playgroud)

我发现prev指针设置不正确。但next指针实际上是正确的。

谢谢

java algorithm recursion

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

java - 读取由unicode字符终止的文件

我有一个特殊的文件,其中的行被终止 '\001'.

我想逐行阅读这个文件.我一直在用Files.lines(path).但现在这个失败了,因为这些行没有被换行符终止.

什么是最好的方法?

java file-io java-8

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

mock on jdbcTemplate抛出编译错误

我试图模拟jdbcTemplate抛出异常.

我试图在JdbcTemplate上对此方法抛出异常

<T> List<T> query(String sql, Object[] args, RowMapper<T> rowMapper)

这就是我所拥有的

@MockBean
JdbcTemplate jdbcTemplate;

Mockito.doThrow(exception).when(jdbcTemplate.query(anyString(), anyList(), any(MyMapper.class)));
Run Code Online (Sandbox Code Playgroud)

我得到编译错误,cannot resolve method.我也试过了

Mockito.doThrow(exception).when(jdbcTemplate.query(anyString(), anyList(), Matchers.<RowMapper<MyMapper>>any()));
Run Code Online (Sandbox Code Playgroud)

但仍然得到相同的错误.

在这里做正确的方法是什么?

编辑

正如其中一个答案中所建议的,我试过了

 Mockito.doThrow(exception).when(jdbcTemplate).query(anyString(), anyList(), any(MyMapper.class));
Run Code Online (Sandbox Code Playgroud)

我仍然得到cannot resolve the method错误.

spring mocking jdbctemplate junit4 mockito

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