小编Ker*_*nic的帖子

如何将对象列表转换为接口列表?

我有一些适用于接口的类:

这是界面:

public interface Orderable
{
    int getOrder()
    void setOrder()
}
Run Code Online (Sandbox Code Playgroud)

这是工人阶级:

public class Worker
{
   private List<Orderable> workingList;

   public void setList(List<Orderable> value) {this.workingList=value;}

   public void changePlaces(Orderable o1,Orderable o2)
   {
     // implementation that make o1.order=o2.order and vice versa
   }
}
Run Code Online (Sandbox Code Playgroud)

这是一个实现接口的对象:

public class Cat implements Orderable
{
    private int order;

    public int getOrder()
    {
      return this.order;
    }

    public void setOrder(int value)
    {
      this.order=value;
    }

    public Cat(String name,int order)
    {
       this.name=name;
       this.order=order;
    }
}
Run Code Online (Sandbox Code Playgroud)

在主要程序中,我创建了一个猫列表.我使用glazed列表在列表更改时以及使用此列表创建控件模型时动态更新控件.

目标是将此列表传输到工作对象,因此我可以在主过程中向列表中添加一些新的cat,并且工作人员将在不再设置其list属性的情况下知道它(list是main proc中的相同对象工人).但是当我把worker.setList(cats)它叫做关于期待可订购的警报时,却得到一只猫......但是Cat实现了Orderable.我该如何解决这个问题? …

java casting interface glazedlists

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

function(e){e.something ...}什么是e?

当我写作

$("#new_lang").click(function(e) 
{
  alert("something");
  e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

什么是Ë这里,为什么没有功能的工作没有它?为什么我可以写任何东西而不是e?

javascript jquery

5
推荐指数
2
解决办法
261
查看次数

为什么 apply 会在大列表上抛出 CONTROL-STACK-EXHAUSTED-ERROR?

(apply #'+ (loop for i from 1 to x collect 1))
Run Code Online (Sandbox Code Playgroud)

如果x具有 value 则有效253391,但(SB-KERNEL::CONTROL-STACK-EXHAUSTED-ERROR)253392*上失败。这比call-arguments-limit**小几个数量级。

递归是否耗尽了堆栈?如果是这样,它在apply吗?怎么还没优化?


*也很有趣,(apply #'max (loop for i from 1 to 253391 collect 1))抛出错误,但253390很好。

**call-arguments-limit计算结果为 4611686018427387903(在format's的帮助下~R,这是四千亿六百一十亿六千八千六万亿十八四亿七千七百七千九百三

sbcl common-lisp

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

如何在python中解压后删除原始文件

我有一些 python 代码来解压缩文件,然后删除它(原始文件),但我的代码捕获异常:它无法删除该文件,因为它正在使用中。

我认为问题在于,当删除代码运行时,解压缩操作尚未完成,因此引发异常。那么,在删除文件之前如何检查解压缩操作的运行状态?

file = zipfile.ZipFile(lfilename)
for filename in file.namelist():
    file.extract(filename,dir)
remove(lfilename)
Run Code Online (Sandbox Code Playgroud)

python

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