非常简单的问题.我有无用的课:
class Useless{
double field;
Useless(this.field);
}
Run Code Online (Sandbox Code Playgroud)
然后我提交致命罪并调用new Useless(0);
在检查模式(这是我运行我的测试的方式)爆炸,因为'int'不是'double'类型的子类型.
现在,如果我使用它,它可以工作new Useless(0.0),但老实说,我花了很多时间来纠正我的测试,把.0s放到各处,我觉得这样做很愚蠢.
作为一个临时措施,我重写了构造函数:
class Useless{
double field;
Useless(num input){
field = input.toDouble();
}
}
Run Code Online (Sandbox Code Playgroud)
但这很丑陋,如果经常打电话,我恐怕很慢.有一个更好的方法吗?
为什么这是错的:
Class<? extends Number> type = Integer.class;
ArrayList<type> = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
?
在给定类对象的情况下,是否无法实例化特定类型的类?
显然我永远不会直接这样做,这只是展示所需内容的一个例子.在我需要的实际代码中,我不知道该类型的名称.例如
public void createAList(Class<? extends Number> type)
{
ArrayList<type> toReturn = new ArrayList<>();
return toReturn;
}
Run Code Online (Sandbox Code Playgroud) 想象一下,有一个定义鼠标模式的枚举:
public enum MouseMode {
SELECTION,
EDITING,
DELETING }
Run Code Online (Sandbox Code Playgroud)
想象一下,有一个由3个按钮组成的切换组:
ToggleButton selection = new ToggleButton("Select");
ToggleButton editing = new ToggleButton("Edit");
ToggleButton deleting = new ToggleButton("Delete");
ToggleGroup mouseSelection = new ToggleGroup();
Run Code Online (Sandbox Code Playgroud)
我希望一个字段MouseMode currentMode与toggle-group双向链接.每当设置切换时,相应地切换currentMode,但是如果某些外部进程改变currentMode(可能是按键),则切换组也会相应地进行调整.
我可以用2个听众做到这一点,但我想知道是否有办法创建自定义双向地图.
我有一个简单的飞镖课程,我正在尝试测试。
为了测试它,我需要打开一个 txt 文件,将内容提供给类的一个实例并检查输出是否正确。
我在哪里放置这个txt文件?txt 文件在测试之外是无用的。
另外,相关的,我如何始终如一地访问其目录?我尝试将它放在 test 文件夹中,但问题是:
System.currentDirectory
Run Code Online (Sandbox Code Playgroud)
如果我自己运行测试或脚本一次调用所有其他测试 dart 文件,则返回不同的目录
我有一个表示形式类,它存储一个XYChart.Series对象,并通过观察模型对其进行更新。通过使用Platform.runLater(...)完成系列更新
我要对此进行单元测试,确保runLater中的命令正确执行。如何告诉单元测试等待runLater命令完成?现在我要做的就是在测试线程上使用Thread.Sleep(...),给FXApplicationThread时间来完成,但这听起来很愚蠢。
我有一个包含30个元素的arrayList.我想从这个列表中创建15个元素的许多子列表.这样做的有效方法是什么?
现在我克隆了ArrayList并使用remove(随机)来做,但我确信这太笨拙了.我该怎么做呢?Java有像R中的"样本"函数吗?
澄清:通过无替换的抽样,我的意思是随机获取原始列表中30个可用的15个独特元素.而且我希望能够反复这样做.
我有一个带有两个final字段的简单类,其中一个是存储数据的映射,另一个是调用时更新数据的step函数:
class Data
{
//for each name a list of observations
final Map<String,List<double>> _dataMap;
/**
* the update step
*/
final Step _updateStep;
Run Code Online (Sandbox Code Playgroud)
Step只是一个typedef.
现在,我想要一个具有一个参数的构造函数:一个接受引用Map<...>并返回new 的函数Step.这对我来说似乎是合乎逻辑的,更新程序需要引用地图来更新它.
为什么这个构造函数失败了?
Data(Step initializer(Map<String,List<double>> dataReferences))
: _dataMap = new Map(),
_updateStep = initializer(_dataMap);
Run Code Online (Sandbox Code Playgroud)
错误发生在第二步
非法隐含访问接收者'this';
什么?这是怎么泄漏的?怎么解决?
想象一个像这样的愚蠢的类:
class ConditionalWorker{
var validityChecker= (inputs)=>true;
ConditionalWorker(this.validityChecker)
...
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,声明有效性检查器字段的正确方法是什么?
本教程建议使用typedefs. 但这不太实用。首先,编写大量只能使用一次的 typedef 是一件苦差事。其次,这些 typedef 的出现会污染我的 IDE 的自动完成功能。
效果var最好,使用自定义设置器/构造函数参数来使其始终保持特定类型,但我知道样式指南不鼓励这样做。
我可以做Function<bool>,但这只是一个更美化的变量,工作量是相同的。
很遗憾,因为拥有这样的函数是完全合法的:
bool every(bool test(E element));
Run Code Online (Sandbox Code Playgroud)
其中参数是一个定义良好的函数,但我不能以相同的方式声明字段:
bool test(E element);
Run Code Online (Sandbox Code Playgroud)
但希望还有一些我没有想到的同样好的事情。对吗?
dart ×4
java ×4
javafx-2 ×2
javafx-8 ×2
class ×1
constructor ×1
directory ×1
final ×1
generics ×1
ggplot2 ×1
javafx ×1
list ×1
r ×1
reflection ×1
statistics ×1
unit-testing ×1