我熟悉type castingin inheritance model.
让SuperClass and SubClass是父子类;
SuperClass superClass = new SubClass(); -- 这里object实例化的是一个subclass object; 但它reference type是SuperClass;这仅仅是对那些methods的SuperClass可以在被调用subclass object; 任何methods不在inherited/overridden中的subclass都不能被调用(这是 的任何唯一methods的subclass)。
我观察到与上面相同的行为 ifSuperClass is an interface和SubClass implements it。也就是说,只有在SuperClass interface中声明的方法才能在SubClass对象上调用。我的理解正确吗?但是对于一些casting,我可以调用methods它不是接口的一部分,我在下面的示例代码中观察到了这一点;
我已经对我的理解做了一些评论,它是如何工作的;但我想知道这是否有意义,或者我的解释是否错误;
class Animals {
public void bark(){
System.out.println("animal is barking"); …Run Code Online (Sandbox Code Playgroud) 给定一年零一个月; 我想要两个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) 我正在写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 searches的User。如何让它发挥作用?
谢谢
我正在尝试写一个mixin能够部分保存表单并稍后恢复.当表单很长并且用户无法一次性完成时,这非常有用.mixin下面的代码直接来自Marty Alchin的prodjango书.我已经在误差来自哪个是代码评论POST method在mixin.下面的详细的错误描述.
从追溯,我认为错误来自这两个调用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) 我已经按照本教程使用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)
请帮助我解决这里出了什么问题以及如何解决此问题?
我有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) 正如这篇文章中所建议的,我正在尝试从属性文件中读取列表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) 我正在编写程序来使用递归反转双链表。我知道如何迭代实施。但陷入了递归。
这是我所拥有的
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指针实际上是正确的。
谢谢
我有一个特殊的文件,其中的行被终止 '\001'.
我想逐行阅读这个文件.我一直在用Files.lines(path).但现在这个失败了,因为这些行没有被换行符终止.
什么是最好的方法?
我试图模拟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错误.
java ×5
django ×2
java-8 ×2
spring ×2
algorithm ×1
calendar ×1
casting ×1
date ×1
dictionary ×1
django-users ×1
django-views ×1
eclipse ×1
file-io ×1
file-upload ×1
inheritance ×1
interface ×1
java-stream ×1
jdbctemplate ×1
junit4 ×1
mixins ×1
mocking ×1
mockito ×1
recursion ×1
servlets ×1
spring-el ×1
spring-mvc ×1
tomcat ×1