我正在尝试使用JavaScript在屏幕上拖动图像.我已经编写了一个脚本,可以在带有文本的div上正常工作,但是当我在图像上使用它时,它会间歇性地工作.
我已将代码放在jsfiddle上,以便其他人可以看到我的意思. http://jsfiddle.net/laurence/YNMEX/
如果你运行它,你会发现文本块可以被拖放,但是当你对图像尝试相同的东西时,它会留下图像.这就像图像无法跟上鼠标的运动.
我在jsfiddle上重复了以下代码:
function startDrag(e) {
// determine event object
if (!e) {
var e = window.event;
}
// IE uses srcElement, others use target
var targ = e.target ? e.target : e.srcElement;
if (targ.className != 'dragme') {
return
};
// calculate event X, Y coordinates
offsetX = e.clientX;
offsetY = e.clientY;
// assign default values for top and left properties
if (!targ.style.left) {
targ.style.left = '0px'
};
if (!targ.style.top) {
targ.style.top = '0px'
};
// calculate integer …Run Code Online (Sandbox Code Playgroud) 在这样的测试中:
@Test
public void test() {
List<String[]> l = new LinkedList<String[]>();
l.add(new String [] {"test", "123"});
l.add(new String [] {"test", "456"});
l.add(new String [] {"test", "789"});
assertEquals(3, l.size());
l.remove(new String [] {"test", "456"});
assertEquals(2, l.size());
}
Run Code Online (Sandbox Code Playgroud)
作为第二断言(= 2)不equals/hashcode使用在list.remove是default为对象.有没有办法让列表能够Arrays.equals/Arrays.hashcode用于比较数组?或者唯一的解决方案是将String数组包装在一个对象中并覆盖equals/hashcode?
我正在使用apache lucene开发一个文本分析项目.我需要对一些文本进行引理(将单词转换为规范形式).我已经编写了代码来制作词干.使用它,我能够转换下面的句子
词干是这个词的一部分,即使在形态上变化时也不会改变; 引理是这个词的基本形式.例如,从"产生",引理是"产生",但干是"产生 - ".这是因为有生产这样的词
至
即使形态学变形引理基础形式单词例子来自产品引理产品干产品因为字产品
不过,我需要的话基本形式:例如,而不是为例,产生的替代produc,等等.
我正在使用lucene,因为它有多种语言的分析器(我至少需要英语和俄语).我知道斯坦福NLP图书馆,但它没有俄语支持.
那么有没有办法对几种语言进行词形还原,就像我使用lucene一样?
我的代码的简化版本负责阻止:
//Using apache tika to identify the language
LanguageIdentifier identifier = new LanguageIdentifier(text);
//getting analyzer according to the language (eg, EnglishAnalyzer for 'en')
Analyzer analyzer = getAnalyzer(identifier.getLanguage());
TokenStream stream = analyzer.tokenStream("field", text);
stream.reset();
while (stream.incrementToken()) {
String stem = stream.getAttribute(CharTermAttribute.class).toString();
// doing something with the stem
System.out.print(stem+ " ");
}
stream.end();
stream.close();
Run Code Online (Sandbox Code Playgroud)
更新:我发现这个库几乎可以满足我的需求(英语和俄语)并使用apache lucene(尽管以自己的方式),它绝对值得探索.
所以,基本上我有两个数组:
int[] listA = {2, -5, -121, 102, -35, -2, 0, -125, 802, -10};
int[] listB = {6, 99, -1, 12, 1, -2};
Run Code Online (Sandbox Code Playgroud)
我想填写一个新的数组(listD)所有listA缺少的元素listB.
输出应该是这样的:
输出:2,-5,-121,102,-35,0,-125,802,-10
我的代码如下:
int arraySize = 0; //Variable to determine size of the new array;
int difElements = 0; //Variable to count every different element;
for(int i = 0; i < listA.length; i++){
for(int j = 0; j < listB.length; j++){
if(listA[i] != listB[j]){
difElements++;
}
if(difElements == listB.length){
arraySize++; …Run Code Online (Sandbox Code Playgroud) 我Address从DB调用中获取对象列表.
ArrayList<Address> addresses = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
每个人Address都有一个int addressId属性.
我正在写一个更新查询,在IN条款中我发送这整个Address对象列表,我得到了ibatis TypeException.如何转换List<Address>为逗号分隔的字符串,可以发送更新查询?
我的更新查询看起来像:::
Update tablename set postcode = #{postCode} where id in #{addressID}.
Run Code Online (Sandbox Code Playgroud) 我想创建一个条件,如果产品具有相同的模型,我想设置newID's(A,B,C).下表是我在调用List<MyDTO>when getAllListValue()方法时返回的示例数据.
样本数据:
pID prodName Model Year
10 PN1 ABX 1999
11 PN2 ABX 1999
12 PN3 ABX 2000
13 PN4 XP 2002
14 PN5 xP 2003
15 PN6 HP 2006
16 PN7 LX 2008
17 PN8 LX 2009
Run Code Online (Sandbox Code Playgroud)
PN1和模型ABX我想设置newID为A.PN2和模型ABX我想设置newID为B.PN3和模型ABX我想设置newID为C.PN4和XP- 设为newIDAPN5和XP- 设为newID …我有一个描述 mongo 文档的抽象类。此类可能有不同的实现需要覆盖抽象方法。这是一个简化的示例:
@Document
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
public abstract class Entity {
@Id
private ObjectId id;
abstract String getSomething();
}
Run Code Online (Sandbox Code Playgroud)
我想getSomething()作为字符串字段写入文档。但我不想读回来。
我尝试使用@AccessType注释:
@AccessType(AccessType.Type.PROPERTY)
abstract String getSomething();
Run Code Online (Sandbox Code Playgroud)
但是当我从数据库中读取此文档时, spring 抛出UnsupportedOperationException: No accessor to set property. 它正在尝试为该字段找到一个 setter,但我不想为它定义一个 setter - 该方法可能会返回一个计算值,并且应该无法更改它。虽然空的 setter 可能会有所帮助,但它看起来更像是一种解决方法,我会尽量避免它。
所以我想知道从数据库读取时是否有办法跳过这个特定的属性?与@Transient注释相反的东西。或类似于@JsonIgnore杰克逊图书馆。
是否有从 NGRX 存储的多个切片获取数据的最佳实践?我正在使用 NGRX 实体,我有一个用于公司、用户、供应商和订单的切片,在特定组件中,我需要访问所有 4 个组件。我尝试了几种不同的方法,但它们看起来都很麻烦。
我应该使用来自多个实体的 4 个单独的选择器,还是最好在根级别创建一个选择器并包含详细信息页面所需的所有内容?
目前,我正在使用combineLatest运算符
this.subscription.add(this.store.select(fromUser.getUsers).pipe(
combineLatest([
this.store.select(fromCompanies.selectAll),
this.store.select(fromVendors.selectAll),
this.store.select(fromOrders.getOrders),
]))
Run Code Online (Sandbox Code Playgroud) 谁能帮助我理解为什么在 1 种情况下我没有 ClassCastException?至少 String::trim 不是 MagicFunction。
public class Main {
@FunctionalInterface
interface MagicFunction extends Function<String, String> {
}
public static void main(String[] args) throws IOException {
// 1. OK
final MagicFunction fun1 = String::trim;
// 2. java.lang.ClassCastException
Function<String, String> trim = String::trim;
final MagicFunction fun2 = (MagicFunction) trim;
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下代码(或多或少):
ExecutorService executor = Executors.newFixedThreadPool(10);
CompletableFuture
.supplyAsync(()->{
return longRunningMethodThatReturnsBoolean();
}, executor)
.thenAcceptAsync(taskResult -> {
logResult();
executor.shutdown();
}, executor);
Run Code Online (Sandbox Code Playgroud)
这允许主线程中的代码继续,但是我希望主线程在完成时死亡,并且未来继续在它自己的线程中工作,但是主线程保持活动状态直到 CompletableFuture 完成,即使主线程没有不再做任何事情。
我对这个有点陌生,我错过了什么吗?甚至有可能吗?
任何帮助将不胜感激!!!
假设我有一个数组:
[1, 8, 5, 6, 10, 9, 11, 12];
Run Code Online (Sandbox Code Playgroud)
我想按升序对它进行排序,但要找出我需要排序的最大组数。在此示例中,答案将是:
[1], [8,5,6], [10,9], [11], [12]: so 5
Run Code Online (Sandbox Code Playgroud)
[3,2,1]会变成1,因为整个数组都需要排序。
我完全不知道如何做到这一点,朝着正确的方向发展。
我有一个二维数组,其中最后一个元素是空的.像这样:
data = [["1","2","3","","",""],["4","5","6","x","f",""],["7","8","9","",""]]
Run Code Online (Sandbox Code Playgroud)
现在我想删除空元素并使用.length获取正确的新大小
我试着像这样但它不起作用:
for (i = 0; i != data[2].length-1; i++) {
if (data[2][i].isEmpty()) {
data[2] = data[2].splice(i, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
有什么好的解决方案吗?
我正在学习RxJ。我使用Angular2 rc3。以下流有效,但是它给了我太多的mousemove事件。我想使用时间(节流)或其他控制流来减慢它们的速度。我怎样才能做到这一点?
鼠标移动流而无节流
const mouseMove$ = Observable.fromEvent<MouseEvent>(document, 'mousemove');
mouseMove$.subscribe( x => console.log(x)); // works great, many {mouse position object} 's
Run Code Online (Sandbox Code Playgroud)
简单的解决方案:使用节流应该是这样的:
const mouseMove$ = Observable.fromEvent<MouseEvent>(document, 'mousemove');
const latestMouseEventEvery1Second$ = mouseMove$.sample(1000);
latestMouseEventEvery1Second$.subscribe( x => console.log(x)); // error
Run Code Online (Sandbox Code Playgroud)
- 我在这里采用了这个sample()运算符的形式:http://reactivex.io/documentation/operators/sample.html
但这在角度2-CLI项目中不起作用。给我这个错误:
***Argument of type 'number' is not assignable to parameter of type 'Observable<\any>'*** - notice i've put <\MouseEvent> when casting.
Run Code Online (Sandbox Code Playgroud)
我认为,实现相同结果的另一种更强大的方法可能是顺其自然:
如果我们可以mousemove item 根据从另一流接收到的项目发送最新消息,那将是很好的。任何流-由我们创建。
例如:
当我们从eachSecond$Stream(=我们的“控制流”)接收到一个新项目(1、2,3 ..)时,-我们发出donwstream(进入mouseMoveEachSecond$)-从mouseMove$stream中接收到的最新项目。 …