Python中文
首页
教程
问答
标签
搜索
登录
注册
如何将ducktyping(Python)转换为Java泛型?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>以下面的简单Python函数为例:</p> <pre><code>def quantize(data, nlevels, quantizer=lambda x, d: int(floor(x/d))): llim = min(data) delta = (max(data) - llim)/(nlevels - 1) # last level x == max(data) only y = type(data) if delta == 0: return y([0] * len(data)) else: return y([quantizer(x - llim, delta) for x in data]) </code></pre> <p>在这里,它正在发挥作用:</p> ^{pr2}$ <p>这个函数当然有缺陷——首先,它不验证参数,它应该更聪明地设置返回值的类型——但它有一个优点:不管数据中的元素是整数还是浮点,还是其他一些数值类型,它都能工作。另外,默认情况下,它返回一个int列表,不过,通过传递一个合适的函数作为可选的量化器参数,这个类型可以更改为其他类型。此外,如果data参数是list,则返回值将是list;如果data是tuple,则返回值将是tuple。(最后一个特性无疑是最薄弱的,但它也是我对在Java中复制最不感兴趣的特性,所以我没有费心使它更健壮。)</p> <p>我想编写一个与此函数等效的Java<em>efficient</em>Java,这意味着要找出如何避开Java的类型。自从我学习了Java(很久以前),泛型就被引入到语言中。我尝试过学习Java泛型,但发现它们很难理解。我不知道这是因为早衰,还是因为自从我上一次用Java编程(约2001年)以来Java的复杂性急剧增长,但我发现关于这个主题的每一页都比上一页更令人困惑。如果有人能告诉我如何用Java来实现这一点,我将非常感激。在</p> <p>谢谢!在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这不是你所要求的,但我建议你试试看?您可以将Python代码直接编译为Java字节码。由于您从2001年起就没有使用过Java,而且这些天您似乎在使用Python,您可能会发现Jython比事先让自己了解Java中的所有更改要容易得多。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
jupyter运行一个旧的pytorch版本
3 回答
Jupyter运行不同版本的卸载库?
6 回答
Jupyter运行指定的键盘快捷键
6 回答
Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
3 回答
Jupyter重新加载自定义样式
10 回答
Jupyter错误:“没有名为Jupyter_core.paths的模块”
3 回答
jupyter错误:无法在随机林中将决策树视为png
4 回答
Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
8 回答
Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
7 回答
Jupyter隐藏数据帧索引,但保留原始样式
7 回答
Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
1 回答
Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
2 回答
Jupy上Python的读/写访问问题
2 回答
jupy上没有模块cv
7 回答
Jupy上的排序错误
1 回答
Jupy中bqplot图形的紧凑布局
6 回答
Jupy中matplotlib plot的连续更新
4 回答
Jupy中Numpy函数的文档
9 回答
Jupy中Pandas的自动完成问题
7 回答
jupy中Qt后端的Matplotlib动画
7 回答