我的WPF应用程序,我有两个颜色对象.我想从我的两种颜色计算"中间"颜色.
我的两种颜色来自渐变,我想找到中间颜色.
任何人都可以帮我计算一下吗?
我有以下方法:
static IntStream streamedDivisors(final int n) {
return IntStream.range(2, n).parallel().filter(input -> n % input == 0);
}
static int streamedPhi(final int n) {
return streamedDivisors(n).reduce(0, x -> x * x);
}
Run Code Online (Sandbox Code Playgroud)
我在streamedPhi中遇到编译错误,表明我的lambda表达式中有不兼容的参数类型.有人能帮助我理解这个吗?我基本上试图取一个给定数字n的除数,并在我定义的某个函数上聚合一个数字(在这种情况下,对数字进行平方).
在下面的代码中,我创建了一个Pen对象,并将其颜色初始化为白色.在Pen的构造函数中,在将字段'penColor'设置为传递给构造函数的值之后,我更新了一个全局静态弱hashmap,我将其保存在KEY是'this pointer - 在我的情况下是Pen,以及value是另一个weakhashmap,其KEY是字符串"penColor",其值是对penColor成员字段的引用.
接下来,我的代码通过调用Pen的setColor函数来更新Pen的颜色.我本以为在这次更新之后,如果我在我的weakhashmap中查找Pen对象的颜色字段,它会反映新的颜色,但事实并非如此.有人可以解释为什么会这样吗?
package weakhashmaptest;
import java.awt.Color;
import java.util.WeakHashMap;
import java.util.Iterator;
public class Main {
static WeakHashMap <Object, WeakHashMap>ownerMap = new WeakHashMap<Object, WeakHashMap>();
public static void main(String[] args) {
Pen r = new Pen(Color.WHITE);
Iterator i = ownerMap.keySet().iterator();
while(i.hasNext()) {
Object key = i.next();
System.out.println("\telement of hashmap is : " +ownerMap.get(key));
}
r.setColor(Color.BLACK);
System.gc();
i = ownerMap.keySet().iterator();
while(i.hasNext()) {
Object key = i.next();
System.out.println("\telement of hashmap is : " +ownerMap.get(key));
}
}
public static void mapUpdate(Object owner, Object …Run Code Online (Sandbox Code Playgroud) 我想用双引号字符替换String中的所有括号.
我认为这会奏效:
"[foo".replaceAll(Pattern.quote("["), Pattern.quote("""));
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.任何人都可以帮我理解我需要做什么吗?