例如,假设我有一个Maven构建文件,其依赖项位于两个不同的存储库中:
<repository>
<id>id1</id>
<name>id1</name>
<url>http://localhost/mavenRepo/repository1</url>
</repository>
<repository>
<id>id2</id>
<name>id2</name>
<url>http://localhost/mavenRepo/repository2</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
有一个来自第一个存储库的依赖项,另一个来自第二个存储库.我怎样才能做到这一点?
在研究了gwt-dispatch和Google Wave I/O演示文稿(最佳实践)(这里是视频)之后,我想知道为什么官方GWT版本(2.0)不使用调度(即命令模式)来实现它的RPC调用.有人知道吗?
基本上我有代码:
echo strcasecmp('hello', ' ') ? 'true' : 'false';
Run Code Online (Sandbox Code Playgroud)
我不太明白,我期待这里的结果是假的而不是真的,因为字符串不相等......
是否有另一种更好的方法来比较INSENSITIVE案例中的字符串?
我有一个CarPOJO:
class Car
{
String make;
int year;
BigDecimal amount;
}
Run Code Online (Sandbox Code Playgroud)
和那样List<Car>的汽车:
make : year : price
honda : 2011 : $20,000
honda : 2011 : $30,000
honda : 2012 : $50,000
ford : 2012 : $12,000
Run Code Online (Sandbox Code Playgroud)
结果我想要的地方:
// Map<make, List<year, totalForYear>>
Map<String, Map<int, BigDecimal>> revenuesByMakeAndYear;
Run Code Online (Sandbox Code Playgroud)
如何使用Streams实现这一目标?到目前为止,我已经到了一半:
// Map<make, List<car>>
Map<String, List<Car>> carsByMake = cars.stream()
.collect(Collectors.toMap(
car -> car.getMake(),
car -> cars.stream()
.filter(subCar -> subCar.getMake().equals(car.getMake())
.collect(Collectors.toList())));
Run Code Online (Sandbox Code Playgroud)
但是我该如何进入下一步呢?
假设我有一份月度商店销售清单,以便:
ID, date, amount
1, Jan 2016, $500
2, Feb 2017, $200
3, October 2017, $300
Run Code Online (Sandbox Code Playgroud)
我的财政年度是2016年9月1日到2017年8月31日.换句话说,前两个条目是在一个会计年度,另一个是在第二个会计年度.实际会计年度是特定于用户的.
我想storeSales为每个会计年度创建一个列表.
到目前为止,我有:
Map<fiscalYearID, List<StoreSale> = storeSales.stream()
.collect(
Collectors.groupingBy(
storeSale -> storeSale.getSaleLocalDate()));
Run Code Online (Sandbox Code Playgroud)
问题是上面的代码只会按确切日期分组.我可以添加,.getYear()但只能按年份而不是财政年度.我还考虑过使用Stream.iterate()每个会计年度日期范围,然后浏览该日期范围内所有商店的商店销售列表到列表中,但这会非常难看,大O值开始迅速攀升.这将是这样的:
Stream.iterate(startDate, date -> date.plusMonths(1))
.limit(ChronoUnit.MONTHS.between(startDate, endDate.plusMonths(1)))
.forEach(
{
addToFiscalYear(fiscalYearID,
storeSales.stream().
.filter(storeSale -> storeSale.getSaleLocalDate().equals(date))
.collect(Collectors.toList());
});
Run Code Online (Sandbox Code Playgroud)
或类似的东西.我没有太多探索它,因为它的大O快速增加,我希望有更好的解决方案......
例如,在我的日志中,我有许多重复的行,例如:
ERROR - 2011-07-06 09:19:01 --> 404 Page Not Found --> favicon.ico
Run Code Online (Sandbox Code Playgroud)
有没有办法让我找出谁在调用这些错误的URL?favicon只是一个例子,有一些URL例如显示出攻击的意图,而其他URL则是一遍又一遍地重复相同的错误.基本上我很想知道哪些IP可能会阻塞,以及如果他们有错误的链接会联系哪些网站(或者我应该只使用.htaccess将它们重定向到我的服务器上).
我知道有很多正则表达式的问题,但我不太了解它,我也找不到足够好的解释来得出我想要得到的解决方案.
在PHP中,使用
preg_replace($pattern,"",$data);
Run Code Online (Sandbox Code Playgroud)
我想允许所有字母数字字符以及减号,句号和下划线字符.我需要的$模式是什么?
我有:
DateField dateField = new DateField("Date");
Button submitButton = new Button("Submit");
submitButton.addClickListener(click -> handleClickListener());
Run Code Online (Sandbox Code Playgroud)
在handleClickListener()我想要阻止提交的地方,如果有一个验证错误DateField.我知道我可以使用Binder,binder.validate()但是这个表单没有后备对象,我只想要一个简单的表单.我该怎么做:
if(!dateField.isValid())
// no further processing
else
// process
Run Code Online (Sandbox Code Playgroud)
我找不到任何DateField允许检查输入值是否有效的代码.显然在Vaadin 7你可能!dateField.validate()会抛出一个例外,但这似乎不再是这种情况......
我也知道可以执行dateField.isEmpty()或测试null,但这不起作用,因为不需要值.换句话说,它可以是空的,或者如果你输入一个值,那么它必须是一个有效的条目.
例如,让我们有:
public class MainView extends AppLayout {
public MainView() {
User user = VaadinSession.getAttribute("user");
if(user.isCheckSomething())
Span span = new Span("Hello " + user.getFirstname());
}
}
Run Code Online (Sandbox Code Playgroud)
如果用户尚未登录,这将因 NPE 而失败,因为从会话中获取用户将为空。现在我可以在之前添加一个空检查,if(user.isCheckSomething())但理想情况下AppLayout,如果用户未登录,我宁愿根本不进行渲染。 那是我宁愿BeforeEnterObserver在public void beforeEnter(BeforeEnterEvent event)方法中的视图中失败,但是AppLayout之前调用并创建了该beforeEnter(...)方法被调用。
换句话说,AppLayout如果用户未通过视图登录,我如何强制完全跳过的实例化,以便AppLayout永远不会构造 。
我有一个名为的文件data.dat,我想加载到byte[]Vaadin中.这是一个数据文件,我需要根据用户的输入加载然后操作.
我试过了:
String basepath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath();
FileResource resource = new FileResource(new File(basepath + MY_DATA_FILE));
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何操纵resource提取byte[].我看到很多关于如何将图像等放到UI组件上的信息,如何流式传输用户生成的PDF等等,但我似乎找不到任何关于如何加载自己的数据文件的例子.然后在代码中操纵......
在这个StackOverFlow问题之后,让我们说我想扩展到另一个级别的子类,比如Mallards,我该怎么做?
public abstract class Animal <A extends Animal<A>>
{
public abstract A copyAnimal(A animal);
}
public class Duck extends Animal<Duck>
{
@Override
public Duck copyAnimal(Duck duck)
{
return copyOfDuck;
}
}
class Mallard extends Duck<Mallard>
{
public Mallard copyAnimal(Mallard mallard)
{
return copyOfMallard;
}
}
Run Code Online (Sandbox Code Playgroud)
一切都适用于Duck子类,但它对于Mallard子类来说是失败的.如何使用未确定数量的子类进行设置?
ProgressBar下面是在 Vaadin Flow(版本 23)中显示不确定的代码:
ProgressBar spinner = new ProgressBar();
spinner.setIndeterminate(true);
spinner.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
唯一的事情是,这现在似乎创建了一个ProgressBar来回的东西,我想知道是否可以将其显示为圆形。我可以通过加载图标、动画 GIF 等来做到这一点,但是可以通过类来实现吗ProgressBar?
java ×7
vaadin ×4
java-8 ×2
java-stream ×2
php ×2
vaadin-flow ×2
vaadin14 ×2
codeigniter ×1
generics ×1
gwt ×1
gwt-dispatch ×1
java-ee ×1
maven-2 ×1
polymorphism ×1
preg-replace ×1
regex ×1
string ×1
vaadin23 ×1
vaadin7 ×1
vaadin8 ×1