小编dap*_*hez的帖子

如何创建一个实现具有两个泛型类型的接口的Java类?

我有一个通用的界面

public interface Consumer<E> {
    public void consume(E e);
}
Run Code Online (Sandbox Code Playgroud)

我有一个类消耗两种类型的对象,所以我想做类似的事情:

public class TwoTypesConsumer implements Consumer<Tomato>, Consumer<Apple>
{
   public void consume(Tomato t) {  .....  }
   public void consume(Apple a) { ...... }
}
Run Code Online (Sandbox Code Playgroud)

显然我做不到.

我当然可以自己实施调度,例如

public class TwoTypesConsumer implements Consumer<Object> {
   public void consume(Object o) {
      if (o instanceof Tomato) { ..... }
      else if (o instanceof Apple) { ..... }
      else { throw new IllegalArgumentException(...) }
   }
}
Run Code Online (Sandbox Code Playgroud)

但我正在寻找泛型提供的编译时类型检查和调度解决方案.

我能想到的最好的解决方案是定义单独的接口,例如

public interface AppleConsumer {
   public void consume(Apple a);
} …
Run Code Online (Sandbox Code Playgroud)

java generics interface multiple-inheritance

158
推荐指数
4
解决办法
5万
查看次数

从经度\纬度转换为笛卡尔坐标

我有一些以地球为中心的坐标点,以纬度和经度(WGS-84)给出.

如何将它们转换为笛卡尔坐标(x,y,z),原点位于地球的中心?

mapping geometry geospatial

95
推荐指数
6
解决办法
24万
查看次数

使用Dropbox的Mercurial(和我猜Git):有什么缺点吗?

我有一个个人项目的Mercurial存储库,我已经将主存储库存储在我的Dropbox中几个星期了(沿着这条线的东西;我也理解它也可以用git).

这个想法是它既可以作为一种使用多台机器的方式,也可以作为远程备份.我克隆了存储库并处理非Dropbox副本,并且只是偶尔推送一次更新,就像我想的那样,我会使用Bitbucket.

与使用专用托管(Mercurial中的BitBucket)相比,你能想到这个想法的任何缺点吗?我知道Bitbucket为单个用户提供免费帐户,这很好,但是它们限制在150M,这不是很大.

特别是,Dropbox的同步过程是否可能破坏存储库?我不得不在主存储库上运行一次hg recover,但它可能是无关的(无论如何它很高兴恢复).有没有人对这个想法有不好的体验?有没有人有更好的经验,可以减轻我的担忧?有没有人基于对这些东西内部的更好理解而有意见?

编辑:我在问题中添加了一些说明.它们用斜体字表示.

git mercurial dropbox

62
推荐指数
3
解决办法
9656
查看次数

如何计算球体上从点到线段的距离?

我在地球上有一个线段(大圆圈部分).线段由其末端的坐标定义.显然,两个点定义了两个线段,所以假设我对较短的线段感兴趣.

我得到了第三点,我正在寻找线和点之间的(最短)距离.

所有坐标均以经度\纬度(WGS 84)给出.

我该如何计算距离?

任何合理的编程语言都可以使用解决方案.

language-agnostic gis geometry distance geospatial

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

Java中BufferedReader.readLine()的最大行长度?

我使用BufferedReader的readLine()方法从套接字读取文本行.

没有明显的方法来限制读取行的长度.

我担心数据源可能(恶意地或错误地)写入大量数据而没有任何换行符,这将导致BufferedReader分配无限量的内存.

有没有办法避免这种情况?或者我必须实现readLine()自己的有界版本?

java readline bufferedreader

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

如何用BeautifulSoup更改标签名称?

我使用python + BeautifulSoup来解析HTML文档.

现在我需要替换<h2 class="someclass">HTML文档中的所有元素<h1 class="someclass">.

如何在不更改文档中的任何其他内容的情况下更改标记名称?

python beautifulsoup html-parsing

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

收集的内容从未在Intellij IDEA中更新警告

我创建了一个简单的Counter类:

public class Counter<T> extends HashMap<T, Long> {
    public Counter() {
    }

    public void increase(T key) {
        put(key, getOrDefault(key, 0l) + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我调用increase()方法,然后使用Map方法访问数据,例如

  Counter<Integer> counter = new Counter<>();
  for (Integer i: ... some collection ...)
      counter.increase(i);
Run Code Online (Sandbox Code Playgroud)

Intellij counter用警告颜色突出显示(最后一行代码片段)的声明,工具提示消息说明

查询集合的内容,但从未更新.

显然我可以忽略这个警告,但有没有办法说服Intellij我的代码没有任何问题?

我正在使用14.0.2社区版.

java intellij-idea

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

霍夫曼代码中字符的单位代码的条件?

这是我在学校设置中遇到的一个问题,但它一直困扰着我,所以我决定在这里问一下.

在霍夫曼压缩中,固定长度序列(字符)用可变长度序列编码.代码序列长度取决于源字符的频率(或概率).

我的问题是:最小的最高字符频率是多少,该字符将由一个位编码?

compression math huffman-code

9
推荐指数
2
解决办法
2280
查看次数

seek(),然后读取(),然后在python中写入()

运行以下python代码时:

>>> f = open(r"myfile.txt", "a+")        
>>> f.seek(-1,2)                                        
>>> f.read()                                            
'a'                                                     
>>> f.write('\n')                                        
Run Code Online (Sandbox Code Playgroud)

我得到以下(有用)例外:

Traceback (most recent call last):      
  File "<stdin>", line 1, in <module>   
IOError: [Errno 0] Error        
Run Code Online (Sandbox Code Playgroud)

用"r +"打开时会发生同样的事情.

这应该失败吗?为什么?

编辑:

  1. 显然,这只是一个例子,而不是我实际上想要执行的.我的实际目标是在添加新行之前验证文件以"\n"结尾,或者添加一个.
  2. 我在Windows XP下工作,它们存在于Python 2.5和Python 2.6中.
  3. 我设法通过再次调用seek()来绕过这个问题:

    f = open(r"myfile.txt","a +")
    f.seek(-1,2)
    f.read()
    '
    a'f.seek(-10,2)
    f.write('\n')

第二次搜索呼叫的实际参数似乎并不重要.

python file-io

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

如何将Django模型从mysql迁移到sqlite(或任何两个数据库系统之间)?

我在生产中使用MySQL进行Django部署.

我想用SQLite进一步开发,所以我想将现有数据导入SQLite数据库.一世

有一个shell脚本这里到一般的MySQL转储转换为SQLite的,但它并没有为我工作(显然是普遍的问题是不容易的).

我认为使用Django模型这样做必须要容易得多.你会怎么做?有没有人有任何脚本可以做到这一点?

django database-migration django-models

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