是否可以使用Joda-Time解析日期并提取月份周.我知道有可能在一年中这么做,但我找不到如何/如果有可能提取一个月的一周.
示例:2014-06_03其中03是本月的第三周
DateTime dt = new DateTime();
String yearMonthWeekOfMonth = dt.toString("<PATTERN for the week of month>");
Run Code Online (Sandbox Code Playgroud)
我尝试过"yyyyMMW"模式,但不接受.
我在使用类型参数初始化类时遇到问题.这似乎是Java类型推断的一个缺点,我想知道是否有办法绕过这个或更好的方法实现这一点.
public class ParentModel {}
public class ChildModel extends ParentModel {}
public class Service<E extends ParentModel, T extends Collection<E>> {
private Class<T> classOfT;
private Class<E> classOfE;
public Service(Class<E> classOfE, Class<T> classOfT) {
this.classOfE = classOfE;
this.classOfT = classOfT;
}
}
public class BusinessLogic {
public void someLogic() {
Service<ChildModel, ArrayList<ChildModel>> service = new
Service<ChildModel, ArrayList<ChildModel>>(ChildModel.class, ArrayList.class);
}
}
Run Code Online (Sandbox Code Playgroud)
编译时错误在BusinessLogic::someLogic():
构造函数Service <ChildModel,ArrayList <ChildModel >>(Class <ChildModel>,Class <ArrayList>)未定义
编译为Java 7.
我在Java中使用apache.commons.csv库.我正在使用以下代码从网页上读取CSV文件:
InputStream input = new URL(url).openStream();
Reader reader = new InputStreamReader(input, "UTF-8");
defaultParser = new CSVParser(reader, CSVFormat.DEFAULT);
excelParser = new CSVParser(reader, CSVFormat.EXCEL.withHeader());
defaultParsedData = defaultParser.getRecords();
excelParsedData = excelParser.getRecords();
Run Code Online (Sandbox Code Playgroud)
但是,我在这个库中找不到一个方法可以轻松地将这个文件写入我的计算机,以便打开它并稍后从中读取.
我试过这段代码来保存文件.
String outputFile = savePath+".csv";
CSVPrinter csvFilePrinter = null;
CSVFormat csvFileFormat = CSVFormat.EXCEL.withHeader();
FileWriter fileWriter = new FileWriter(outputFile);
csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat);
for (CSVRecord csvRecord : excelParser) {
for(String dataPoint: csvRecord){
csvFilePrinter.print(dataPoint);
}
csvFilePrinter.print('\n');
}
fileWriter.flush();
fileWriter.close();
csvFilePrinter.close();
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用此代码读取文件时,没有打印出来:
InputStream input = new FileInputStream(cvsFilePath);
Reader reader …Run Code Online (Sandbox Code Playgroud) 使用Apple\xe2\x80\x99s点播资源(ODR)功能时,下载的资源是否有保护?有DRM功能吗?
\n下载的文件是否经过加密或以其他方式防止在 Mac 或 PC 上检查应用程序内容的人窥探?
\n我可以做些什么来对下载的资源进行复制保护吗?
\n如何在Vaadin 8中设置会话超时?
我没有使用web.xml,它已经成为在框架的早期版本中设置它的地方.
我想在我的项目域层(Clean MVVM )中实现单一职责原则。
我有大约 200 个不同的用例,管理起来非常繁忙。现在我正在考虑创建一个UseCaseManager可以为我提供所需的UseCase基于Input&Output对象的对象。
我尝试了一种方法,但看起来不太好。我提到了一些示例代码,请帮助我如何将所有用例聚合到一个 UseCaseManager。
用例1:
public class ActualUseCase1 extends AsyncUseCase<Object3,Object4> {
public ActualUseCase1(SchedulerProvider schedulerProvider) {
super(schedulerProvider);
}
@Override
public Flowable<Object4> buildUseCaseFlowable(Object3 input) {
return Flowable.just(new Object4());
}
}
Run Code Online (Sandbox Code Playgroud)
用例2:
public class ActualUseCase2 extends AsyncUseCase<Object1, Object2> {
public ActualUseCase2(SchedulerProvider schedulerProvider) {
super(schedulerProvider);
}
@Override
public Flowable<Object2> buildUseCaseFlowable(Object1 input) {
return Flowable.just(new Object2());
}
}
Run Code Online (Sandbox Code Playgroud)
用例管理器:
public interface UseCaseManager<In, Out> {
<T> T getUseCase(In …Run Code Online (Sandbox Code Playgroud) single-responsibility-principle use-case aggregation clean-architecture interactors
的AbsoluteLayout在Vaadin 8(框架)使布局内的窗口小部件面向像素的位置放置.虽然不是我选择的第一个布局,但AbsoluteLayout它适合从其他使用面向像素位置的布局的UI构建平台移植代码.
手册中的示例代码:
// A 400x250 pixels size layout
AbsoluteLayout layout = new AbsoluteLayout();
layout.setWidth("400px");
layout.setHeight("250px");
// A component with coordinates for its top-left corner
TextField text = new TextField("Somewhere someplace");
layout.addComponent(text, "left: 50px; top: 50px;");
Run Code Online (Sandbox Code Playgroud)
我可以看到传递的参数只是CSS编码.但我不是HTML/CSS向导,这就是我首先使用基于Java的Vaadin的原因.
从Vaadin 8(框架)迁移到Vaadin 10(Flow)的迁移指南在这个组件列表中表示,8从8中未包含,他们也不打算在将来添加它.但该页面确实提供了有关替换的说明:AbsoluteLayoutAbsoluteLayout
使用例如Div可以很容易地在V10中实现相同的效果
关于如何将ISO 8601 持续时间格式 PnYnMnDTnHnMnS(例如:P1W、P5D、P3D)转换为天数的任何建议?
我试图以一种向用户显示免费试用天数的方式设置按钮的文本。
Google 通过键“freeTrialPeriod”以 ISO 8601 持续时间格式提供帐单信息,但我需要用户可以实际阅读的数字。
该应用程序的当前最低 API 级别是 18,因此 Java 8 中的 Duration 和 Period 类将无济于事,因为它们适用于等于或大于 26 的 API。
我已将以下方法设置为解决方法,但它看起来不是最佳解决方案:
private String getTrialPeriodMessage() {
String period = "";
try {
period = subsInfoObjects.get(SUBS_PRODUCT_ID).getString("freeTrialPeriod");
} catch (Exception e) {
e.printStackTrace();
}
switch (period) {
case "P1W":
period = "7";
break;
case "P2W":
period = "14";
break;
case "P3W":
period = "21";
break;
case "P4W":
period = "28";
break;
case "P7D":
period = "7"; …Run Code Online (Sandbox Code Playgroud) java ×6
vaadin ×3
jodatime ×2
aggregation ×1
android ×1
css-position ×1
csv ×1
datetime ×1
drm ×1
generics ×1
interactors ×1
ios ×1
iso8601 ×1
layout ×1
period ×1
radio-button ×1
session ×1
single-responsibility-principle ×1
trial ×1
use-case ×1
vaadin-flow ×1
vaadin10 ×1
vaadin7 ×1
vaadin8 ×1