在我正在处理的当前代码库中,我发现自己需要初始化许多不同长度的空String [].
截至目前,它们始终以下列方式初始化:
String[] a = new String[]{"","","","","","","","",""} // etc...
Run Code Online (Sandbox Code Playgroud)
虽然这是一个简单的单行解决方案,但我个人的偏好是它相当难看.
我只是想知道是否有人知道任何现有的API/Utility提供了一种方法,其中可以更优雅地初始化空字符串数组.我正在思考以下问题:
StringUtils.*initialiseEmptyArray*(int size);
Run Code Online (Sandbox Code Playgroud)
有谁知道任何这样的方法?
如果需要的话,我总是可以写自己的,如果它已经完成,就不想重新发明轮子.
谢谢
我正在寻找以下用例的RESTful API设计的最佳实践:
域对象工具:
class Vehicle {
private String vehicleType;
private String colour;
private String transmission;
private String yearOfIssue;
}
Run Code Online (Sandbox Code Playgroud)
一个示例对象:
Vehicle = {vehicleType : 'Car', colour : 'Red', transmission : 'Automatic', yearOfIssue : '2008'};
Run Code Online (Sandbox Code Playgroud)
在此域模型中,没有单个字段唯一标识符(例如vehicleId),而是对象的所有字段一起形成主键(此约束存在于数据库层中).
我们无法灵活地更改此域模型以添加单个字段唯一标识符.
所以我的问题如下 - 如果我想在这个域对象之上添加一个简单的REST API,为CREATE,UPDATE,DELETE和GET Vehicle提供简单的功能,这些方法的PATH端点的最佳实践是什么?
按照上面的例子,如果域模型具有单个字段唯一标识符vehicleId,那么我可以想象以下端点:
GET /vehicles/:vehicleId
PUT /vehicles/:vehicleId
DELETE /vehicles/:vehicleId
Run Code Online (Sandbox Code Playgroud)
我不知道复合键存在的类似于此的模式:
GET /vehicles/:vehicleTypecolourtransmissionyearOfIssue
GET /vehicles/CarRedAutomatic2008
Run Code Online (Sandbox Code Playgroud)
似乎不正确.
关于此用例的良好模式的任何建议将不胜感激.
谢谢
我有一个用例,我试图确保在我的类中调用特定方法时抛出一个抽象异常.
我使用Mockito来做这件事,但是注意到Mockito在调用方法时根本不会抛出异常.
要测试的类:
public void doSomething() throws CustomException {
try {
Collection<T> results = dao.getDatabaseResults();
} catch (ProblemException e) {
throw new CustomException("There was an exception", e);
}
}
Run Code Online (Sandbox Code Playgroud)
问题异常类:
public abstract class ProblemException extends RuntimeException {
public ProblemException(String message) {
super(message);
}
public ProblemException(String message, Throwable e) {
super(message, e);
}
Run Code Online (Sandbox Code Playgroud)
测试类:
public testDoSomething() throws Exception {
CustomDAO mockDAO = Mockito.mock(CustomDAO.class);
Mockito.when(mockDAO.getDatabaseResults()).thenThrow(new ProblemException);
try {
foo.doSomething();
Assert.fail();
} catch (CustomException e) {
//Some more asserts
}
Run Code Online (Sandbox Code Playgroud)
目前,上述测试类将无法编译,因为您无法创建抽象类的新实例.
我没有更改AbstractException类的权限,也无法更改DAO类上的getDatabaseResults()方法抛出的异常类型.
对于这个问题,您对最干净的解决方案有什么建议吗? …